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 - 326 through 350 (of 1,909 total)
Author Replies
Author Replies
Posted: Thursday Feb 14th, 2013 at 11:19 pm #41755
Staff Member

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

What I’m trying to achieve is to have user’s access to product A end 1st of March and access to product B ends the 15th of March. After 15th of March, account is demoted to ‘free subscriber’.

So you want each of these purchases to result in a demotion once they expire;
exactly one month after the date or purchase. Is that correct?

If so, you’ll want to generate a Payment Button or Pro Form that provides fixed-term access through “Buy Now” functionality. After the purchase is made, an EOT Time is set for the User, and s2Member® will expire them automatically. If they purchased one month of access, they will expire after one month automatically.

See: Dashboard -› s2Member® -› PayPal® Options -› Automatic EOT Behavior
See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Membership Level # Forms
See also: Dashboard -› s2Member® -› PayPal® Pro Forms -› Shortcode Attributes (Explained)

The Pro Form Generator will configure your Shortcode for you automatically, but just to point out — the relevant Shortcode Attributes are: rr="BN" (Buy Now) and rp="1" rt="M" (1 Month of fixed-term access).


IMPORTANT NOTE: s2Member does not support multiple simultaneous Subscriptions or EOT Times. Therefore, EOT Times against fixed-term access that I described above will only work one at a time. If you sell an existing Product A customer Product B — before Product A has expired, the following will happen.

Timeline:
– Product A purchased on Feb 1st (good for one month).
– Product B is now sold to existing Product A customer on Feb 5th (good for one month).
– Product A is removed, and Product B takes it’s place. The EOT Time is reset to one month after the purchase of Product B now (e.g. this is treated like an upgrade or downgrade, where everything is reset to the configuration of the customer’s most recent purchase).

Product is probably not the best word to use here, because with s2Member® this is normally associated with Membership Level Access, not with Products. However, in this context the term Product demonstrates this limitation a little more clearly I think; because that’s what you are trying to accomplish.


A Possible Workaround For You

Custom Capabilities can be sold to existing customers on a “Buy Now” basis. So this could be a viable alternative for you, if you really need to achieve this functionality for a certain business model.

Timeline:
Customer buys access to Product A on Feb 1st (i.e. Membership Level #1 — lifetime access).
On Feb 5th you sell this existing Level #1 Member an additional Custom Capability (lifetime access).
See: Dashboard -› s2Member® -› PayPal® Pro Forms -› Capability (Buy Now) Forms

Now, you will want to integrate a custom CRON job to remove Capabilities at certain custom dates that you prefer. The customer is assumed (in this scenario) to have lifetime access. However, your custom CRON job can dictate otherwise.

Example of adding/removing Custom Capabilities from existing Users in WordPress®.

<?php
$user_id = 123;
$user = new WP_User($user_id);
$user->add_cap('access_s2member_ccap_music');
$user->remove_cap('access_s2member_ccap_videos');
?>

See also: Knowledge Base » s2Member® Roles/Capabilities
See also: Knowledge Base » Changing Roles/Capabilities via PHP
See also: API Function: s2member_paid_registration_time()

Setting an automatic EOT Time for a customer via PHP.

<?php
$user_id = 123;
$eot_time = strtotime('+30 days');
update_user_option($user_id, 's2member_auto_eot_time', $eot_time);
?>

See also: http://php.net/manual/en/function.strtotime.php
See also: http://codex.wordpress.org/Function_Reference/update_user_option

Posted: Thursday Feb 14th, 2013 at 10:44 pm #41754
Staff Member

Thanks for your patience.

I am wondering if the changes made by PayPal regarding the types of accounts and introduction of PayFlow could have contributed to the difficulties we are facing? We only have a standard ie non-Pro account and beforehand that seemed fine for recurrent billing through PayPal and s2Member.

I just took another look at your installation.
No, I don’t think this is an issue for you, because you’re running Express Checkout only it appears.

However, on the other matter raised (with Easy Tables plugin deactivated) about returning to the website from PayPal after agreeing the payment, getting sent to the link http://www.nbo.org.uk/membership/individual-member/?s2member_paypal_xco=s2member_pro_paypal_checkout_return&token=EC-XXXXXXXXXXXXXXXXX and the process stops – have you any ideas why this is happening?

I was able to reproduce this on your installation, and then I ran diagnostics again for you. The underlying cause of this is a plugin conflict with the Transients API in WordPress®. Your installation is not storing WordPress® Transient data properly. This is creating problems with s2Member® that do not exist in a default WP installation. I also ran a scan against other plugins you’re running and it would appear that other plugins you’re running are also experiencing issues because of this conflict with the Transients API in WordPress®.

I would start be deactivating one plugin at a time until you find the conflicting plugin. I would start by disabling the DB Cache Reloaded Fix plugin that you’re running. That would be my first guess. We advise against running DB or Object caching plugins on a dynamic Membership site. If you need caching, please stick with Page caching provided by plugins like Quick Cache, WP Super Cache — or W3 Total Cache (but w/ only Page caching enabled).

Please let us know if problems persist :-)

