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 - 851 through 875 (of 1,909 total)
Author Replies
Author Replies
Posted: Thursday Jan 17th, 2013 at 4:37 pm #37939
Staff Member

Thanks for reporting this important issue.

This should be happening by default. The fact that it’s not would indicate, to me, there is a deeper issue on your installation. Please enable s2Member’s logging routines here and the next time this happens please send us your log files for review so we can help you understand what the real issue is.

See: Dashboard -› s2Member® -› Google® Checkout Options -› Account Details -› Logging
Please submit log files privately: s2Member® » Private Contact Form

Posted: Thursday Jan 17th, 2013 at 4:34 pm #37938
Staff Member

Thanks for your reply :-)

Find this portion of your Button Code please.

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">

Add this JavaScript check if you like. Adding an onsubmit JavaScript handler to the FORM tag.

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" onsubmit="if(Number(document.getElementsByName('a3')&#91;0&#93;.value) < 1.00){ alert('Must be greater than $1.00 please.'); return false; }">

Result looks like, functions like, this…


And is there any chance a later release of S2Member might incorporate pay what you want built in? I can see there being a lot of demand for this.

Definitely :-)

Posted: Thursday Jan 17th, 2013 at 4:21 pm #37934
Staff Member

Thanks for your inquiry. ~ We appreciate your patience :-)

I believe what you’re referring to is s2Member’s Meta Box for Post/Page Restrictions, and the Custom Capabilities field that s2Member provides there for site owners. It’s interpreted as AND (i.e. must satisfy all). s2Member will require a User/Member to have ALL of the Custom Capabilities that you list there. If you want to do an OR check, you will need to use conditional shortcodes or PHP code. See example below.

Using Conditional Shortcodes

Leave the field empty in the s2Member Meta Box for Post/Page Restrictions. Instead, you can do something like this within the Post or Page itself. This is just one example, there are many ways to accomplish this with conditionals. See references below.

[s2If current_user_can(access_s2member_ccap_music) OR current_user_can(access_s2member_ccap_videos)]
	Display content for this User/Member.
[/s2If]

See: Dashboard -› s2Member® -› API / Scripting -› Simple/Shortcode Conditionals
See also: Dashboard -› s2Member® -› API / Scripting -› Advanced PHP Conditionals
See also: Video » s2Member (Advanced Conditionals)
See also: Video » s2Member (Custom Capabilities)

Posted: Thursday Jan 17th, 2013 at 4:01 pm #37932
Staff Member

How To Customize The 503 Error Message, Should A Link Expire

Please see this post: http://www.s2member.com/forums/topic/registration-link-expiring/#post-37928

Posted: Thursday Jan 17th, 2013 at 3:56 pm #37931
Staff Member

@Foliovision

I added some notification code into the includes/classes/register-in.inc.php files, so I know which conditional statement fails. So next time a client complains about not being able to use the registration link, we know what happened.

1. This one fails most often:

if (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok ()) && extract ($reg_cookies) /* Needed? */)

It’s not clear what the functions in the condition do. Could you please let us know if that’s a proper check if somebody is trying to register twice, or what could it be? I can see around 5 different PayPal I-S6… keys in 20 of my notifications. So it appears the same person tries multiple times before giving up.

That’s interesting. This has never been brought up before that I remember. I’m not aware of any issues with s2Member’s handling of this scenario. However, s2Member’s cookies are encrypted using your s2Member Security Encryption Key. So changing your Key could result in lots of issues like you’re describing.

See: Dashboard -› s2Member® -› General Options -› Security Encryption Key

On the other hand, seeing errors here would not be that uncommon (if there is a logging routine attached to it). Some users will have expired Registration Access Links, and so s2Member is just doing it’s job.

2. This one also failed a few times:

if (count ($register) === 6 && $register[0] === "subscr_gateway_subscr_id_custom_item_number_time" /* Does the checksum value match up here? */)

I have a var_dump kind of statement in my email notification and it reports that $register is NULL. Seems like the GET parameter in the registration link was not decoded properly. Perhaps it was messed up by tinyurl?

