WordPress.org

Plugin Directory

s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members)

s2Member®—a powerful (free) membership plugin for WordPress®. Protect members only content with roles/capabilities.

v160503

  • (s2Member/s2Member Pro) Security Enhancement: This release forces CURLOPT_SSL_VERIFYPEER to a value of TRUE in the AWeber SDK that is used when/if you integrate with AWeber. In short, this forces AWeber to have a valid/verifiable SSL certificate before any data is exchanged between s2Member and the AWeber API behind-the-scenes. Props at WordPress security team for reporting this.

v160424

  • (s2Member/s2Member Pro) PHP Compat./Bug Fix: This follow-up release includes a patch that will prevent fatal errors when s2Member and/or s2Member Pro are installed on a site running PHP v5.2 or PHP v5.3; i.e., this release corrects a bug that was causing fatal errors on these older versions of PHP. Note that s2Member and s2Member Pro are once again compatible with PHP v5.2+, up to PHP v7.0. Props @krumch. See also: this GitHub issue for details.

v160423

  • (s2Member/s2Member Pro) WP v4.5 Compatibility. This release offers full compatibility with the latest release of WordPress v4.5. Nothing major was changed for standard WordPress installations, but there were a few subtle tweaks here and there to improve v4.5 compatibility. We encourage all users to upgrade right away.

    NOTE: WP v4.5 for Multisite Networks running s2Member Pro: This release corrects a bug first introduced in the previous release of s2Member Pro that resulted in an error message (Uncaught Error: Class 'c_ws_plugin__s2member_mms_patches' not found) when updating to WP v4.5. It has been corrected in this release, but in order to avoid this problem altogether please follow this procedure when upgrading WordPress.

    WP v4.5 Multisite Upgrade Procedure:

    • Upgrade s2Member and s2Member Pro ​before​ updating WordPress core.
    • Then upgrade WordPress core and observe that Multisite Patches are applied properly.

    If you have already upgraded to WP v4.5 and worked past this issue by patching manually, that's fine. You can still upgrade s2Member and s2Member Pro. After the upgrade you may feel free to enable automatic patching again if that's desirable.

  • (s2Member/s2Member Pro) Bug Fix: This release corrects a bug first introduced in the previous release which was causing a PHP warning about cf_stream_extn_resource_exclusions. A symptom was to have mysterious problems with [s2Stream /] or the [s2File /] shortcode. Fixed in this release. Props at @raamdev @renzms for reporting. See also this GitHub issue for details.

  • (s2Member/s2Member Pro) PayPal SSL Compatibility: This release of s2Member provides an https:// IPN URL for PayPal IPN integrations. It also provides a helpful note (in the Dashboard) about a new requirement that PayPal has with respect to the IPN URL that you configure at PayPal.com. s2Member has been updated to help you with this new requirement.

    New PayPal.com IPN Requirement: PayPal.com is now requiring any new IPN URL that you configure to be entered as an https:// URL; i.e., if you log into your PayPal.com account and try to configure a brand new IPN URL, that URL must use https://. PayPal.com will refuse it otherwise.

    However, the notify_url= parameter in standard PayPal buttons should continue to work with either http:// or https://, and any existing configurations out there that still use an http:// IPN URL should continue to work as well. So this is about planning for the future. We have been told that PayPal will eventually require that all IPN URLs use an https:// protocol; i.e., they will eventually stop supporting http:// IPN URLs altogether (at some point in the future), they are not giving anyone a date yet. For this reason we strongly suggest that you review the details given here.

    Since PayPal is moving in a direction that will eventually require all site owners to have an SSL certificate in the future, s2Member's instructions (and the IPN URL it provides you with) will now be presented in the form of an https:// URL with additional details to help you through the process of configuring an IPN handler for PayPal.

    See: Dashboard → s2Member → PayPal Options → PayPal IPN Integration

    Props @codeforest for reporting. See this GitHub issue for further details.

  • (s2Member/s2Member Pro) Bug Fix: Email field on Registration page not shown as required via * symbol like other fields in this form. Caused by a change in WordPress core. Fixed in this release. Props @spottydog63 @renzms. See also: this GitHub issue for details.

  • (s2Member/s2Member Pro) Bug Fix: E_NOTICE level errors in cache handler when running in WP_DEBUG mode. Props at @KTS915 for reporting. Fixed in this release. See also: this GitHub issue.

  • (s2Member/s2Member Pro) i18n Compatibility: This release of s2Member moves the load_plugin_textdomain() call into the plugins_loaded hook instead of it being run on init. Props @KTS915 for reporting. See also: this GitHub issue for details.

  • (s2Member Pro) Multisite Patches: Fixed a bug (Uncaught Error: Class 'c_ws_plugin__s2member_mms_patches' not found) whenever WordPress was being updated and Multisite Patches were being applied in the pro version of s2Member. See: this GitHub issue for details.

  • (s2Member/s2Member Pro) Security Enhancement: This release of s2Member defaults PayPal Button Encryption to a value of on instead of off; i.e., there is a new default behavior. Existing s2Member installations are unaffected by this change, but if you install s2Member on a new site you will notice that (if using PayPal Buttons), Button Encryption will be enabled by default.

    Note that in order for Button Encryption to work, you must fill-in the API credentials for s2Member under: Dashboard → s2Member → PayPal Options → PayPal Account Details

