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 - 651 through 675 (of 1,909 total)
Author Replies
Author Replies
Posted: Saturday Jan 26th, 2013 at 12:27 am #39599
Staff Member

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

So you will have Free Subscribers (they already have accounts with — but they have not paid yet). You want them to pay you for something more. Upon completing checkout, they will gain additional access on your site; obtained through access to a specific page in WP, where you make it possible for them to do something more.

You will want to generate an s2Member® Pro Form, for Billing Modifications. Set the Pro Form to upgrade them to Membership Level #1, and define the success="" Shortcode Attribute, so the Pro Form automatically redirects them upon successful checkout to the page where you make the additional functionality possible.

See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Billing Modification Forms
See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Shortcode Attributes (Explained)

See also: Pre Sale FAQs » To use s2Member® Pro Forms, will I have to use PayPal® Pro?
See also: Knowledge Base » s2Member® Pro Forms

Please let us know if you have any other questions/concerns :-)

Posted: Saturday Jan 26th, 2013 at 12:20 am #39598
Staff Member

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

I believe what you’re looking for is the s2Member® Pro Login Widget. The s2Member® Pro Login Widget (which comes with s2Member Pro) has a setting that handles this automatically for you. You make the login widget available, and s2Member handles the rest (ultimately defined by the redirect_to variable).

Please let us know if you have any other questions/concerns :-)

Posted: Saturday Jan 26th, 2013 at 12:02 am #39595
Staff Member

Thanks for the heads up on this thread :-)

I’ve never heard the term “retrieval site programs” before.

If anyone (including bots, scripts, robots) is unauthorized to view content protected by s2Member®, that user/bot/script/etc, will be redirected to your Membership Options Page. The content from the site is never made accessible to anyone that is unauthorized; regardless of how the site is accessed (via HTTP, HTTPS).

Acessing a site via FTP (where the FTP user is authenticated), would bypass all PHP scripts, including s2Member (including WordPress itself of course too). Nobody should ever have access via FTP except you, or developers working with you. This is something that should be handled by a system administrator (or your hosting company).

Posted: Friday Jan 25th, 2013 at 11:42 pm #39593
Staff Member

Thanks for reporting this important issue.

Warning: Illegal string offset ‘level’ in C:\xampp\htdocs\ancestryireland\wp-content\plugins\s2member-pro\includes\classes\exports-in.inc.php on line 110

What version of s2Member® Pro are you running please?
Or, if you’d like to send us a Dashboard login and FTP access, we’ll run diagnostics for you.
See: s2Member® » Private Contact Form

[ERROR] PHP Echo Tag:
PHP v5.4.7 supports the echo tag () at all times. So you’re good here.

Please disregard this. It’s actually a false-positive that needs to be corrected I see. On PHP 5.4.7, you should see this as a PASS, and not as an ERROR. We’ll have this corrected asap.

Posted: Friday Jan 25th, 2013 at 11:21 pm #39592
Staff Member

Thanks for the follow-up :-)

Sorry, still nothing. I’m going to email you directly. Please reply to my email with the details.

Posted: Friday Jan 25th, 2013 at 11:18 pm #39591
Staff Member

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

A member logs in, ends up on their My Account Page (AKA Login Welcome Page). However if they try to click an otherwise restricted link they get redirected back to the ‘Membership Options Page” page.

Once you are redirected, please look at the URL, and copy/paste all of the query string variables that you see in the URL, here in the forum for review. Those are called MOP Vars, and they will tell the story about why the redirection occurred. You can learn about these here.

See: Dashboard -› s2Member® -› API / Scripting -› Membership Options Page Variables (MOP Vars)

Posted: Friday Jan 25th, 2013 at 11:09 pm #39590
Staff Member

Thanks for reporting this important issue.

What web server software are you running please. Apache? If so, what version please?

The code snippet you’re referring to should be wrapped inside ifModule checks like this. If it’s crashing your server outside of these ifModule checks, it would indicate to me that your installation of Apache is missing the Mod Rewrite module; which can activated from your httpd.conf file in Apache.