Well if you’re suspicious there is a problem with the embedded tinyURL, try generating a Registration Access Link for yourself from the Dashboard. Click it, and watch where you land (in the address bar of your browser). Look at the query string in the final URL. Is everything there? I don’t see why it wouldn’t be :-)

It actually sounds to me like your server is excluding certain values from the query string. I’ve seen this occur on servers that use Mod Security. You might want to have a look at this article. See: Knowledge Base » Mod Security, Random 503/403 Errors. Mod Security (or another security app on your server perhaps), might be stripping query string values from the HTTP request because it thinks they look suspicious. Testing a Registration Access Link for yourself and doing some debugging with this should tell you. Please let us know if you stumble onto a bug. I’ve been unable to reproduce this in our lab though.

Please let us know if problems persist :-)

Posted: Thursday Jan 17th, 2013 at 3:32 pm #37928
Staff Member

Thanks for the follow-up :-)

Just to clarify in this thread. Registration Access Links self-expire as an additional line of defense (i.e. this tightens security, it’s NOT the only line of defense). Typically, a customer completes checkout and is sent a Registration Access Link via email. That link is good for 2 days (48 hours) by default. This is a scenario that is repeated many times in the free version of s2Member®, where PayPal Buttons have been integrated as opposed to s2Member® Pro Forms, which do NOT use Registration Access Links at all (the process is smoother for a customer).

Having two full days to click a link granting you access to something that you just paid money for, and have not received yet, is usually enough for a customer. In situations where it’s not enough, for any reason, a customer may contact you about this, and it would be a good idea to generate a new Registration Access Link for them from the Dashboard. See: Dashboard -› s2Member® -› PayPal® Buttons -› Registration Access Links

Or, if you would like to increase this time frame, please use the Filter that s2Member exposes.
ws_plugin__s2member_register_link_exp_time

How To Increase This Time Frame