v160303

  • (s2Member/s2Member Pro) Comet Cache Compat.: This release improves compatibility with Comet Cache (formerly ZenCache), whenever you have it configured to cache logged-in users. See also: this GitHub issue. Props @KTS915 for reporting!

  • (s2Member Pro) ClickBank IPN v6 Compat.: Version 6 of the ClickBank IPN system was recently updated in a way that causes it to return transactionType = CANCEL-TEST-REBILL in test mode, instead of the previous value, which was: TEST_CANCEL-REBILL. s2Member Pro has been updated to understand either/or. See also this GitHub issue for further details.

  • (s2Member Pro) Stripe Bug Fix: This release corrects a bug caused by typos in the source code that were preventing refunds from being processed as expected whenever Stripe was integrated. Props @YearOfBenj for reporting this important issue. Props @patdumond for relaying vital information. See also this GitHub issue if you'd like additional details.

  • (s2Member Pro) PayPal Bug Fix: Under some conditions, the EOT behavior in s2Member Pro (when integrated with PayPal Pro) would immediately terminate access whenever a customer's subscription naturally expires. Recent versions of the Payflow system set the status to EXPIRED, and this was handled as an immediate EOT instead of as a delayed EOT that is subject to date calculations to determine the correct date on which a customer should lose access; i.e., based on what they have already paid for. Fixed in this release. See also: this GitHub issue if you'd like additional details.

  • (s2Member Pro) One-Time Offer Bug Fix: This release corrects some inconsistencies in the One-Time Offers system that comes with s2Member Pro. Symptoms included seemingly unpredictable behavior whenever redirections were configured without a specific Membership Level. Props @jacobposey for reporting. See also: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Bug Fix: s2Member was not properly respecting DISALLOW_FILE_MODS in a specific scenario related to GZIP. Props @renzms @kristineds. See also: this GitHub issue for further details.

  • (s2Member,s2Member Pro) Bug Fix: Resolved a minor glitch in the WordPress Dashboard → Settings → General panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) PayPal Sandbox: This release updates the inline documentation under the PayPal Account Settings section of s2Member. We now suggest that instead of enabling PayPal Sandbox Mode (sometimes buggy at best), that site owners run tests with low-dollar amounts against a live PayPal account instead; e.g., $0.01 test transactions in live mode work great also. See this GitHub issue if you'd like additional details. Props @raamdev for mentioning this again.

v160120

  • (s2Member,s2Member Pro) Bug Fix: Resolved a minor glitch in the WordPress Dashboard → Settings → General panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: this GitHub issue if you'd like additional details.

  • (s2Member) Multisite Support: This release of s2Member (the free version only) removes full support for Multisite Networks, which is now a Pro feature; i.e., only available in the Pro version.

    Is s2Member still compatible with WordPress Multisite Networking?

    Multisite support is no longer included in the s2Member Framework. However, it is available with s2Member Pro. s2Member Pro is compatible with Multisite Networking. After you enable Multisite Networking, install the s2Member Pro Add-On. Then, navigate to s2Member → Multisite (Config) in the Dashboard of your Main Site. You can learn more about s2Member Pro at s2Member.com.

    I was using the free version in a Multisite Network before. What happened?

    s2Member (when running on a Multisite Network) requires minor alterations in WordPress core that are not compatible with plugins available at WordPress.org (i.e., not allowed) at this time. For this reason, full support for Multisite Networks is now available only in the pro version.

    What if I already configured Multisite options on a site running the free version?

    If you already customized s2Member's Multisite Network configuration options in a previous release, those settings will remain and still be functional over the short-term; i.e., the functionality that makes s2Member compatible with Multisite Networking is still included, even in the s2Member Framework. However, the routines that deal with core patches, and those that allow you to change Multisite options are no longer available. You will need to acquire the Pro version. Or, you can revert to a previous release. s2Member Framework v151218 is suggested if you go that route.

    See also: this GitHub issue for further details.

v151218

  • (s2Member Pro) Reminder Email Notification Exclusions: It is now possible to enable/disable EOT Renewal/Reminder Email notifications on a per-user basis. You can edit a user's profile in the WP Dashboard and check "No (exclude)" to prevent specific users from receiving any reminder emails that you configured. Props at @patdumond @luisrock. See also this GitHub issue.

  • (s2Member) PHP v7 Compat.: This release addresses one remaining issue with the preg_replace /e modifier as reported in this GitHub issue. Props @nerdworker for reporting. Thanks!

  • (s2Member/s2Member Pro) WP v4.4 Compat.: This release corrects an issue that impacted sites attempting to run s2Member on a Multisite Network; i.e., it corrects a problem with the load.php patch against the latest release of WordPress. Props @crazycoolcam for reporting! See also this GitHub issue.

  • (s2Member/s2Member Pro) Getting Help: This release adds a new menu page titled, "Getting Help w/ s2Member". This new section of your Dashboard provides quick & easy access to s2Member KB articles, suggestions, and our tech support department (for pro customers). Props @patdumond @raamdev. See also this GitHub issue.

