latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Jason (Lead Developer)

Staff Member

My Latest Replies (From Various Topics)

Viewing 25 replies - 1,626 through 1,650 (of 1,909 total)
Author Replies
Author Replies
Posted: Tuesday Mar 6th, 2012 at 1:41 am #7392
Staff Member
@Randy King – Upgraded to Experienced User. Thank you :-)

Thanks for the KUDOS and your support Randy, we appreciate it!

Posted: Tuesday Mar 6th, 2012 at 1:40 am #7391
Staff Member

Hi Andre. Thanks for your inquiry.

Yes, that’s perfectly OK. We’ll classify you as a Sole Proprietor, and you can just enter your Social Security # instead of Tax ID. That’ll be just fine. If you have other questions about our affiliate program, please contact: affiliates@websharks-inc.com

Posted: Tuesday Mar 6th, 2012 at 1:37 am #7390
Staff Member

You’re very welcome Adam.
~ and thank YOU, we appreciate the KUDOS, and your support!

Posted: Tuesday Mar 6th, 2012 at 1:36 am #7388
Staff Member

Hi there. Thanks for your inquiry.

Allows people to pay for being contributors

I’m so sorry, we do NOT currently support Administrative Users within WordPress. s2Member is designed for end-users of a site, and not for Users/Members that actually gain access to your Dashboard in some way. This could certainly be accomplished, using s2Member as a framework on which to build such a site, but it’s not something that s2Member provides by default. You might need to seek assistance from a WordPress developer on this.

Posted: Tuesday Mar 6th, 2012 at 1:34 am #7387
Staff Member

Selling Custom Capabilities might be a route to explore.
See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Capability (Buy Now) Forms

Posted: Tuesday Mar 6th, 2012 at 1:22 am #7386
Staff Member

Great suggestion. I’ll see what we can do about this.

If it is not possible, could it be considered as a feature somehow? I dont know how (i am not the programmer! :) ) but having some way to “view as…” would definitely save time when coding a page with conditionals and/or ccaps.

Posted: Tuesday Mar 6th, 2012 at 1:20 am #7385
Staff Member

Excellent. I’m glad to hear you got this sorted. Thanks for your patience.

Posted: Tuesday Mar 6th, 2012 at 1:20 am #7384
Staff Member

Hi there. Thanks for your inquiry.

but what are these Custom Capabilities?

Please see: Video » s2Member (Custom Capabilities)

Regarding favorites. Sorry, that’s not included with s2Member.
You might try this: http://wordpress.org/extend/plugins/wp-favorite-posts/

Posted: Tuesday Mar 6th, 2012 at 1:17 am #7383
Staff Member

KB article published covering this topic.
Locking s2Member Roles/Capabilities

Posted: Tuesday Mar 6th, 2012 at 1:15 am #7382
Staff Member

Hi there. Thanks for your inquiry.

That’s a great suggestion, thank you. While this feature is not yet available in s2Member, you could do something like this in PHP if you want to display a list of all files in the security-enabled directory for s2Member.