Posted: Thursday Feb 14th, 2013 at 9:43 pm #41748
Staff Member

Details received. Thank you!

I just reviewed your installation and I do not find a timthumb directory or timthumb.php file mentioned in your Apache logs. So this leads me to believe that you have a plugin or a custom script, or a browser which is attempting to reach this URL for some unknown reason and Apache is choking due to a configuration issue.

It really should be reporting a 404 error, but it looks like you’re having some trouble with Apache overall. I’m seeing several core dumps in your web directory. I would suggest that you hire a system administrator (or contact your hosting company) to resolve this for you. I don’t see anything here that is specifically related to problems with s2Member®. This appears to be caused by server configuration issues.

See also: http://www.cyberciti.biz/faq/httpd-client-denied-by-server-configuration/

[Wed Feb 06 18:45:17 2013] [error] [client 217.160.223.166] client denied by server configuration: /home/asians7/public_html/wp-content/plugins/s2member/includes/timthumb
[Wed Feb 06 18:45:15 2013] [error] [client 217.160.223.166] client denied by server configuration: /home/asians7/public_html/wp-content/plugins/s2member/includes/timthumb.php

Posted: Thursday Feb 14th, 2013 at 8:47 pm #41747
Staff Member

@ Flyn Penoyer

Details received. Thank you!

Your site does not pass on this point. You currently have very short Security Keys.

2. Does your /wp-config.php file have all of these configuration values?

See: http://codex.wordpress.org/Editing_wp-config.php#Security_Keys
(each of these MUST be at least 60 chars, and must NOT contain: ‘unique phrase’)

Posted: Thursday Feb 14th, 2013 at 8:39 pm #41746
Staff Member

Details received. Thank you!

I just reviewed your installation. Your GA Ecommerce Tracking code looks good; as does your main GA tracking code. However, please be sure to paste your GA ECOM tracking code into both fields: Signup Tracking Codes and Modification Tracking Codes. If your Users/Members are purchasing while already logged into the site, that is a Modification and not a Signup. Most sites will want to track both scenarios.

See: Dashboard -› s2Member® -› API / Tracking -› Modification Tracking Codes

ECOM tracking data takes awhile to show up in your GA account. I’ve seen it take up to 48 hours in some cases. So this takes time to see results. Please let me know if you continue to have trouble.

Posted: Thursday Feb 14th, 2013 at 8:14 pm #41741
Staff Member

Thanks for the heads up on this thread :-)

Fatal error: Call to undefined function add_action() in /home/sbsystm/public_html/member/wp-includes/functions.php on line 12

Are you opening functions.php as a stand-alone file? This file is included by WordPress®. The add_action() function is part of the WordPress® core, and it will always be available inside functions.php, so long as this file is loaded by WordPress® because it’s part of your theme.

If you want to test scripts that you write, add this line to the top of your PHP script (which includes the WordPress® core). But please note… this is NOT required inside functions.php, because that file should only be loaded by WordPress® and not opened in a browser; and thus, WordPress® is already loaded up in this case.

include_once 'wp-load.php';

See also: Knowledge Base » Protecting Non-WordPress Content with s2Member

Posted: Thursday Feb 14th, 2013 at 8:51 am #41695
Staff Member

Thanks for the follow-up :-)