v151210

  • (s2Member/s2Member Pro) WP/PHP Compat: Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.

  • (s2Member Pro) New Feature! EOT Renewal/Reminder Email Notifications: This release adds a long-awaited feature which allows you to configure & send EOT Renewal/Reminder Email notifications to your customers; to let them know their account with you will expire soon.

    It's possible to configure one or more notifications, each with a different set of recipients, and a different subject and message body. Notifications can be sent out X days before the EOT occurs, the day of the EOT, or X days after the EOT has already occurred; e.g., to encourage renewals.

    See: Dashboard → s2Member → Stripe Options → EOT Renewal/Reminder Email(s) Also works with PayPal Pro, Authorize.Net, and ClickBank.

    Props @clavaque @KTS915 @raamdev @patdumond @kristineds @pagelab @chronicelite @csexplorer17 @radven, and all of our great supporters. See this GitHub issue.

  • (s2Member/s2Member Pro) Cleanup: This release improves the list of Other Gateways; moving deprecated payment gateways to the bottom of the list and improving the display of the list overall. Props @kristineds @clavaque. For further details, see this GitHub issue.

  • (s2Member/s2Member Pro) Bug Fix: This release corrects an "Insecure Content Warning" that may have appeared in certain portions of the s2Member Dashboard panels whenever you accessed your Dashboard over the https protocol. The issue was seen in Google Chrome and it was simply a <form> tag that referenced the s2Member mailing list. This is now hidden by default if you access the Dashboard over SSL, in order to avoid this warning. Props @patdumond for reporting. Props @renzms for fixing. See also this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Locale: This release adjusts the Stripe overlay so that it will automatically display in the language associated with a visitor's country. This was accomplished by setting the Stripe Checkout variable locale: 'auto' as suggested in this GitHub issue. Props @renzms

  • (s2Member Pro) Stripe Bug Fix: This release improves the way Stripe Image Branding and Stripe Statement Descriptions are applied whenever you intentionally leave them empty. It also changes the default value of Stripe Image Branding to an empty string; which will tell Stripe to use the account-level default value that you configured in your Stripe Dashboard in favor of that which you configure with s2Member. The choice is still yours, but this release sets what others have told us are better default values. See also this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Enhancement: This release makes it possible to configure the Stripe "Remember Me" functionality with s2Member; i.e., it is now possible to turn this on/off if you so desire. See also this GitHub issue for details.

  • (s2Member Pro) Stripe Enhancement: This release makes it possible for you to tell Stripe to collect a customer's full Billing Address and/or full Shipping Address. See this GitHub issue for additional details.

  • (s2Member/s2Member Pro) UI Clarity: This release improves the way the New User Email Notification panel behaves whenever you also have Custom Passwords enabled with s2Member. The New User Email Notification is only sent when Custom Passwords are off, so this panel should disable itself whenever that is the case. Fixed in this release. Props @raamdev See also: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Bug Fix: This release resolves a minor issue for developers running Vagrant and VVV with symlink plugins. Props @magbicaleman ~ See this GitHub issue for further details.

  • (s2Member Pro) Conflict Resolution: This release resolves a conflict with the WP Full Stripe plugin and any other plugins that already load an existing copy of the Stripe SDK at runtime; in concert with s2Member Pro. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) New Log File: This release of s2Member adds a new log file that keeps track of all automatic EOTs that occur through the underlying CRON job. The new log file is named: auto-eot-system.log and you can learn more about this file and view it from: Dashboard → s2Member → Log Files (Debug) → Log Viewer. Props @raamdev ~ See this GitHub issue if you'd like additional details.

  • (s2Member Pro) [s2Member-List /] Bug Fix: This release resolves a problem in the [s2Member-List /] shortcode whenever it is configured to search Custom Fields generated with s2Member. Props @patdumond @renzms. See this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Enhancement: This release updates s2Member's Stripe integration so that any Buy Now transaction spawns a Stripe popup with the amount and full description filled within the popup itself as well. Props @raamdev. See this GitHub issue for further details.

  • (s2Member/s2Member Pro) WP v4.3 Compat. This release addresses a minor conflict between functionality provided by s2Member and that of the WordPress core itself. Whenever you change a user's password by editing their account, you can choose to send them an email about this change (or not). Since WordPress v4.3, the WordPress core will also send a more vague email to notify the user of a password change, which is not customizable. This release disables that default email notification in favor of the more helpful and customizable email message that can be sent by s2Member. Simply tick the "Reset Password & Resend New User Email Notification" checkbox whenever you are editing a user. Props @patdumond for reporting. See also this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) PayPal Compat. This release resolves a conflict between s2Member and a nasty bug at PayPal.com that came to light recently. In some cases, customers reported that clicking the "Continue" button at PayPal.com simply reloaded the page and gave no response. We found that this was attributed to a bug on the PayPal side (see 792). To work around this bug, we are using a new default value for the ns="1" shortcode attribute in PayPal Pro-Forms and PayPal Buttons. The new default value is ns="0", which seems to work around this bug for the time being. Props @patdumond @raamdev for reporting and testing this fix. See also full report here.

    • ns="0" (new default) = prompt for a shipping address, but do not require one
    • ns="1" (old default) = do not prompt for a shipping address whatsoever

    See also: Dashboard → s2Member → PayPal Pro-Forms → PayPal Shortcode Attributes (Explained)

  • (s2Member/s2Member Pro) Getting Started: The old Quick Start Guide was renamed to "Getting Started" in this release. It was also cleaned up and improved a bit; i.e., brought up-to-date. In addition, there is a new welcome message for first-time users of the software that invites them to read over the Getting Started page before they begin. Props @raamdev. See also: this GitHub issue.

  • (s2Member Pro) Stripe Bug Fix: This release corrects a problem with Stripe refund and chargeback notification handling. s2Member Pro will now receive and handle Stripe refund and/or chargeback events (through your existing Webhook) as expected.

    See: Dashboard → s2Member → Stripe Options → Automatic EOT Behavior for options that allow you to control the way in which s2Member should respond whenever a refund is processed, or when a dispute (chargeback) occurs at Stripe.

    Props @ElizWS and @tubiz w/ AffiliateWP. See also this GitHub issue.

  • (s2Member Pro) [s2Member-List /] Added the ability to search usermeta data too. For instance, you can now search first_name, last_name, nickname, description, s2member_subscr_id, s2member_custom, etc, etc. See this GitHub issue.

    Note: The first_name, last_name, and nickname columns are now a part of the default value for the search_columns="" attribute in the [s2Member-List /] shortcode. See also: this GitHub issue. Props @patdumond for her ideas.

  • (s2Member Pro) [s2Member-List /] There are some new orderby="" options. You may now choose to order the list by: first_name, last_name, or nickname.

  • (s2Member Pro) [s2Member-List /] It is now possible to search through s2Member Custom Registration/Profile Fields that may contain an array of values; i.e., you can now search any Custom Registration/Profile Field in s2Member. For instance, if a field is designed to accept multiple selections, or you provide a set of multiple checkbox options. See also: this GitHub issue.

  • (s2Member Pro) [s2Member-List /] Bug Fix: Meta fields that contained a timestamp were being displayed by the date_i18n() function in WP core. However, the time offset calculation was wrong; i.e., not a match to the local time configured by your installation of WordPress. Fixed in this release.

  • (s2Member Pro) [s2Member-List /] Bug Fix: Minor formatting corrections for replacement codes made available for the link_*="" attributes in the [s2Member-List /] shortcode.

  • (s2Member Pro) [s2Member-List /]: It is now possible to search for an exact match by surrounding your search query with double quotes; e.g., "john doe" (in quotes, for an exact match), instead of the default behavior, which is *john doe* behind-the-scenes; i.e., a fuzzy match.

  • (s2Member Pro) [s2Member-List /]: Several behind-the-scenes performance enhancements.

  • (s2Member/s2Member Pro) PHP 7 Compat. This release of s2Member removes its use of the /e modifier in calls to preg_replace(), which was deprecated in PHP 5.5 and has been removed in PHP 7. Props @bridgeport. See also: this GitHub issue.