# BEGIN s2Member GZIP exclusions
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteBase /
	RewriteCond %{QUERY_STRING} (^|\?|&)s2member_file_download\=.+
	RewriteRule .* - [E=no-gzip:1]
</IfModule>
# END s2Member GZIP exclusions
Posted: Friday Jan 25th, 2013 at 7:46 pm #39571
Staff Member

It appears that because the Auto-EOT System was not enabled from the start on your installation (i.e. you just recently enabled it, it would appear), that you now have a backlog of EOTs that need to occur.

s2Member will certainly process these, but each time the CRON job is fired (it should be run every 15 minutes), s2Member will process at most, 3 EOTs at a time.

So if you setup the CRON job and let it run periodically, these accounts that you mentioned will be demoted by s2Member eventually; as s2Member goes through the backlog of EOTs that need to occur.

I just ran it again manually, and it picked up User ID 841 and demoted them. User ID #4 is still awaiting EOT.

It is also possible to extend the per-process setting, by filtering this default value of 3.

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/)

Posted: Friday Jan 25th, 2013 at 7:38 pm #39570
Staff Member

Thanks for the follow-up :-)

Certainly. Investigating now. One moment please.

Posted: Friday Jan 25th, 2013 at 7:34 pm #39569
Staff Member
@Joe Raciti

Please see this article about SMTP server configuration for GMail.
http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm

Posted: Friday Jan 25th, 2013 at 7:32 pm #39568
Staff Member

Please see his post where he mentions where to place this code, by creating an s2hacks.php.

Posted: Friday Jan 25th, 2013 at 7:31 pm #39567
Staff Member

Yes, that will be fine too.

Posted: Friday Jan 25th, 2013 at 7:30 pm #39566
Staff Member

Thanks for reporting this important issue.

Please see this thread where this was reported in the past.
http://www.s2member.com/forums/topic/user-export-not-working-properly/#post-38530

If you are unable to resolve this yourself, please submit a Dashboard login and we’ll fix you up.
See: s2Member® » Private Contact Form

Posted: Friday Jan 25th, 2013 at 7:20 pm #39565
Staff Member

Thanks for the follow-up :-)

I’m adding this to our list. Thank you.

Posted: Friday Jan 25th, 2013 at 7:13 pm #39563
Staff Member

Thanks for the follow-up :-)

May I ask who your hosting company was before please?

Posted: Friday Jan 25th, 2013 at 7:11 pm #39562
Staff Member

Thanks for the follow-up :-)

Great! It’s been forwarded to some friends of mine for review. If they are interested, they will response to your project request. NOTE: I would also post this at Elance.com, if possible; many developers that I know prefer to work from there :-)

Posted: Friday Jan 25th, 2013 at 7:07 pm #39561
Staff Member
Excellent. Thanks for reporting back!
Posted: Friday Jan 25th, 2013 at 6:57 pm #39560
Staff Member

Details received. Thank you!

The Dashboard login that we have is working properly, but the FTP access is not working on our end. Please check those credentials for us, and submit a functional FTP login via this private contact form: s2Member® » Private Contact Form, or let us know if there something more we need to gain access. Thanks!

Jason- Thanks… Sending info over via the contact form. We’ve signed up for everything with the name “PayFlow” on it, and now have an arsenal of logins and passwords and vendor IDs, etc., but nothing seems to be working, as now I keep getting “Error #1. User authentication failed.”

This could indicate that you have the wrong type of PayPal account, or that the details entered in this section of your Dashboard do not match what the PayPal API is expecting from calls originating from your server.

See also: Dashboard -› s2Member® -› PayPal® Options -› Payflow Account Details

Please see this article for clarification about which type of PayPal account you will need.
Knowledge Base » PayPal® Compatibility (Account Types)

Once we have FTP access, we can also review your s2Member log files.