No, please look for this to come later today in the release of s2Member v120214.

Posted: Thursday Feb 14th, 2013 at 5:54 am #41686
Staff Member

@ Flyn Penoyer

It appears that your Badge Status API returns 0 indicating there is still an issue somewhere. I will be happy to review your installation though to be sure there are no problems. Please submit a Dashboard login and we’ll take a look for you. See: s2Member® » Private Contact Form

Posted: Thursday Feb 14th, 2013 at 3:59 am #41683
Staff Member
Posted: Thursday Feb 14th, 2013 at 3:59 am #41682
Staff Member

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

Your configuration looks good in what you posted. I just tested that against my AWeber account and it’s working properly. If problems persist, please take a screenshot of your AWeber Email Parser configuration, as it exists in your AWeber account and post that here for review.

Also, I suggest that you inspect the actual email that s2Member® sends to AWeber.

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: Thursday Feb 14th, 2013 at 3:40 am #41681
Staff Member

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

There are two ways to set this up.

1. You can introduce a ccBill Payment Button to a potential customer without them being logged into your site. You can place the ccBill Button Shortcode anywhere you like. Upon clicking the ccBill Button, a potential customer will be transferred to ccBill and upon completing checkout, they will receive an email that allows them to register a Username/Password for access to your site. This is the default behavior.

from: Dashboard -› s2Member® -› ccBill® Options
*Important* User Management needs to be turned off in your ccBill® account. s2Member’s integration with ccBill® does NOT require ccBill® to manage Usernames/Passwords. Instead, s2Member needs to be given exclusive permission to handle this for you. In your ccBill® account, see: Account Admin -› User Management. Turn this off, and choose: Do NOT collect Usernames/Passwords. You will also want to remove Username/Password references in the APPROVAL Email Receipt configured in your ccBill® account. In your ccBill® account, see: Account Admin -› Custom Emails.

2. You can enable Open Registration with s2Member and allow potential customers to register a Username/Password and create a Free Subscriber account first. Then upon logging into the site you would present them with a ccBill Button (normally inserted into your Login Welcome Page and wrapped with Simple Shortcode Conditionals) so that it’s only visible to Free Subscribers and not to existing Customers/Members. Upon clicking the ccBill Button they will be transferred to ccBill. Upon completing checkout their existing Free Subscriber account is automatically upgraded to a paid status (i.e. Membership Level #1,2,3 or whatever you’re selling them).

The same rule applies here: Dashboard -› s2Member® -› ccBill® Options
*Important* User Management needs to be turned off in your ccBill® account. s2Member’s integration with ccBill® does NOT require ccBill® to manage Usernames/Passwords. Instead, s2Member needs to be given exclusive permission to handle this for you. In your ccBill® account, see: Account Admin -› User Management. Turn this off, and choose: Do NOT collect Usernames/Passwords. You will also want to remove Username/Password references in the APPROVAL Email Receipt configured in your ccBill® account. In your ccBill® account, see: Account Admin -› Custom Emails.

Setting this up…

See: Dashboard -› s2Member® -› General Options -› Open Registration
See also: Dashboard -› s2Member® -› ccBill® Buttons -› Membership Level # Buttons
See also: Knowledge Base » Simple Shortcode Conditionals

Example of a ccBill Button Shortcode in your Login Welcome Page,
presented ONLY to Free Subscribers that need to upgrade to a paid status at your site.

[s2If current_user_is(subscriber)]
	[s2Member-Pro-ccBill-Button ... /]
[/s2If]

As mentioned in this post http://www.s2member.com/forums/topic/ccbill-test-transaction/ it can take some time for Email Confirmation with important details to be delivered. If possible, we would like to avoid that. The most important from the business point of view is that nothing will stand between making a payment and registering.

ccBill does not provide s2Member® with any immediate details related to a transaction after checkout (at least, not in a Return-URL). s2Member® has to await Background Post processing (aka: IPN processing) before it can handle post-processing of a transaction and send an email receipt.

That being said, this normally takes just a few seconds (up to a few minutes in some cases). It’s not normal for ccBill to linger on this. s2Member® will only take as long as it takes ccBill to send us the transaction data.

See also: Dashboard -› s2Member® -› ccBill® Options -› Background Post Integration

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

Posted: Thursday Feb 14th, 2013 at 3:21 am #41680
Staff Member

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

The %%full_coupon_code%% Replacement Code is not available in Custom Return URLs unfortunately. I think it should be, so I’m accepting this as a feature request and we’ll try to push support for this out in the next few days. Until then, you will want to review this section of your Dashboard please, where the %%full_coupon_code%% Replacement Code IS functional in the context of Affiliate Coupon Codes.

Please see: Dashboard -› s2Member® -› Pro Coupon Codes -› Affiliate Coupon Codes

Posted: Thursday Feb 14th, 2013 at 1:51 am #41674
Staff Member

Is this possible in an S2Hack by specifying a URI (to the PM screen) and restricting access to it for x amount of day?

I would suggest the use of Custom Capabilities for this.
What you would do is add a snippet of PHP that requires a particular Custom Capability to PM others in your community. If this action (i.e. to PM someone) is performed at a specific URI, you might have something like this.

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

Video » s2Member (Custom Capabilities)

Posted: Thursday Feb 14th, 2013 at 1:41 am #41671
Staff Member

Thanks for the follow-up :-)