v150925

  • (s2Member/s2Member Pro) WP v4.3 Compat. This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the %%user_pass%% Replacement Code in their New User Email notification. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) WP v4.3.1 Compat. This release corrects a compatibility issue whenever you run s2Member together with WordPress v4.3.1+. Note that WordPress v4.3 made changes to the wp_new_user_notification() function in WordPress core. Then, a later release of WP v4.3.1 changed it again; breaking compatibility in both instances. This release brings s2Member up-to-date with WordPress v4.3.1 and preserves backward compatibility with WordPress v4.3, as well for versions prior. Props @bridgeport. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Bug Fix: Fixed a bug where the s2Member CSS and JS was not loaded on the Dashboard when WordPress was installed in a subfolder that was different from the Home URL. Props @magbicaleman. See Issue #696.

  • (s2Member Pro) Bug Fix: This release corrects a security issue related to the Pro Upgrade Wizard for s2Member Pro being displayed without checking current_user_can('update_plugins'). Resolved. Props @raamdev for identifying this and working to implement the fix. See this GitHub issue if you'd like additional details.

  • (s2Member Pro) Bug Fix: This release corrects a bug impacting the wp_lostpassword_url() function whenever s2Member is configured to run in a Multisite Network. The link is now adjusted automatically so that a lost password is always recovered from the current site, not the Main Site in the network. Props to @raamdev See also: this GitHub issue for further details.

  • (s2Member Pro) Bug Fix: Stripe Pro-Forms presented after a long block of text on a page, were not returning to the proper hash location after a Coupon Code was applied. Fixed in this release. Props @raamdev See also: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) SSL Edge Case: This release corrects an SSL + Protected File Download problem that may have occurred in rare circumstances. Reproducing this required that you have a user with an ISP that changed their IP address whenever they accessed a site over https instead of http, and that an s2Member Protected File Download link is presented on an HTTPS page. And, that you were using s2Member's own force-SSL filters. A symptom of this issue was to receive mysterious reports of a user getting a 503 error when trying to access a protected file. Resolved in this release. See this GitHub issue if you'd like additional details.

v150827

  • (s2Member/s2Member Pro) WordPress v4.3 Compat./Bug Fix This release of s2Member alters the way New User Notification Emails are sent, and in how they should be formatted in WordPress v4.3+.

    The New User Notification Email is now sent (to a user) only if they did not set a Custom Password during their registration; i.e., only if they need this email to set their password for the first time. In short, s2Member now follows the same approach used by WordPress v4.3+.

    See: Dashboard → s2Member → General Options → Email Configuration → New User Notification

    So the purpose of this particular email has changed just a bit; i.e., the New User Notification Email. Instead of it being sent to every new user, it is only sent to users who need it for the purpose of obtaining a password which grants them access to their account for the first time.

    Upgrading to WordPress v4.3 and the latest release of s2Member?

    Please review this section of your Dashboard carefully: s2Member → General Options → Email Configuration → New User Notification

    • If you are using s2Member to customize the New User Notification email, you should try to update this message so that it includes the new %%wp_set_pass_url%% Replacement Code.

    See also: this comment at GitHub about the recent changes, with screenshots.

  • (s2Member Pro) [s2Member-List /] Bug Fix: This release corrects a bug in the [s2Member-List /] shortcode that was causing levels="0" not to work, and in fact any use of a 0 in the levels="" attribute was broken. See this GitHub issue if you'd like additional details. Props to @patdumond for reproducing, reporting and testing this issue.

  • (s2Member/s2Member Pro) Emoji Bug Fix: This release corrects a bug in s2Member's SSL filters that can be applied with the Post/Page Custom Field s2member_force_ssl being set to yes. A symptom of this bug was to see an SSL warning in the latest release of WordPress related to the new Emoji library. See this GitHub issue if you'd like additional details.