Posted: Friday Jan 25th, 2013 at 5:02 am #39495
Staff Member
Awesome. Thanks for following-up. I appreciate that!
Posted: Friday Jan 25th, 2013 at 5:00 am #39494
Staff Member

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

The problem is, if someone over time adds all the courses to their account, that is going to be a lot of subscriptions being processed, when it would be easier to have it update into one manageable monthly payment.

Exactly. s2Member® supports only one active subscription at a time. In other words, each customer can be associated with one Paid Subscr. ID in the Dashboard. Adding additional one-time purchases on top of that is no sweat for s2Member®, but adding additional monthly recurring fees (where you have more than one Recurring Billing Profile associated with each customer), is not something that s2Member® supports at this time.

What I think is easier, is to change the amount of money that you’re billing the customer each billing cycle (i.e. change the existing subscription associated with their account, by changing the amount that’s being charged each month). With s2Member® Pro, this is handled through Billing Modification Forms. A customer modifies their Recurring Billing Profile with you, by upgrading to a higher Membership Level and/or by purchasing additional Custom Capabilities.

So for instance, let’s say a customer registers initially for Membership Level #1 at $19/month.
Now they want access to course A and course B, and that costs an additional $5/month (for each course).

So you introduce a Billing Modification Form that simply adds the extra Custom Capabilities to their Membership with you, and you charge the adjusted rate of $29/month for this entire package. s2Member® Pro Billing Modification Forms will terminate the existing Recurring Billing Profile, and it will create a new one to takes it’s place (i.e. a new Recurring Billing Profile that matches the new package they have).

Of course, it’s not always just that simple, because often times, there are conditions and dynamics involved with calculating prices during checkout. Some site owners deal with this by implementing their s2Member Pro Forms with PHP code (i.e. in a custom WordPress template file).

For instance, something like this; where you calculate prices/terms dynamically in custom ways — in your own code; and then pass that information along to your s2Member® Pro Form Shortcode.

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

<?php
$base_monthly_rate = 19.00;
$amount_per_course = 5.00;
$new_course_ccaps = array('course_a', 'course_b');

$user = wp_get_current_user();
$existing_level = c_ws_plugin__s2member_user_access::user_access_level($user);
$existing_ccaps = c_ws_plugin__s2member_user_access::user_access_ccaps($user);
$caps_in_new_package = array_merge($existing_ccaps, $new_course_ccaps);

$level = $existing_level;
$ccaps = implode(',', $caps_in_new_package);
$ra = $base_monthly_rate + ($amount_per_course * count($caps_in_new_package));

echo do_shortcode('&#91;s2Member-PayPal-Pro-Form ... level="'.$level.'" ra="'.$ra.'" ccaps="'.$ccaps.'" ... /&#93;');
?>

In this example, the only problem is this…

The customer is going to pay you $29 now (during they’re upgrade), because those are the terms of the new Custom Capability package they are purchasing. However, in many cases the customer will have already paid you $19 for the current month they are in, so the very first charge in this new Recurring Profile, should be less that amount. This is accomplished with the ta="" tp="" tt="" Shortcode Attributes.

See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Shortcode Attributes (Explained)

This considers what I just mentioned, and uses ta="" tp="" tt="".

<?php
$base_monthly_rate = 19.00;
$amount_per_course = 5.00;
$new_course_ccaps = array('course_a', 'course_b');

$user = wp_get_current_user();
$existing_level = c_ws_plugin__s2member_user_access::user_access_level($user);
$existing_ccaps = c_ws_plugin__s2member_user_access::user_access_ccaps($user);
$caps_in_new_package = array_merge($existing_ccaps, $new_course_ccaps);

$level = $existing_level;
$ccaps = implode(',', $caps_in_new_package);
$ra = $base_monthly_rate + ($amount_per_course * count($caps_in_new_package));

$ta = $ra - $base_monthly_rate; // Discounted price for the first month in this new plan.
$tp = 1; $tt = 'M'; // 1 month at this discounted rate.