Wow. Very odd. Those files don’t even exist in s2Member®.
Please submit a Dashboard login and we’ll review your installation.
See: s2Member® » Private Contact Form

Posted: Thursday Feb 14th, 2013 at 1:37 am #41668
Staff Member

Thanks for the follow-up :-)

I’m not seeing any significant lag there. It does appear to be loading about 200ms slower than average across other s2Member® installations though. Do you have output compression enabled at the Apache level? That would cut things down a bit further. It appears that you’ve implemented this already.

Have you made any modifications or added any MU plugin files to your WP installation?

Even with that extra 200ms, your latency on this is not that bad. s2Member® is going to increase load time slightly, if it’s JS/CSS files are included. No way around that. If you would like to optimize things further though, you can selectively load s2Member’s JS/CSS files if you like.

For CSS, please see: http://www.s2member.com/faqs/#s2-faqs-stop-loading-css

Here is another way to completely disable s2Member’s JS/CSS inclusion.

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 )

http://www.kevinleary.net/faster-wordpress-move-javascript-files-footer/

Posted: Thursday Feb 14th, 2013 at 1:19 am #41665
Staff Member

Thanks for the follow-up :-)

In fact, when testing out the registration and purchase process with a test account given to me from CCBill, I received the correct confirmation message in my inbox, but it wasn’t logged. As suggested, I’m using the plug-in WP-Mail-SMTP in order to reconfigures the wp_mail() function to use SMTP instead of mail(). I just changed the option to ” Use the PHP mail() function to send emails”, in my test account confirmation message is still sent out, but not logged.

I’m trying to figure out whether customers are not getting these e-mails at all, or simply whether they are getting sent out that end up in the spam box.

I understand. So let’s first take a look to be sure that s2Member’s post-processing routines are succeeding on your installation. To find this out, we need to first look at your ccbill-ipn.log file which you posted above.

's2member_log' => 
array (
  0 => 'IPN received on: Fri Jan 25, 2013 11:57:56 pm UTC',
  1 => 's2Member POST vars verified with ccBill®.',
  2 => 'ccBill® transaction identified as ( `NON-RECURRING/BUY-NOW` ).',
  3 => 'IPN reformulated. Piping through s2Member\'s core/standard PayPal® processor as `txn_type` ( `web_accept` ).',
  4 => 'Please check PayPal® IPN logs for further processing details.',
),

This looks good. Now we need to inspect your paypal-ipn.log file as well (s2Member’s core processor). You should find a line in that log file which specifically states that s2Member sent an email, and to whom the email was sent. If you upgrade to s2Member® v120213 or higher, you will find that we have a new Log Viewer.

See: Dashboard -› s2Member® -› Log Files (Debug)

If this is getting difficult to track down, please submit a Dashboard login and I’ll review your log files and run diagnostics for you. Please use: s2Member® » Private Contact Form

Posted: Thursday Feb 14th, 2013 at 1:02 am #41663
Staff Member

Thanks for your patience.