v150722

  • (s2Member/s2Member Pro) New Shortcode: This release introduces a powerful new shortcode which allows you to display a user's EOT (End of Term) or NPT (next payment time) in a WordPress Post or Page. For further details and some minor limitations, please see [s2Eot /] Shortcode Documentation. Props to @raamdev and @patdumond for their strategic assistance, feedback, and ideas for this shortcode.

  • (s2Member/s2Member Pro) Strong Password Enforcement: This release of s2Member makes it possible for a site owner to enforce strong passwords; i.e., to require a minimum number of characters and a specific strength (i.e., mix of required characters). The default minimum length in s2Member changed from 6 to 8 characters minimum. The default password strength minimum is good. To customize, please see: s2Member → General Options → Registration/Profile Fields & Options. See also: this GitHub issue if you'd like additional details. Props to @patdumond and @KTS915 for ideas and feedback.

  • (s2Member Pro) reCAPTCHA v2 Upgrade: This release of s2Member comes with an updated reCAPTCHA™ integration in order to take advantage of No CAPTCHA reCAPTCHA and other enhancements provided by the v2 update on Google's end.

    Existing s2Member installations that already have an old set of reCAPTCHA v1 Public/Private keys will continue to function as before. However, it is suggested that you configure reCATPCHA v2 keys in order to put s2Member Pro-Forms into the v2 mode moving forward. Please see: Dashboard → s2Member → General Options → CAPTCHA Anti-Spam Security where you will find instructions.

  • (s2Member/s2Member Pro) PayPal IPN Compat. This release addresses a problem with IPN connection failures that result in a 500 Internal Server Error on the PayPal side; occurring whenever s2Member attempts to verify IPN data. Please see: this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Bug Fix: This release corrects a bug in Stripe Pro-Form Checkout Options, where a Free Registration option could cause other paid Checkout Options to result in a checkout error under the right conditions. See this GitHub issue for further details.

  • (s2Member/s2Member) Google Analytics Compat. This release automatically preserves utc_ variables that are used by Google Analytics whenever a Membership Options Page redirection occurs. i.e., if a visitor comes to the site with utc_ variables and is redirected to the Membership Options Page, because the content they were trying to access is protected; the utc_ variables are preserved during this redirection, and delivered as part of the Membership Options Page redirect.

  • (s2Member Pro) Authorize.Net Endpoint Filters: This release adds two new WordPress Filters (i.e., Hooks) that can be used by developers in certain rare cases. Hook names are ws_plugin__s2member_pro_authnet_aim_endpoint_url and ws_plugin__s2member_pro_authnet_arb_endpoint_url. See this GitHub issue if you'd like additional details and a quick example of use.

  • (s2Member Pro) Authorize.Net AIM Compat.: This release addresses a compatibility issue that came to light recently, which was actually attributed to a bug in s2Member Pro that has been sliding through unnoticed until now. The format for an expiration date sent to the Authorize.Net AIM API should be MM-YYYY. The format for ARB API calls is YYYY-MM. s2Member Pro was sending YYYY-MM to both APIs. Fixed in this release. Props to @raamdev for investigating this. See also this GitHub issue if you'd like additional details.

  • (s2Member Pro) [s2Member-List /] Bug: This release corrects an issue in the [s2Member-List /] shortcode that was preventing the display_name DB column from being searchable. This release also adds the display_name to the list of default search_columns="" that are considered by the [s2Member-List /] shortcode. Props to @patdumond for researching this. See this GitHub issue for further details.

  • (s2Member/s2Member Pro) Bug Fix: This release corrects an issue where s2Member would fail to subscribe customers to configured mailing list IDs whenever an existing customer is upgrading and you have the Double Opt-In Checkbox turned off entirely. Fixed. See this GitHub issue if you would like additional details.

  • (s2Member Pro) Stripe Bug Fix: This release corrects a bug in s2Member's Stripe Pro-Forms, related to having multiple Checkout Options. The bug resulted in a missing error message whenever one of the Checkout Options was submitted incorrectly, and also resulted in the default Checkout Option being magically selected instead of the one that a customer was working with. Props to @patdumond and @bryanthankins. See: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Bug Fix: This release fixes an issue where the s2Drip shortcode was requiring PHP 5.3+; this fix allows the shortcode to work properly with PHP 5.2+.

  • (s2Member Pro) Compat. A call to WP_Widget was updated to support WordPress v4.3+. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Bug Fix: This release corrects a bug in the s2Member IPN handler that processes full refunds. In your s2Member EOT Behavior options, if you choose the refunds,partial_refunds,reversals option it results in a full refund not being processed; i.e., an EOT does not occur as expected. s2Member was incorrectly recording that your configured preference was not to process refunds whenever a full refund occurs. Fixed in this release. See also this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Wikpedia Links: Updated throughout to use an https:// protocol. Now the Wikipedia default. This impacts mostly the back-end of s2Member which references a few articles at the Wikipedia. However, it also impacts Pro-Forms where a link is provided to users with more information about Security Codes that appear on the back of credit cards. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) qTranslate X Compat. This release includes a minor update that improves compatibility with qTranslate X. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) AWeber Compat. This release resolves an issue with AWeber rejecting subscribers that have IPv6 addresses. Until such time as AWeber adds support for IPv6 addresses, s2Member will simply send an empty IP address whenever it encounters an IPv6 address. This behavior was requested by the AWeber team. See this GitHub issue if you'd like additional details.

  • (s2Member Pro) Coupon Code Expiration: This release improves the way coupons that are set to expire are handled. Instead of expiring at midnight the day before the configured expiration date, coupon codes now expire at the end of the configured day. As always, all times are calculated from GMT/UTC time, the same as WordPress itself. In short, if you set a coupon to expire Dec 5th, the coupon will now expire Dec 5th, at the end of the day (UTC time). The old behavior, was for the coupon to expire Dec 4th at midnight UTC time, which led to confusion in many cases. Please see this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) IPN Proxy Key Bug: This release corrects a minor bug in s2Member's IPN Proxy Key generation that was causing problems in just a few edge cases. This bug may have impacted your site if you had a domain name being accessed with a Host: header containing mixed caSe. Not normal behavior, but there are a few edge cases where it's important for s2Member to get this right in order to avoid an "Unable to verify $_POST vars." error. See this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Password Reset Layout: This release improves the layout/CSS applied to the WordPress password reset form in order to better separate the password strength indicator from the instructions provided by WordPress. See this GitHub issue if you'd like additional details. Props to @patdumond, @BugRat, and @raamdev for discovering this.

  • (s2Member) Back-end UI Quick Links: This release resolves an overlap in the display of the quick links atop each menu page in the Dashboard. This bug impacted the lite version only. If you'd like additional details, please see this GitHub issue. Props to @raamdev for discovering this.

  • (s2Member Pro) Username Compat.: This release updates s2Member's own validation against usernames in order to bring it inline with the most recent versions of WordPress core; i.e., we now allow whitespace in usernames. This release was updated so that usernames are validated only by the WordPress core function: sanitize_user(), which does allow single whitespace characters in usernames. Please see this GitHub issue if you'd like additional details.

  • (s2Member Pro) Message After Modification: This release improves the default response that a customer who is upgrading/downgrading receives after having completed checkout using a Pro-Form. Instead of asking the customer to "log back in", s2Member simply says, "Thank you. Your account has been updated.". There is no reason for a customer to log back in; i.e., this is not necessary, and that message was leading to some confusion. Note also that with Pro-Forms you can provide a Custom Return URL on Success using the success="" shortcode attribute. Thus, this message is simply a default. We suggest that you customize in all cases. See this GitHub issue if you'd like additional details. Props to @patdumond for reporting this important issue.

  • (s2Member Pro) Documentation Update: This releases improves the documentation for the rrt="" shortcode attribute in all Pro-Form implementations; e.g., PayPal Pro-Forms, Authorize.Net Pro-Forms, and Stripe Pro-Forms. The rrt="" attribute can be somewhat misleading, so we added the following: IMPORTANT NOTE: If you don't offer a trial period; i.e., the first charge occurs when a customer completes checkout, you should set this to the number of additional payments, and NOT to the total number. For instance, if I want to charge the customer a total of 3 times, and one of those charges occurs when they complete checkout, I set should this to rrt="2" for a grand total of three all together.

  • (s2Member/s2Member Pro) Bug Fix: This release corrects an issue with EOT calculations under a specific circumstance. If a customer registered on the site for free, and later made a purchase that included a free trial period, and they canceled within the trial period, the EOT was being incorrectly calculated based on the user's WordPress registration time instead of being based on the time that their trial began. This resulted in an immediate EOT (due to it being a date in the past), instead of being set to the end of the trial. Fixed in this release.

  • (s2Member/s2Member Pro) Documentation Update: This release replaces a specific symbol that has been used throughout the Dashboard with s2Member. Instead of the symbol we are now using the more compatible symbol instead. This is used to indicate a Dashboard path.

  • (s2Member/s2Member) E_NOTICE: Several E_NOTICE-level warnings were resolved in this release. Note that E_NOTICE-level warnings only show up in WP_DEBUG mode for developers, but they are frustrating nonetheless. Props to @raamdev for reporting some of these.

  • (s2Member Pro) Bug Fix: PayPal Pro-Forms selling to customers who choose a Maestro/Solo card may experience problems in some circumstances. GBP currency conversion was partially failing due to a change in the underlying API that s2Member calls upon. Fixed in this release. See also: this GitHub issue if you'd like additional details.

  • (s2Member/s2Member Pro) Opt-In Bug Fix: This release of s2Member corrects a bug that was causing members to be automatically unsubscribed from your mailing list whenever you choose to hide the Double Opt-In Box. A customer updating their profile later without this box, was being unsubscribed inadvertently. Fixed in this release. Props to @raamdev for his work in reproducing and reporting this bug. See this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Bug Workaround: It came to our attention that some Stripe API calls that simply update the name, address_state, address_zip, and address_country for tax reporting purposes were resulting in a card decline even after Stripe approved the transaction. We suspect this is a bug in the Stripe API. It has been reported to Stripe. For now though, we are working around this issue by failing gracefully in such a scenario. This simple update is there only for tax reporting purposes, so if it fails it does not warrant a refusal to complete the transaction.m It is simply logged by s2Member for analysis. Please see this GitHub issue where a deeper investigation is underway for our next maintenance release.

  • (s2Member Pro) Stripe API Update: This release of s2Member takes advantage of the latest Stripe API version. Moving from v2015-02-18 to v2015-07-13. See this article at Stripe if you'd like additional details. Remember that s2Member's API calls to Stripe will always use this specific version of their API (v2015-07-13), even if your Stripe account is configured with an older default version. This is to ensure that s2Member works as intended for all site owners.

  • (s2Member Pro) Stripe Prepaid Cards: This release makes it possible for site owners to reject prepaid cards if they choose to do so. Stripe has the ability to determine if a credit/debit card is backed by a prepaid funding source. If it is, you can choose to reject or allow this type of card. The default behavior is to accept it. See: Dashboard → s2Member → Stripe Options → Account Details → Reject or Allow Prepaid Cards for further details. See also: this GiHub issue if you'd like more information. Props to @raamdev for determining the feasibility of this feature.

  • (s2Member Pro) Bug Fix: Notice: Undefined index: password1 in paypal-registration-in.inc.php. This was another E_NOTICE-level warning that was cleaned up in this release. Props to @raamdev See this GitHub issue if you'd like additional details.

  • (s2Member Pro) Stripe Bug Fix: This release fixes a bug in Stripe Pro-Forms where upon a customer applying a 100%-off coupon code, the customer is met with an erroneous error regarding a missing state/zipcode--and only when a site owner has defined a tax configuration file also. Fixed in this release. See also this GitHub issue if you'd like additional details.

  • (s2Member Pro) Automatic Update Compat.: Automatic Background Updates were introduced in WordPress v3.7 and while by default only WordPress core updates are updated automatically in this special way, it's still possible to enable automatic background updates for everything; including themes and plugins. For instance, some web hosting companies enable automatic/background plugin updates in an attempt to improve overall security.

    That's fine. However, when s2Member Pro is installed, it works as an add-on for the s2Member Framework plugin, and any update of the Framework plugin requires a manual or interactive update of the Pro add-on. Otherwise your site is left with only a portion of its original functionality until you complete the update. For that reason, starting with this release of s2Member, automatic background updates of the s2Member Framework are disabled automatically when you are also running s2Member Pro.

    Props to @raamdev for addressing this issue and providing the source code which made this enhancement possible. See also this GitHub issue if you'd like additional details.

    See also: Instructions for Updating s2Member and s2Member Pro

  • (s2Member Pro) [s2Member-Login /] Shortcode: This release includes a new shortcode that allows you to display a login box on any Post/Page that you create with WordPress. It can also double as a way to display a user's profile summary; including their avatar. See: [s2Member-Login /] Shortcode Documentation for further details.

  • (s2Member Pro) [s2Member-Summary /] Shortcode: This release includes a new shortcode that allows you to display a user's profile summary (including avatar) in any Post/Page that you create with WordPress. It can also double as a way to display a login box in case the user is not logged in yet (optional). See: [s2Member-Summary /] Shortcode Documentation for further details. Props to @patdumond for her ideas and feedback on this new feature.

  • (s2Member/s2Member Pro) Avatar via Shortcode: The [s2Get /] shortcode has been updated in support of user avatars, to make it easier for site owners to include a member's avatar in any WordPress Post/Page of their choosing; e.g., [s2Get user_field="avatar" size="96" /] produces an <img /> tag with the user's avatar. See also: [s2Get /] Shortcode Documentation for further details/examples. Props to @patdumond for her ideas and feedback on this feature.

  • (s2Member/s2Member Pro) [s2Get date_format="" /] Now Possible: The [s2Get /] shortcode was updated to support date formats whenever the user_field="" key that you want to display ends with _time; e.g., [s2Get user_field="s2member_last_payment_time" date_format="M jS, Y, g:i a T" /] produces: Mar 5th, 2022, 12:00 am UTC instead of a UNIX timestamp. See also: [s2Get /] Shortcode Documentation for further details/examples, including PHP equivalents.

    See also: New [s2Eot /] Shortcode with EOT-specific date/time functionality enhancements.

  • (s2Member/s2Member Pro) WordPress v4.3-beta Compat.: This release was tested against WordPress v4.2+, including WordPress v4.3-beta. A few minor adjustments were made to improve support in the upcoming release of WordPress v4.3 based on beta releases made available to us.

  • (s2Member/s2Member Pro) goo.gl URL Shortener: This release addresses a problem with the Google URL Shortening API. Google now requires that you configure an API key. Otherwise, API calls will fail often and s2Member reverts back to tinyURL instead. Starting with this release, if you enable the Google URL Shortener, you will need to supply an API key for it to work as expected. See: s2Member → General Options → URL Shortening Service Preference for further details. See also this GitHub issue if you'd like additional details. Props to @bridgeport for reproducing and reporting this bug.

  • (s2Member/s2Member Pro) Bitly URL Shortener: This release adds support for Bitly to be used as your preferred URL Shortening service. Bitly has become very popular for many reasons. One reason to choose Bitly over others is that you can configure your Bitly account to use a custom domain of your choosing; i.e., shortened URLs may contain a domain that you configure. See: s2Member → General Options → URL Shortening Service Preference for further details.

  • (s2Member Pro) Other Gateways: Starting with this release, when you install the s2Member Pro add-on for the first time, there are two Pro gateways enabled by default. When you first install s2Member Pro (first-time users only), both the Stripe and PayPal Pro payment gateways will already be enabled for you. This is to help site owners avoid confusion. In addition, first-time users will be greeted by s2Member Pro with a reminder to configure your "Other Gateways". See also this GitHub issue if you'd like additional details. Props to @raamdev for identifying this usability issue and providing feedback/suggestions.

  • (s2Member Pro) Stats Collection: Starting w/ this release of s2Member Pro, we are now collecting important/anonymous server details that will help us better understand which versions of PHP/MySQL are most widely used by site owners running the pro version of our software. For further details, please see: What anonymous information does s2Member Pro report to WebSharks, and why?