echo do_shortcode('&#91;s2Member-PayPal-Pro-Form ... level="'.$level.'" ra="'.$ra.'" ccaps="'.$ccaps.'" ta="'.$ta.'" tp="'.$tp.'" tt="'.$tt.'"... /&#93;');
?>
Posted: Friday Jan 25th, 2013 at 4:06 am #39493
Staff Member

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

When s2Member® is running on a Multisite Network in Multisite Blog Farm mode, it is possible to sell your Members the ability to create X number of blogs; where s2Member makes it possible to restrict the number of Blogs that can be created at each Membership Level. There are a few options here.

See: Dashboard -› s2Member® -› Multisite (Config)

Once the blog is created (by your Member), the Member becomes an Administrator of that Child Blog on your Network, in addition to being a Member on the Main Site of your Network. So they are your Member, and they have a Child Blog on your Network, where they are an Administrator.

If the customer cancels, expires, etc… they will lose Membership privileges on the Main Site, but access to their Blog remains unless & until you terminate that manually. Some site owners have implemented API Notification Handlers to deal with this in custom ways.

See: Knowledge Base » Building An API Notification Handler

Please note that support for this type of usage with s2Member®, falls under our Network Support License. Along with your purchase of a Network Support License, you will receive written assistance from us on this topic. Some additional documentation is also made available to customers that purchase a Network Support License. See: s2Member® » Prices/Licensing
Posted: Friday Jan 25th, 2013 at 3:56 am #39492
Staff Member

Thanks for reporting this important issue.

Can you please post the PayPal Button Shortcode that you integrated with s2Member? In other words, for these Members who are expiring on the WP side of things, what exactly did they purchase from you? We’ll need to see how your Shortcode was configured please.

Also, it would be a good idea to enable s2Member’s logging routines, so you can see if PayPal is sending s2Member® IPNs behind-the-scene, which are resulting in these expirations (i.e. failed payments, cancellations, etc). What do your log files tell you? Feel free to post those privately for us to review with you.

See: Dashboard -› s2Member® -› PayPal® Options -› Account Details -› Logging
See: s2Member® » Private Contact Form

Posted: Friday Jan 25th, 2013 at 3:48 am #39491
Staff Member

Thanks for the follow-up :-)

It appears that your configuration of s2Member® on the Child Blog /fresh/ is incomplete with respect to your integration with PayPal®. Please see this section of your Dashboard. Once you’ve filled in the PDT Identity Token provided to you by PayPal®, the error you receive regarding $_POST vars should go away.

Dashboard -› s2Member® -› PayPal® Options -› PayPal® PDT Integration


Also, this site has no charset defined. See screenshot below please.

Please let us know if problems persist :-)

Posted: Friday Jan 25th, 2013 at 3:27 am #39488
Staff Member

Thanks for your patience.

I setup a test account on your installation with Username EOT_Test, at Membership Level #1, and with an EOT Time that was in the past. I then ran the URL provided by s2Member to the Auto-EOT CRON job.
/?s2member_auto_eot_system_via_cron=1

Inspecting the User’s account afterward at this URL:
/wp-admin/user-edit.php?user_id=2711

Indicates the Member was succesfully demoted down to a Free Subscriber, and s2Member notes that.
Demoted by s2Member: Fri Jan 25, 2013 8:22 am UTC


To add some more details that might be helpful while investigating this issue, manually entering the following into a web browser didn’t cause demotions for people with expired EOTs either:

http://mywebsite/?s2member_auto_eot_system_via_cron=1

Indeed, it isn’t clear that it did anything. The web browser ended up displaying an otherwise blank page.

A CRON job is not supposed to display anything in your web browser.
It’s normal for this file to display a blank page. That doesn’t mean it is not working though.
/?s2member_auto_eot_system_via_cron=1

Please let us know if problems persist :-)

Posted: Thursday Jan 24th, 2013 at 11:05 pm #39477
Staff Member

Details received. Thank you!

~ Investigating.

Viewing 25 replies - 651 through 675 (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.