Please create this directory and file:
/wp-content/mu-plugins/s2-hacks.php
(NOTE: these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins)
(See also: http://www.s2member.com/kb/hacking-s2member/)

<?php
add_filter('ws_plugin__s2member_register_link_exp_time', 's2_register_link_exp_time');
function s2_register_link_exp_time($what_s2_says)
	{
		if($what_s2_says === '2 days')
			return '10 days';
		// Anything compatible with PHP's strtotime() function will work here.
		
		return $what_s2_says; // Default value.
	}
&#91;/hilite&#93;

<h4>How To Customize The 503 Error Message, Should A Link Expire</h4>

Please create this directory and file:
/wp-content/mu-plugins/s2-hacks.php

(NOTE: these are MUST USE plugins, see: http://codex.wordpress.org/Must_Use_Plugins)
(See also: http://www.s2member.com/kb/hacking-s2member/)

<?php
add_filter('gettext_with_context', 's2_translator', 10, 4);

function s2_translator($translated, $original, $context, $domain)
	{
		if($context === 's2member-front' && $domain === 's2member')
			if($original === '<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance.')
				return 'My custom message with HTML markup.';
		
		return $translated; // Default translation value.
	}
Posted: Thursday Jan 17th, 2013 at 2:10 pm #37917
Staff Member

Thanks for reporting this important issue.

For the benefit of others, please do NOT do this.

@Matthew Corcoran I understand that this provided you with a solution to an otherwise hellish problem. However, accepting multiple payments for the same invoice number can generally lead to confusion, and may cause further unexpected behavior with s2Member® going forward. s2Member does not expect every PayPal Invoice # to be the same.

To help you with this problem (i.e. why is s2Member not producing a unique Invoice# for each of your customers), let’s begin by looking at your s2Member PayPal Button Shortcode. Please post a copy of that here and we’ll review it with you.

NOTE: I really appreciate you posting this. It’s a good topic for discussion.
Posted: Thursday Jan 17th, 2013 at 2:03 pm #37916
Staff Member

Please see my previous post where I clarified what this means.

Please let us know if problems persist :-)

Posted: Thursday Jan 17th, 2013 at 1:59 pm #37914
Staff Member

Thanks for your patience.

yes its a fresh new site on feedbackappreciated.net
the site is titled (fresh). Should I change the link to read http://www.feedbackappreciated.net/fresh ?

No, what you have is correct from what I’m seeing here.
You should have custom="www.feedbackappreciated.net". s2Member will automatically put this in for you, whenever you generate a Payment Button and/or Pro Form shortcode in the Dashboard of this new test site.

I tried to take a look at your log files on the test installation, but it seems we don’t have access. Please submit a Dashboard login for this clean test installation and we’ll run diagnostics for you again.

Please see: s2Member® » Private Contact Form

Posted: Thursday Jan 17th, 2013 at 1:48 pm #37911
Staff Member
Posted: Thursday Jan 17th, 2013 at 1:44 pm #37910
Staff Member

Thanks for reporting this important issue.

This is actually the intended functionality. At least, in the way you’ve implemented this. Instead of removing s2Member query filters (which is what you actually want in this case), leave them on, and don’t use the is_permitted_by_s2member() function at all.

<?php attach_s2member_query_filters(); ?>
<?php query_posts('showposts=3'); ?>
<?php while (have_posts()) : the_post(); ?>

You will also want to make sure s2Member query filters (i.e. Alternative View Restrictions) are enabled.
See: Dashboard -› s2Member® -› Restriction Options -› Alternative View Protection

s2Member’s query filters will achieve what you need, because they filter the query itself, instead of you filtering the results from a query that was unfiltered, which is what is happening in the code you posted for review.

See also: http://www.s2member.com/codex/stable/s2member/api_functions/package-functions/#src_doc_attach_s2member_query_filters()

Please let us know if problems persist :-)

Posted: Thursday Jan 17th, 2013 at 1:33 pm #37908
Staff Member

KB article written to describe the process of debugging HTTP connections.
See: Knowledge Base » Debugging HTTP Connections

Posted: Thursday Jan 17th, 2013 at 1:28 pm #37906
Staff Member

Thanks for your reply :-)

Please post the exact code that you have in your s2-hacks.php file. We really can’t go very far in debugging custom code that you’ve implemented, but if you would like to post it here, maybe we’ll spot something.

See also: s2Member® » Support Policy » Within Scope

Posted: Thursday Jan 17th, 2013 at 1:22 pm #37905
Staff Member

Thanks for your reply :-)

You said that our Server Scanner found this issue on your installation.

[WARNING] Plugin Directory Checksum (s2member)
Although NOT required, s2Member® recommends that you reinstall the following plugin directory: /home/rghjbrw/public_html/premium/wp-content/plugins/s2member. The checksum for this plugin directory (cc4870a41a3ee6b46af5aed5e36af405), does NOT match up with the official release of this plugin (afc37ccab81c6d39df41e3f6c7737e5c).

Yes, this would indicate a problem with your installation. Have you modified any of the s2Member source code files? I would suggest that you re-install the s2Member Framework plugin to ensure that you’re running the latest release, and without corrupt or missing files.

——– Output string/vars: ( Wed Jan 16, 2013 2:55:41 pm UTC ) ——–

array (
‘__error’ => ‘Error. Please contact Support for assistance.’,
)

This error would indicate to me that your server is having some trouble with HTTP connections. I recommend this KB article. Please install the logging routine described in that article and monitor the log file for HTTP connection issues. Feel free to submit your HTTP connection log file privately, so we can help you review. Please see: Knowledge Base » Debugging HTTP Connections

Please submit log files privately in the future. See: s2Member® » Private Contact Form

Posted: Thursday Jan 17th, 2013 at 1:11 pm #37900
Staff Member

Thanks for your inquiry. ~ We appreciate your patience :-)

The file that controls output produced by [s2Member-Profile /], is located here:
/s2member/includes/classes/profile-in.inc.php

There are MANY hooks/filters in that file, so I would try to use those if you can. In other words, try to avoid making any direct edits to a source file (or as few as possible), because it can make it difficult to upgrade the software later down the road (i.e. you will have to implement your changes again each time you upgrade).

See also: Knowledge Base » Hacking s2Member® Via Hooks/Filters