v150311

  • (s2Member/s2Member) Bug Fix: The list of users in the WordPress Dashboard was going blank in a particular scenario where a search was attempted in concert with a sortable s2Member column. Fixed in this release. Props to @bridgeport for finding this. See also this GitHub issue if you'd like technical details.
  • (s2Member Pro) [s2Member-List /] Bug Fix: This release resolves an issue with pagination in the [s2Member-List /] shortcode after recent changes in the WP_User_Query class. See

Requires: 4.2 or higher
Compatible up to: 4.5-alpha
Last Updated: 2 months ago
Active Installs: 40,000+


Support

2 of 17 support threads in the last two months have been marked resolved.

Got something to say? Need help?

Compatibility

+
=
Works!

5 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 50,2,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,3,3 100,1,1
67,3,2 100,1,1 100,2,2 100,2,2 100,1,1 100,2,2 67,3,2 100,2,2 100,3,3 100,3,3 100,1,1
100,1,1
0,1,0 100,4,4
100,2,2
0,7,0 100,1,1 100,2,2 100,2,2 100,2,2 100,4,4 100,2,2 100,5,5 100,4,4
100,2,2 82,11,9
100,9,9
100,2,2 100,5,5 90,10,9 100,4,4 100,6,6 75,4,3
100,3,3 100,3,3 100,3,3 100,3,3 100,1,1 100,1,1
100,4,4 100,4,4 100,4,4 100,4,4 100,3,3 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,4,4 100,5,5 100,5,5 100,3,3 100,2,2
83,6,5 100,7,7 100,6,6 100,11,11 100,5,5 100,4,4 100,4,4 100,4,4 100,6,6 33,12,4 90,10,9 100,6,6 100,5,5 100,8,8 91,11,10 100,6,6 100,3,3 100,4,4 100,2,2
83,6,5 100,5,5 100,9,9 100,1,1 100,1,1 100,1,1 100,2,2 0,1,0
83,12,10 71,7,5 100,6,6 100,6,6 67,3,2 100,9,9 100,2,2 100,1,1 100,1,1 100,2,2 0,1,0
100,5,5 100,3,3 88,8,7 100,3,3 100,6,6 100,1,1 100,1,1 100,2,2
100,1,1 100,5,5 100,4,4 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2
79,19,15 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2
100,6,6 90,10,9 100,5,5 100,4,4 100,1,1 100,2,2 100,2,2 100,2,2 100,2,2
100,1,1 100,8,8 100,7,7 100,4,4 100,4,4 100,4,4 100,4,4 100,2,2 100,4,4 80,5,4 100,3,3 100,3,3 100,2,2 100,2,2 100,1,1 100,2,2
100,2,2 100,4,4 100,4,4 100,4,4 86,7,6 83,6,5 88,8,7 100,6,6 100,4,4 100,2,2 100,4,4 100,5,5
90,10,9 100,5,5 100,2,2 100,2,2 100,3,3
100,1,1 100,5,5 100,5,5 100,1,1
100,4,4 100,2,2 100,4,4 100,2,2
100,2,2 100,5,5 100,4,4
50,2,1 100,6,6 100,3,3 100,4,4
100,3,3 100,7,7
100,1,1 100,9,9 78,9,7 100,4,4
100,4,4
100,4,4
100,5,5 100,4,4 100,3,3 100,3,3 100,4,4 100,4,4 100,4,4 100,1,1 100,3,3 100,2,2
100,4,4 100,5,5 100,6,6 100,6,6 100,4,4 100,5,5 100,1,1 100,3,3 100,4,4
100,5,5 100,1,1 100,3,3 100,4,4 100,2,2
100,1,1
100,1,1 100,5,5 100,5,5 100,5,5 100,5,5 100,4,4 100,1,1
100,4,4 100,4,4 100,3,3
75,4,3 100,6,6 100,4,4 100,3,3 100,2,2
100,3,3 100,3,3 100,4,4
100,3,3 100,5,5
100,6,6
100,2,2 100,6,6
100,6,6
100,3,3 100,2,2
100,6,6 100,6,6 100,4,4 100,1,1
82,11,9 100,1,1 100,1,1 100,2,2
100,2,2
88,8,7 100,5,5 100,2,2 100,1,1
100,2,2 100,1,1
100,4,4 100,2,2 100,2,2
100,5,5 100,5,5 100,4,4
100,7,7 100,5,5
100,4,4
100,5,5