We have identified the underlying cause of this issue. A fix is in place for the next maintenance release. If you’d like to upgrade ahead of time, please download the latest development copy of the s2Member® Framework and upload it via FTP. See: http://downloads.wordpress.org/plugin/s2member.zip

The fix for this issue is in the s2Member® Framework. So updating your copy of the s2Member® Framework to the latest development release should correct the issue for you. The issue being numeric Usernames were causing s2Member confusion. s2Member® was passing that value to WP_User(), which considers numeric Usernames to be User IDs; resulting in a failure to redirect — reverting to the default WP behavior, which lands a User/Member on the Dashboard Profile page instead of what is expected w/s2Member. This incompatibility will be fixed in the next maintenance release of s2Member®.

See also: Dashboard -› s2Member® -› General Options -› Member Profile Modifications

Posted: Wednesday Feb 13th, 2013 at 11:39 pm #41643
Staff Member
I believe that we may have a lead on this issue.
I’m investigating now, but I’ll reply shortly with further details.
Posted: Wednesday Feb 13th, 2013 at 11:33 pm #41641
Staff Member

@ Brian Bennis

Details received. Thank you!

Investigating now.

Posted: Wednesday Feb 13th, 2013 at 11:28 pm #41640
Staff Member

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

That is correct, the Membership Options Page cannot be the Home Page of your site. It can be any other Page though. You can also setup a redirect if you like. So for instance, if s2Member® redirects someone to your Membership Options Page, you can redirect them again to your Home Page if you like.

See: s2 Knowledge Base » WP Redirects (A Plugin for WordPress®)

See also: Video » s2Member (Content Restriction Trouble?) This video discusses the issue, among other things.

Posted: Wednesday Feb 13th, 2013 at 11:22 pm #41637
Staff Member

Thanks for your patience.

I believe that we’ve identified the underlying cause of this. An issue related to this was addressed in the latest release of s2Member® and s2Member® Pro. See: s2Member® Unified Changelog » v130213

s2Member® Unified Changelog » v130213
(s2Member/s2Member Pro) Compatibility Updated all of s2Member’s IPN handlers to accept $_REQUEST data for Proxy-related variables like s2member_paypal_proxy_return_url. This allows s2Member® itself to use $_POST variables for Proxy-related variables; and it further reduces the likelihood of 403 Forbidden errors caused by paranoid Mod Security configurations. One issue this should help to correct, is a mysterious case where a success="" Shortcode Attribute is not working as you might expect. This can be caused by paranoid Mod Security configurations at places like HostGator®, because a URL is passing through a query string. This release will help to prevent this from becoming a problem, because success="" URLs will be passed through $_POST variables now in all Pro Form integrations.

Please let us know if problems persist :-)

Posted: Wednesday Feb 13th, 2013 at 11:18 pm #41636
Staff Member

Details received. Thank you!

I’m forwarding this to Bruce so he can assist you with this.

Posted: Wednesday Feb 13th, 2013 at 11:17 pm #41635
Staff Member

Thanks for your patience.

I just reviewed your log files. Yes, this is the same thing we’ve seen in the past, and PayPal® has consistently told us that it’s because of fraud filters. Honestly, I’m not totally convinced of that yet. PayPal® support says a lot of things that don’t convince me :-)

If it’s possible for us to run a couple of live test transactions against your installlation, I’ll be happy to make an attempt to debug this further. I’d really like to get to the bottom of this. I thought we had (and maybe so), but if you will allow us to run a couple of test transactions, perhaps we can uncover something more.

If so, please submit a Dashboard login here:
s2Member® » Private Contact Form

If it’s a test site, that’s fine. I just need a Payflow account where this is occurring so we can make an attempt to debug this again. Our own accounts do not exhibit this behavior unfortunately.

Posted: Tuesday Feb 12th, 2013 at 12:23 am #41524
Staff Member

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

If you’re trying to manipulate various areas of your theme,
you should probably install something like FireBug and brush up on your CSS a bit.

See: http://getfirebug.com/
See also: http://www.w3schools.com/css/

Posted: Tuesday Feb 12th, 2013 at 12:20 am #41523
Staff Member

Thank you. I’m going to review these shortly.

Viewing 25 replies - 326 through 350 (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.