Posted: Thursday Jan 17th, 2013 at 1:07 pm #37899
Staff Member

Thanks for your reply :-)

If you will, please follow the instructions here and let’s enable some additional logging routines on your installation. When/if this happens again (with this logging routine running), please send the log file over to us for review. That way we can try and make sense of this.

I don’t see anything wrong with your Roles/Capabilities. I suspect this is caused by HTTP connection failures of some kind. These can occur for any number of reasons. Sometimes it’s due to a hosting issue, sometimes it’s due to server load. Hard to tell for sure. The logs should tell us more :-)

Please see: http://www.s2member.com/kb/debugging-http-connections/

Posted: Thursday Jan 17th, 2013 at 12:54 pm #37895
Staff Member

Excellent work! I’m closing this thread and we’ll pick it up in this one now.
https://www.s2member.com/forums/topic/update-billing-phone-authorize-net/#post-37877

Posted: Thursday Jan 17th, 2013 at 12:50 pm #37893
Staff Member

Thanks for the follow-up :-)

1. Once the user is logged in successfully, he/she must be redirected to payment page.

What you’re referring to is what s2Member would consider a Billing Modification.

If you’re using Pro Forms, you’ll want to use a Billing Modification Form, which upgrades an existing User/Member to Membership Level #1, 2, 3, 4 (whatever you like). A Pro Form for Billing Modifications will not work unless an existing User/Member is logged in, and that’s what you’re describing here. It’s fine if they’re not paying you yet, s2Member is still Modifying them, and we are not registering someone new in this case.

See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Billing Modification Forms

2. Payment page will be accessible to only those who’re already a member of this site., not to everyone.

You would protect this Page using s2Member’s Page Restrictions, and require Membership Level #1, or whatever you require in order to access this Page that contains your Pro Form for Billing Modifications. This way it’s not available for public access, an existing User/Member must be logged in before they access it.

See: Dashboard -› s2Member® -› Restriction Options -› Page Access Restrictions

3. Also, please let me know that how can I create a payment/paypal page where I will take payment information from a user.

The instructions I provided above should get you there. As for the redirection itself, you will need to get creative, because you need to do this conditionally (i.e. only redirect if they are NOT a paying customer yet).


Here Is One Idea For You (Multiple Login Welcome Pages)

See: Dashboard -› s2Member® -› General Options -› Login Welcome Page
Use one of s2Member’s Replacement Codes here, and type your own Login Welcome Page URL.

Now create Login Welcome Pages for each Membership Level you’re selling (including Membership Level #0, for Free Subscribers). For instance, you might have the following Pages.


http://www.example.com/0-account-page

This Page would contain the Pro Form for Billing Modifications, along with any other details you’d like to publish on this Page. So this is the redirection page you were asking for. This is where a new Free Subscriber would be taken, upon logging into your site (if they are still at Membership Level #0, a Free Subscriber).


http://www.example.com/1-account-page

This is the Login Welcome Page for paying customers that are at Membership Level #1. Put whatever you like here. For instance, links to the content that is available them; now that they’re a paying customer.

Posted: Thursday Jan 17th, 2013 at 12:24 pm #37889
Staff Member

Thanks for the follow-up :-)

Is it possible that you, yourself, are upgrading the s2Member® Framework only? But then leaving the Pro upgrade unfinished? Is that what’s happening? I’m sorry, I’m not sure I understand yet. Feel free to elaborate until I do. Thanks!

Posted: Thursday Jan 17th, 2013 at 12:20 pm #37888
Staff Member

Thanks for the follow-up :-)

I’m not aware of any incompatibilities between JW Player v5 or v6 and WordPress v3.5. We’ve tested these in our lab without issue. These two software applications don’t really need to be compatible with each other anyway, because one is a video player, and the other is a CMS, and the two apps don’t really share any code or framework together, other than a JavaScript file JW Player pulls in, which seems to work fine within WordPress.

It sounds to me like you’re using a JW Player plugin for WordPress?
If so, we can’t offer support for that here. I’m sorry.