<?php
foreach(scandir($GLOBALS&#91;"WS_PLUGIN__"&#93;&#91;"s2member"&#93;&#91;"c"&#93;&#91;"files_dir"&#93;) as $file)
	if(strpos($file, ".") !== 0)
		echo '<a href="'.site_url('/?s2member_file_download='.urlencode($file)).'">'.$file.'</a>';
?>
Posted: Tuesday Mar 6th, 2012 at 1:09 am #7381
Staff Member

Hi Mike. Thanks for your inquiry.

Please see this KB article:
KB :: Locking s2Member Roles/Capabilities

Posted: Tuesday Mar 6th, 2012 at 12:56 am #7372
Staff Member

Hi there. Thanks for your inquiry.

Yes, that’s certainly possible using Hooks/Filters.

Hack Instructions:

Create this directory and file:
/wp-content/mu-plugins/s2-hacks.php
( these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins )

<?php
add_filter("ws_theme__c_display_login_box", "__return_false");
add_filter("ws_theme__c_display_login_box_controls", "__return_false");
?>
Posted: Tuesday Mar 6th, 2012 at 12:51 am #7371
Staff Member

Thanks for the follow-up.

However, the inline key is different today from what it was yesterday.

Yes, that’s normal. A Key is a site-specific hash of the following.
So it will change once per day, for each user, for each file.

date("Y-m-d").$_SERVER["REMOTE_ADDR"].$_SERVER["HTTP_USER_AGENT"].$file

I don’t see anything wrong with the code sample you posted. It looks good. I’ve also been unable to reproduce this in our lab. If you can provide us with a Dashboard login, I’ll be happy to take a quick look for you.

Please submit those details here:
s2Member® » Private Contact Form

Posted: Tuesday Mar 6th, 2012 at 12:17 am #7369
Staff Member

Thanks for your inquiry.

Yes, that’s correct. s2Member’s Specific Post/Page functionality is NOT attached to any User’s account. In fact, a customer does not even need to be logged in to receive access to a Specific Post/Page that you sold them.

To answer your question though. Yes, what you’d like to do is certainly possible. However, it requires that you integrate with s2Member’s Custom Capabilities. So for instance, if you wanted a specific User to have access to some specific Post or Page (only after logging into their account), you would sell them a Custom Capability.

See Also: Dashboard -› s2Member® -› PayPal® Buttons -› Capability (Buy Now) Buttons
See Also: Dashboard -› s2Member® -› PayPal® Pro Forms -› Capability (Buy Now) Forms
See Also: Video » s2Member (Custom Capabilities)

Posted: Saturday Mar 3rd, 2012 at 2:52 am #7155
Staff Member

So if I wanted to give XYZstore a 10% coupon they could use I could give them the coupon code xyz-10 as opposed to xyz-10-A:123 ?

If you’re giving the coupon code to an affiliate of yours, you’ll want the affiliate (i.e. the affiliate’s customers that come to your site) to use the full coupon code: xyz-10-A:123, so that s2Member credits the referring affiliate when the coupon is entered at your site during checkout.

You can track the coupon code that was used, with either of these Replacement Codes.

%%full_coupon_code%%
%%coupon_code%%

See also: Dashboard -› s2Member® -› Pro Coupon Codes -› Affiliate Coupon Codes

Posted: Saturday Mar 3rd, 2012 at 2:46 am #7153
Staff Member

Hi there. Thanks for reporting this important issue.
What version of s2Member are you running please?

Posted: Friday Mar 2nd, 2012 at 6:21 am #7045
Staff Member

Thank you. Details recieved.

I just finished reviewing your log files, and I find the following issues.

1. Your ccBill DataLink logs by s2Member, indicate that your ccBill DataLink connection is not using a valid Username/Password, or that your server’s IP address has not yet been allowed by ccBill. I’m seeing this error repeated in your DataLink logs by s2Member.

Error: Authentication failed.  02

2. Your ccBill IPN logs do not indicate any communication with ccBill at all. All that I see in there right now are tests initiated directly from a browser, but these do not include any data posted by ccBill. This leads to me wonder if ccBill is fully configured with your Backgroud Post URL (i.e. your s2Member IPN handler)?

Your ccBill account should be configured with your s2Member Background Post URL, which looks like this:

http://bellabellucci.com/?s2member_pro_ccbill_notify=1
Posted: Friday Mar 2nd, 2012 at 6:05 am #7042
Staff Member

Very welcome.

Since s2Member supports multiple payment gateways, you’ll need to tell s2Member which payment gateway each customer is associated with. In your case, it sounds like you’d want to state “paypal” for each customer.

Posted: Friday Mar 2nd, 2012 at 1:31 am #7006
Staff Member

Hacking s2Member®
(it's easy with Hooks/Filters for WordPress®)

If you need to add custom processing routines, or modify the behavior of existing processing routines; please use s2Member's Hooks/Filters for WordPress®. Hooks & Filters, give you the ability to "hook into", and/or "filter" processing routines, with files/functions of your own; instead of editing the s2Member® plugin files directly. This way you won't need to merge your changes/tweaks each time a new version of s2Member® is released.

To create custom processing routines, place those routines into a PHP file here:
/wp-content/mu-plugins/s2-hacks.php

If you don't have an /mu-plugins/ directory, please create one. These are (mu) MUST USE plugins, which are loaded into WordPress® automatically; that's what you want! You can learn more about MUST USE Plugins here. If you're not familiar with Hooks/Filters for WordPress®, please read this article in the WordPress® Codex.

See also: the s2Member® Codex, where you will find all of s2Member's source code has been documented for PHP developers. The s2Member® Codex may help you understand some of the more advanced aspects of s2Member.

Adding a Hook (inside /wp-content/mu-plugins/s2-hacks.php)

Please make sure there are NO blank lines in your PHP file.
Do NOT introduce spaces/tabs/lines before or after the <?php ?> tags.

<?php
add_action("hook_name", "my_action_hook_function");
function my_action_hook_function($vars = array())
	{
		echo "My Hook works.";
 
		# Optional. s2Member® passes you an array of defined variables.
		# print_r($vars); # Would give you a list of defined variables.
		# These are PHP variables defined within the scope of the Hook,
		# at the precise point in which the Hook is fired by s2Member®.
 
		# $vars&#91;"__refs"&#93; are also included (with some Hooks).
		# These are internal PHP variable references (very useful).
		# To learn all about references, please see PHP documentation:
		# http://www.php.net/manual/en/language.references.pass.php
	}
?>

Adding a Filter (inside /wp-content/mu-plugins/s2-hacks.php)

Please make sure there are NO blank lines in your PHP file.
Do NOT introduce spaces/tabs/lines before or after the <?php ?> tags.

<?php
add_filter("filter_name", "my_filtering_function");
function my_filtering_function($original_value, $vars = array())
	{
		if($original_value !== "something I like")
			return ($my_custom_value = "My Filter works.");
 
		else # Return original value.
			return $original_value;
 
		# Optional. s2Member® passes you an array of defined variables.
		# print_r($vars); # Would give you a list of defined variables.
		# These are PHP variables defined within the scope of the Filter,
		# at the precise point in which the Filter is fired by s2Member®.
 
		# $vars&#91;"__refs"&#93; are also included (with some Filters).
		# These are internal PHP variable references (very useful).
		# To learn all about references, please see PHP documentation:
		# http://www.php.net/manual/en/language.references.pass.php
	}
?>
Posted: Friday Mar 2nd, 2012 at 12:15 am #6952
Staff Member

Sorry to butt in here, I just saw this topic and thought I would offer some assistance.

If you set level="*", that indicates to s2Member that you’re selling Independent Custom Capabilities, and there is no specific Membership Level associated with the purchase. Therefore, there needs to be at least one Custom Capability specified in your ccaps="" Attribute.

If you have ccaps="-all", you’re just stating that you want to remove all existing Custom Capabilities (which is fine), but you’ll need to specify also, at least one Custom Capability that you want to sell in this transaction (i.e. you have to sell something, that’s all).

ccaps="-all,music,videos"
Posted: Friday Mar 2nd, 2012 at 12:09 am #6951
Staff Member

A Paid Subscr. ID can be either a PayPal Transaction ID, or a PayPal Subscription ID, or a PayPal Recurring Profile ID. If you process a transaction that’s associated with a Subscription or Recurring Profile ID at PayPal, give that to s2Member. Otherwise, if it’s a “Buy Now” transaction (i.e. there is no recurring billing), using the Transaction ID.

Example Transaction ID:
48M62559P1062124J

Example Subscription and/or Recurring Profile ID:
I-2559P1062124J

Posted: Friday Mar 2nd, 2012 at 12:04 am #6950
Staff Member

@luisrosario

will the s3 url use the default 30s url expiration?

Yes, that is correct.

If so, would you agree the above example with Cloud Front RTMP Streaming and S3 Html Fallback is definitely a more secure method for using both delivery methods.

More secure, yes. However, if a direct download of the MP4 file is made possible, even if it’s limited to just 30 seconds, that’s still enough time for a Member to connect to your S3 Bucket, download the full MP4 file, and potentially share it with others. Not likely at all, but I’m just being careful how I answer this.

A stream over the RTMP protocol cannot be downloaded, so this is the most secure way to serve protected audio/video. If you make the full MP4 available in any way, you’re always at risk of that MP4 file being shared or redistributed by another. You can post warnings and legal notices all day long, but if the MP4 file is downloaded by anyone in full length, you’ll be making it possible, unfortunately.

If there’s anything I could suggest, if there was a way to completely hide the s3 url for the html fallback portion with an encryption of sorts

Interesting. I’m not sure how this would be accomplished though. If a direct download is made available, at some point the URL must be sent to the browser, and that will expose it. I’m all ears though. If you have something in mind, I’d love to hear your thoughts on this. Thank you!

One more thought, is there a way to isolate the cloudfront download distribution url and replace the s3 url in the config and have a different url expiration time than the streaming distribution?

Sorry, perhaps I’m not understanding this question. I think what you’re asking though, is solved by the code sample I posted previously. Generating both a CloudFront and an Amazon S3 URL, allows you to offer both versions in any way that you choose. Generating the URLs does not expose them, you will only expose them if you decide to do so in your code. So modifications of what I posted above might be desired in certain cases.

By default, CloudFront URLs are good for up to 24 hours, then they expire automatically. This also goes for the URLs returned in the streamer array, as seen in the code sample above. So again, any access by granted by s2Member to any file served via CloudFront, will be good for up to 24 hours.

The Amazon S3 URLs are defaulted to 30 seconds, then they expire automatically. Amazon S3 URLs are direct links to download the full file, they’re not streamers. Thus, Amazon S3 URLs can be limited to just a few seconds, because that’s all that’s required in most cases. Just enough time for a Member to connect to the file and begin downloading it. Once the download begins, the expiration time is irrelevant (i.e. they can take as much time as they need to finish downloading the file, as long as the connection was established in the first 30 seconds).

Posted: Thursday Mar 1st, 2012 at 11:36 pm #6946
Staff Member

Thanks for sharing that. Much appreciated.
I recommend this article for further details on the crossdomain.xml file please.
http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

Posted: Thursday Mar 1st, 2012 at 11:34 pm #6945
Staff Member

Not related to support for our products. Moving this into our Community Forum so you’ll have a chance to see differing opinions. In the mean time, you might take a look at WP E-commerce. See: http://wordpress.org/extend/plugins/wp-e-commerce/

Posted: Thursday Mar 1st, 2012 at 11:28 pm #6944
Staff Member

Hi Grace. Thanks for the follow-up.

Yes, but you would actually need a completely different hack to accomplish that.

Create this directory and file instead please.
/wp-content/mu-plugins/s2-hacks.php
( these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins )

<?php
add_action("ws_plugin__s2member_during_paypal_notify_during_subscr_eot_before_demote", "my_eot_demotion_role");
function my_eot_demotion_role($vars = array())
	{
		if($vars&#91;"eot_del_type"&#93; === "ipn-refund-reversal-demotion")
			$vars&#91;"__refs"&#93;&#91;"demotion_role"&#93; = "banned";
	}
?>
Viewing 25 replies - 1,626 through 1,650 (of 1,909 total)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.