In fact, I’m not aware that s2Member’s integration with Amazon CloudFront would even be compatible with the JW Player plugin for WordPress, because s2Member is guarding these files. I don’t think you can just paste a direct link to a file into a JW Player plugin shortcode when you’re protecting files with s2Member. You will need to use the code sample we provide in your Dashboard and in the video tutorial. I could be wrong on this, so you might check with the JW Player plugin developer to seek assistance.

UPDATE: I took a quick look at this document at Longtail™. It does look like it’s possible to integrate CloudFront RTMP streams with the JW Player plugin. However, s2Member is dealing not JUST with an RTMP stream, but with a protected RTMP stream (which requires a digitally signed URL). Therefore, it’s still not as simple as the examples you see in that article. It could be done, but it will be just as complex, if not more complex, than using the code samples that we provide in your Dashboard, and in our video tutorial — in my opinion.

UPDATE: The JW Player plugin for WordPress does NOT yet support JW Player v6. Hmm. That plugin was developed by Longtail Video, one would think they would support JW Player v6 even before s2Member would have (which we do). Anyway, if you’re running the JW Player plugin, as this time, you’ll be running with v5 it looks like to me.

If you’re running JW Player v6, please be sure to grab the code sample provided by s2Member from your Dashboard (for version 6), and NOT the sample for JW Player v5 by mistake. s2Member provides code samples for each version. See: Dashboard -› s2Member® -› Download Options -› JW Player® v6 & RTMP Protocol Examples

Thanks Jason – I understand and I went through the set up again.
Unfortunately I end up with “Sorry, you do NOT have access to this file.”

Does this error come from the JW Player plugin for WordPress integration, or from the s2Member code sample? If it’s from the s2Member code sample, please paste your final code here and we’ll review it with you.

Please let us know if problems persist :-)

Posted: Thursday Jan 17th, 2013 at 11:35 am #37887
Staff Member

Thanks for your reply :-)

Sorry for taking so long in getting back to you. I spoke to my hosting company and you are right, they were running version 1.3 (or similar). they are going to upgrade on Friday and hopefully all will be well.

Do you think that my using your s2member file area should work then? I’ll let you know how it goes.

Yes, I think that will fix you up nicely :-)

Please let us know if problems persist :-)

Posted: Thursday Jan 17th, 2013 at 11:32 am #37885
Staff Member

Thanks for your reply :-)

Right. It’s not that we don’t want to help, but we have to limit our scope of support in these forums so that we have time to assist site owners who are paying us for support services. I’ll try to answer this in the context of a Pre-Sale question (i.e. as a question about features or functionality), but I can’t offer debugging assistance here.

I am a newbie to S2member but have been using WP for some time. I have set up a site that requires areas to have limited access. So far everything is working well other than one page which I seem to be unable to protect. It is a kind of portfolio listing/thumbnail page. I have set this to be protected but it still shows if you aren’t logged in. I think the issue is because the page content is called in somehow by the theme as you have to set this page in the theme options as that for the portfolio. I hope that makes sense as I know it’s a little complicated.

s2Member (even the free version), comes with a feature called “URI Restrictons”. Any Post/Page (or some other type of content) that is declassified as a Post/Page/Category/Tag/etc (as you mentioned your theme is doing with a specific Page that it assigns to some other aspect of your site), you will need to protect that content using a URI Restriction with s2Member; because when it’s declassified by your theme and served up differently on-site, WordPress does not consider it a Post/Page any longer. That is, it’s not served as a Post/Page, it’s served as something slightly different, by your theme in this case.

See: Dashboard -› s2Member® -› Restriction Options -› URI Access Restrictions
See also: Video » s2Member (Content Restriction Trouble?)

Posted: Thursday Jan 17th, 2013 at 10:17 am #37878
Staff Member

Thanks for the heads up on this thread :-)

I just took a quick look at this, and it’s not actually s2Member losing any data and/or formatting here. What’s happening is that s2Member’s call to PHP’s file_exists() function is failing on some operating systems. Either due to safe mode restrictions, or because of a lack of support for that character in a file name.

Comparison of filename limitations (from the Wikipedia)
http://en.wikipedia.org/wiki/File_name#Comparison_of_filename_limitations

My suggestion would be to avoid using double-quotes in file names. Even if you’re on a server that would support this, it is highly likely that issues would occur during the download and Save action within a browser. For instance, Windows does not support the double-quote character in a file name at all.

Please let us know if problems persist :-)

Related articles:
http://en.wikipedia.org/wiki/File_name
http://stackoverflow.com/questions/948072/why-doesnt-file-exists-work

Posted: Thursday Jan 17th, 2013 at 9:54 am #37877
Staff Member

Thanks for the heads up on this thread :-)

That’s really interesting. Thanks for reporting this important issue.

I was unable to reproduce this in our lab. s2Member® does NOT attempt to pass a phone number to Authorize.Net, and so long as you leave that field that you mentioned, unchecked, the Authorize.Net API does not require it either; which is good because many customers prefer not to provide a telephone number.

Since you’re reporting that Authorize.Net IS requiring you to provide that field (or, it actually appears to me that your installation is attempting to pass a phone number that is empty or invalid), I would contact Authorize.Net about this and ask them if your underlying merchant bank (i.e. Wells Fargo, or whoever you use), is forcing you to supply that information, regardless of your Authorize.Net configuration? Something like this?

Also, I know you’re working with some developers. You might check with them to be sure they’ve not modified s2Member in any way that would cause it to pass a phone number field, either via XML or via NVP? For instance, even if you attempt to pass an empty field (s2Member does NOT do this by default – it does not send a phone number field at all, by default), but if you attempted to pass an empty field, you might see this error.

Please let us know if problems persist :-)

Also, if problems continue, please submit a Dashboard login and we’ll run diagnostics for you.
Please do that privately: s2Member® » Private Contact Form

Posted: Thursday Jan 17th, 2013 at 8:42 am #37872
Staff Member

Thanks for reporting this important issue.

I’m very sorry to hear that. However, we ask that you please review our terms/conditions, regarding our refund policy on digital goods. Please see: http://www.s2member.com/terms/#s2-terms-refund-policy

We will consider a refund for digital goods (within the first 30 days), only if the product fails to perform as advertised on our website. Having 3rd-party theme/plugin compatibility issues does not define a clear violation on our part to deliver a product that provides the features and functionality that we advertise. If you have encountered a clear violation, as defined by our terms of service, please follow-up here. We will be happy to offer you a refund, if we see a failure on our part to deliver.

See also: http://www.s2member.com/terms/#s2-terms-warranty

WARRANTY / GUARANTEE; LIABILITY LIMITATION
s2Member® does not warranty or guarantee its Products in any manner. We cannot guarantee our Products will function with all 3rd party components, plugins or web browsers. s2Member® is not responsible for any 3rd party plugin compatibility conflicts that may occur. It is our policy to support all s2Member® Products as best we can. However, we will only provide support for 3rd party plugin conflicts, at our own discretion; as time allows. Please report any known conflicts in our Customer Support Forum for review. We may offer suggestions or alternatives.

s2Member® is not responsible for any data loss that may occur as a result of installing, running, and/or uninstalling any s2Member® Product. Please remember to backup your files & database before installing, running, upgrading, and/or uninstalling any s2Member® Product. If data loss does occur, please report to our Customer Support Forum for review. We may offer helpful advice.


I’ve looked and asked in the support forums to try and resolve my issues. I will continue to use the free version on my other sites and will consider s2member pro for future projects.

If you continue to have trouble with s2Member, we will be happy to assist you here in the forums. I see that you’ve posted two threads. This one regarding a refund request, and one other related to a 3rd-party application that falls outside the scope of our support.

If you are having issues with s2Member itself, please post your questions/concerns, and a Support Rep will address the issue for you within 24-48 hours, Monday-Friday. I also suggest this article regarding common problems with s2Member, a troubleshooting guide. Please see: Knowledge Base » Common Troubleshooting Tips

Related thread: http://www.s2member.com/forums/topic/plugin-disables-my-invite-anyone-plugin/

Viewing 25 replies - 851 through 875 (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.