latest stable versions: v150102 (changelog)

Changelog

Covers changes for all s2Member® products. s2Member® version numbers indicate each public release date, in this format: YYMMDD.

s2 Guy

v150102 (Jan 2nd, 2015)

  • (s2Member/s2Member Pro) Custom Field Mapping: This release of s2Member adds an internal mapping from s2Member's Custom Field values for each user, to the get_user_option() function in the WordPress core. This makes it possible to retrieve user custom field values like always via get_user_field() or now through the native get_user_option() function also. The benefit of this is that s2Member's custom fields are now more compatible with other themes/plugins for WordPress.
  • (s2Member Pro) [s2Member-List /] Shortcode: It is now possible to search through custom fields created with s2Member using the search_columns="" attribute; e.g. search_columns="user_login,user_email,s2member_custom_field_MYFIELDID"; where MYFIELDID can be replaced with a field ID that you generate with s2Member via Dashboard ⥱ s2Member ⥱ General Options ⥱ Registration/Profile Fields. See also: this KB article for further details. See also: this GitHub issue for details regarding this improvement.
  • (s2Member/s2Member Pro) MailChimp Bug Fix This release fixes a bug first introduced in the previous release, which was causing Interest Groups configured w/ s2Member to not be added properly. Resolved in this release. Props to @ethanpil Thanks!
  • (s2Member Pro) ccBill Buttons This release updates all ccBill button graphics. The MasterCard logo has been removed, and a new set of buttons was created to improve upon the set provided in previous versions of s2Member Pro. See: this GitHub issue if you'd like further details.
  • (s2Member Pro) Authorize.Net The AUD currency code is now supported by Authorize.Net, and thus, s2Member Pro has been updated to support the AUD currency code for Pro Forms integrated with Authorize.Net. See this GitHub issue if you'd like further details.
  • (s2Member Pro) Subscr. CID for Stripe This release corrects a bug which made it impossible to update the Subscr. CID value (for Stripe) using the user edit form in the Dashboard. For further details, please see this GitHub issue.
  • (s2Member/s2Member Pro) Bug fix s2Member's membership access times log was failing to collect all required access times under certain scenarios where multiple CCAPS were being added or removed in succession within the same process, but across multiple function calls. This resulted in unexpected behaviors (in rare cases) when attempting to use the [s2Drip /] shortcode. Fixed in this release. See this GitHub issue for technical details.
  • (s2Member/s2Member Pro) Compatibility This release includes a fix for s2Member's Multisite Network patches applied to the wp-admin/user-new.php file whenever you configure s2Member on a Multisite Network. This change makes s2Member compatible with the coming release of WordPress v4.1 and v4.2-beta as it exists now. See: this GitHub issue if you'd like additional details.
  • (s2Member Pro) Bug Fix: A feature that was previously introduced in v140816, which made it possible for site owners to set a failed payment threshold (in s2Member's Authorize.Net integration), was suffering from an off-by-one issue during total failed payment calculations. Fixed in this release. See also this GitHub issue if you'd like further details.
  • (s2Member Pro) Feature Enhancement: Whenever a failed payment threshold is reached (in s2Member's Authorize.Net integration), not only will s2Member terminate on-site access, but now the underlying ARB (Automated Recurring Profile) is cancelled at the same exact time. This way future billing attempts on the Authorize.Net side will not be possible; i.e. it ensures that a failed payment threshold will always terminate both on-site access and the ARB itself together at the same time, as opposed to allowing the ARB termination to occur automatically via Authorize.Net, whenever. See also this GitHub issue if you'd like further details.
  • (s2Member Pro) ClickBank Disclaimer: This release of s2Member adds a default Auto-Return Header Template (customizable from s2Member ⥱ ClickBank Options in the Dashboard) which includes a disclaimer that ClickBank requires of most merchants before final approval.

    This default template should help to reduce the time it takes new merchants to receive final approval from ClickBank when first starting out in the ClickBank network. See also: this GitHub issue if you'd like further details.

  • (s2Member Pro) Bug Fix: PayPal Pro Forms for Specific Post/Page Access, and configured with accept="paypal" (i.e. to accept PayPal only) were not hiding the entire Billing Method section as intended. Fixed in this release. See also: this GitHub issue if you'd like further details.
  • (s2Member Pro) Bug Fix: PayPal Pro Forms using Express Checkout for Billing Agreements under a non-native currency (i.e. under a different currency than their own PayPal account) were failing under some scenarios (notably with the BRL currency code). Fixed in this release. See also: this GitHub issue if you'd like technical details.
  • (s2Member Pro) Stripe API: s2Member's Stripe integration has been updated to use the new statement_descriptor field in favor of the now deprecated statement_description. See this GitHub issue for technical details.
  • (s2Member Pro) Stripe Bug Fix: In the case of a global tax rate having been applied to the total cost, there were certain scenarios where s2Member Pro would kick back an error message, "Invalid Parameters to Stripe". Fixed in this release. See also: this GitHub issue if you'd like technical details.
  • (s2Member/s2Member Pro) WP Core Compat.: This version of s2Member forces the wptexturize filter off in WordPress, due to a bug that was introduced in recent versions of the WordPress core; which results in broken shortcodes in some scenarios. Until the underlying bug is fixed in the WP core, the wptexturize filter must be disabled to prevent corruption of any WordPress shortcode that may contain < or > symbols.

    See this GitHub issue for further technical details. Also referencing: this WordPress core bug report.

  • (s2Member/s2Member Pro) Alt. Views: This release fixes a bug that caused wp_list_pages() not to be filtered properly under certain scenarios. A symptom of this bug was to apply s2Member's Alt. View protection for "Pages", but for this not work properly in all cases. Fixed in this release. See also: this GitHub issue if you'd like technical details.
  • (s2Member/s2Member Pro) Currency Code/Symbol: All email templates, API Notifications (except cancellation/EOT notifications), and all Custom Return URLs on Success; across all payment gateways; now support two additional Replacement Codes: %%currency%% and %%currency_symbol%%. See also: this GitHub issue if you'd like additional details.
  • (s2Member Pro) Coupon Codes: All transaction-related email templates now support three additional Replacement Codes: %%full_coupon_code%%, %%coupon_code%%, and %%coupon_affiliate_id%%. These have been documented in your Dashboard in places where transaction-related email templates are configured. See also: this GitHub issue if you'd like additional details.
  • (s2Member Pro) Stripe Tax Info: s2Member now attaches metadata to Stripe Charges and to Stripe Subscriptions which includes a JSON-encoded object containing two or more properties when tax applies.

    These metadata properties can be found in your Stripe Dashboard with the metadata key: tax_info; which contains the following JSON-encoded properties: tax (total tax that was or will be charged on the regular amount), tax_per (tax percentage rate that was applied based on your configuration of s2Member Pro); along with trial_tax and trial_tax_per in the case of a Stripe Subscription that includes an initial/trial period that requires payment; i.e. the tax applied (if any) to an initial/trial payment on a Subscription.

    We hope this additional information being recorded by s2Member and stored securely within your Stripe account will make it easier for you to maintain accurate bookkeeping records moving forward. This additional metadata is generated for new customers only. It will not be backfilled for any past transactions.

  • (s2Member Pro) Stripe Tax Info: s2Member now passes the tax location; i.e. address_state, address_zip, and address_country to each Stripe Card object associated with a Stripe Customer.

    We hope this additional information being recorded by s2Member and stored securely within your Stripe account will make it easier for you to maintain accurate bookkeeping records moving forward. This additional cardholder data is collected and stored for new customers only; it will not be backfilled for any past transactions.

  • (s2Member Pro) Stripe IP Address: s2Member now attaches the customer's IP address (as detected via $_SERVER['REMOTE_ADDR'] on your server) into each Stripe Customer object, along with the customer's full name. These metadata properties can be found in your Stripe Dashboard with the metadata keys: name and ip.

  • (s2Member Pro) Stripe Coupon Code: s2Member now attaches metadata w/ a coupon code used by your customer (if applicable) to each Stripe Charge and/or Stripe Subscription object.

    This metadata property can be found in your Stripe Dashboard with the metadata key: coupon; which contains the following JSON-encoded property: code i.e. the full coupon code used by your customer. This additional metadata is generated for new customers only. It will not be backfilled for any past transactions. Filled only for transactions that use a coupon code.

  • (s2Member Pro) Stripe Invoice: This release corrects a bug in s2Member's Stripe integration whereby subscr-signup-as-subscr-payment was not always being forced into the core gateway processor; resulting in a miscalculation of the last_payment_time under certain scenarios. Fixed in this release. See also: this GitHub issue if you'd like additional details.

v141007 (Oct 7th, 2014)

  • (s2Member Pro) ClickBank IPN v6: This release enables a new integration option for site owners integrated with ClickBank. You may now choose to integrate with v6 of ClickBank's IPN service, since all previous versions are slowly being phased out by ClickBank. Please see: Dashboard ⥱ s2Member ⥱ ClickBank Options ⥱ IPN Integration for v6 config. options. See also this GitHub issue if you'd like further details regarding this topic. See also: this article @ ClickBank.
  • (s2Member/s2Member Pro) AWeber API Integration: This release of s2Member adds a new option for site owners using AWeber. It is now possible to integrate with the new s2Member App for AWeber; i.e. via the AWeber API instead of via email-based communication. For further details, please see: Dashboard ⥱ s2Member ⥱ API / List Servers ⥱ AWeber Integration. See also: this GitHub issue if you'd like additional details.
  • (s2Member/s2Member Pro) Bug Fix: The EOT Behavior option for refunds,partial_refunds,reversals was not being accepted by s2Member. Fixed in this release. Please see this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) MailChimp API Wrapper: This release of s2Member comes with an updated API wrapper class for MailChimp integration. No change in functionality, just a smoother, slightly faster, and more bug-free interaction with the MailChimp API. Please see this GitHub issue if you'd like further details regarding this improvement. See also: the official MailChimp API class; i.e. what s2Member has been updated to in this release.
  • (s2Member/s2Member Pro) URI Restrictions caSe-insensitive (Security Fix) This release of s2Member changes the way URI Restrictions work. All URI Restrictions are now caSe-insensitive (i.e. /some-path/ is now the same as /some-Path/), allowing s2Member to automatically pick up different variations used in attempts to exploit the behavior of certain slugs within the WordPress core. You can also change this new default behavior, if you prefer. Please see: Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ URI Restrictions. See also: this GitHub issue for the details about why this was changed in the most recent copy of s2Member.
  • (s2Member/s2Member) AWeber Role-Based Emails: In this release we're adding a note in the s2Member UI regarding role-based email addresses being rejected by AWeber. AWeber does not allow role-based emails like: admin@ or webmaster@ to be subscribed. It is suggested that you enable s2Member's config. option: "Force Personal Emails" if you intend to integrate with AWeber. Please see: Dashboard ⥱ s2Member ⥱ General Options ⥱ Registration/Profile Fields; where you can tell s2Member for force personal email addresses when someone registers on-site. This will prevent a potential subscriber from entering something like admin@example.com as their email address.

v140921 (Sep 21st, 2014)

  • (s2Member/s2Member Pro) WP v4 over SSL Compat. A compatibility issue with the home_url() function in the latest release of WordPress has been resolved with this release. Some site owners reported that their s2Member menu pages were appearing without any CSS/JavaScript being loaded; i.e. the graphical UI was not appearing as one would expect under certain scenarios.
  • (s2Member/s2Member Pro) WP v4 Compat. This release brings s2Member up-to-date with the latest changes to the like_escape() function in WP v4.0. The like_escape() function is now deprecated in favor of wpdb::esc_like(). s2Member has been updated in this release, but also remains compatible with previous versions of WordPress. See this GitHub issue if you'd like further details.
  • (s2Member Pro) [s2MOP /] Shortcode Enhancment The [s2MOP /] shortcode allows for a new required_value="" attribute. Please see this KB article for details about the [s2MOP /] shortcode. See also: this GitHub issue if you'd like further details.

v140909 (Sep 9th, 2014)

  • (s2Member/s2Member Pro) Compatibility: Several instances of site_url() (a WordPress core function) have been converted to home_url() instead. This provides better compatibility with WordPress installations running from a sub-directory. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) Bug Fix: Ampersands; i.e. & symbols in a ClickBank button desc="" attribute are now converted to the word and automatically. The symbol itself causes issues in ClickBank's IPN processing. Fixed in this release. Please see this GitHub issue if you'd like further details.
  • (s2Member) Bug Fix: Improving compatibility with Mozilla/Firefox for the default wp-login.php?action=register handler. This release corrects an issue where <select> fields contained text with too large a font-size for Mozilla browsers to deal with. Please see this GitHub issue if you'd like further details.
  • (s2Member) WP v4.0 / bbPress Compat. A conflict between WordPress v4.0, bbPress v2.5.4 and the previous release of s2Member has been resolved. A symptom of this issue was to see the leading topic post missing from your bbPress forum threads.

    This was a complex issue related to changes in the most recent copy of WordPress where WP_Query::$is_search is flagged as TRUE when the s key isset() instead of !empty(). s2Member has implemented a workaround so that the conflict will no longer cause this problem for site owners running s2Member/bbPress.

    However, please note that some other 3rd-party plugins may still conflict in this way; when running the latest version of bbPress under WordPress v4.0. We are working to notify bbPress and other plugin authors about this issue; just to help others avoid the problem. While unconfirmed, some site owners reported that the Relevanssi search plugin may have some trouble with this also. For further details, please see http://bbpress.org/?p=151839. See also: this GitHub issue if you'd like all of the details regarding this workaround in the s2Member software.

  • (s2Member) WP v4.0 Compat. Updating s2Member's use of the now-deprecated get_all_category_ids(). Using get_terms() instead. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) Stripe Bug Fix: This release corrects an issue with Stripe Pro Forms and a $0 trial period. A symptom of this bug was to find a customer's Stripe token value missing from their Customer object in the Stripe Dashboard. This issue impacted Pro Forms whenever a 100% free trial was offered (i.e. with a $0 sale amount). Resolved by this release. Please see this GitHub issue if you'd like the details.

v140816 (Aug 16th, 2014)

  • (s2Member/s2Member Pro) bbPress Forum Compatibility Woohoo! This release of s2Member improves s2Member's compatibility with bbPress Forums/Topics/Replies. It is now possible to protect a Forum with s2Member, and have all Topics within that Forum protected automatically. No changes necessary to enable this feature. If you protect a bbPress Forum, this is how s2Member will behave automatically. It's a parent/child relationship that s2Member is now compatible with.

    WARNING: If you have been running s2Member together with bbPress in the past, this change may impact you. Any bbPress Forums that are protected by s2Member will now also protect all Topics within that Forum. This improvement also impacts s2Member's Alt. View Restrictions. If you are using s2Member's Alt. View Restrictions, any bbPress Topics that live within a protected Forum will automatically be hidden from Alternative Views configured with s2Member.

    Please see this GitHub issue if you'd like more info.

  • (s2Member Pro) [s2Stream /] Resolutions Awesome! This release introduces a new Shortcode Attribute (player_resolutions=""). See this screenshot of the details and this screenshot of the functionality.

    This is an s2Member Pro feature that allows a site owner to offer multiple resolutions of a video through the [s2Stream /] Shortcode implemented with s2Member's Download Restrictions. Please see this KB article and choose the "Shortcode Attributes (Explained)" tab for all the details, along with an example of player_resolutions="" in the [s2Stream /] Shortcode.

    See also: this GitHub issue if you'd like more info.

  • (s2Member Pro) Authorize.Net This release introduces a new configurable EOT Behavior option for site owners integrated with Authorize.Net. It is now possible to configure a Max Failed Payments threshold; after which s2Member will automatically trigger an EOT (End Of Term). See: Dashboard ⥱ s2Member ⥱ Authorize.Net Options ⥱ EOT Behavior. See also: this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Enhancement A new Replacement Code (%%current_user_nicename%%) has been introduced by s2Member to improve compatibility with plugins like BuddyPress and bbPress. If you are currently using a Special Login Redirection URL as your s2Member Login Welcome Page, and you've used %%current_user_login%% (i.e. the old way), we suggest that you update your Special Redirection URL to use %%current_user_nicename%%. Please see Jason's comments here for further details. See also: Dashboard ⥱ s2Member ⥱ General Options ⥱ Login Welcome Page. It is this area of your Dashboard where a Special Redirection URL can be configured.
  • (s2Member Pro) Pro Login Widget There are some new Replacement Codes available for the "My Account" page URL, and the "My Profile" page URL whenever you configure the s2Member Pro Login Widget in WordPress. s2Member Pro now supports things like %%current_user_nicename%% and %%current_user_level%% in these customizable URLs. See: Dashboard ⥱ Appearance ⥱ Widgets ⥱ s2Member Pro Login Widget for further details. See also: this GitHub issue if you'd like more info.
  • (s2Member Pro) Stripe Bug Fix Wrapping multiple Stripe Pro Form Shortcodes together as "Checkout Options" was not working properly in the previous release. The dropdown for Checkout Options was not maintaining the underlying variable needed to keep a Checkout Option selected. Fixed in this release. If you'd like more info, please see this GitHub issue.
  • (s2Member Pro) Stripe Bug Fix A few site owners reported issues between s2Member's integration with Stripe and other plugins that also depend on the Stripe SDK for PHP. Fixed in this release. If you'd like more info, please see this GitHub issue.
  • (s2Member Pro) Pro Cancellation Forms This release introduces a new Shortcode Attribute that can be used with Pro Cancellation Forms. The new Shortcode Attribute is unsub="". Setting this to a value of unsub="1" will enable an automatic unsubscribe upon cancellation. To clarify, this is related to any List Servers (e.g. MailChimp, AWeber, GetResponse) that you integrate with s2Member. If unsub="1" when a customer cancels future billing they will also be removed from the mailing list they are currently subscribed to, according to your List Server configuration in s2Member. Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Child Theme Compabitility Portions of s2Member (e.g. Return-Page templates, s2Stream templates, Pro Form templates, IP Restriction templates, and more) allow advanced site owners to use custom templates of their own. In the past these templates had to be created inside the parent theme directory or inside of your /wp-content/ directory. Starting with this release, s2Member will also look for custom templates inside of your current Child Theme directory too (i.e. get_stylesheet_dir()). Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) S3/CloudFront Compatibility The latest release of s2Member has been made compatible with the latest changes at Amazon S3/CloudFront regarding IAM users. If you've been running s2Member together with Amazon S3/CloudFront there are no changes necessary in s2Member configuration. If you are just integrating s2Member with Amazon S3/CloudFront you are advised to setup an IAM user instead of using your AWS Root Keys. s2Member will continue to work with either Root Keys or with IAM user keys. Either are fine. If you'd like more info, please see this GitHub issue.
  • (s2Member/s2Member Pro) MySQLi Compatiblity This release brings s2Member into full compatibility with the MySQLi extension. In the previous release it was reported that one specific routine in s2Member that checks the total number of users in your WordPress database was incompatible with MySQLi. Resolved in this release. See this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Amazon CloudFront s2Member now makes a new button [Reset CloudFront Configuration] available inside of your WP Dashboard under: s2Member ⥱ Download Options ⥱ Amazon CloudFront. This button allows a site owner (if necessary) to do a quick reset of s2Member's current integration with Amazon CloudFront Distributions. Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Bug Fix This release corrects a bug in s2Member's log of a user's WordPress Capability access times. This bug had no serious impact on previous releases of s2Member. However, it was a bug that needed fixing nonetheless. Resolved in this release. Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Responsive Compatibility This release of s2Member makes the /wp-login.php file (the WordPress Login/Registration system) Responsive; i.e. more compatible with mobile devices and tablets. This only impacts site owners that use s2Member's Login/Registration Design options to improve and customize the appearance of this core WordPress component. No changes necessary to existing installations for this to kick-in. It's automatic (assuming you are using this s2Member feature). Please see this GitHub issue if you'd like more info.
  • (s2Member Pro) Remote Operations API This release of s2Member makes it possible to change the API Key assigned to your WordPress installation. The Pro Remote Operations API is one way for developers to integrate with some of s2Member's functionality. See: Dashboard ⥱ s2Member ⥱ API / Scripting ⥱ Remote Operations API. This is where it's possible to change your API Key if you'd like to. Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Enhancement s2Member's Auto-Return system (i.e. default Thank-You page handler) which integrates with: PayPal Standard Buttons, ClickBank, and Google Wallet; has been updated in this release. If a customer happens to find their way back to a self-expiring Auto-Return URL (a rare occurrence); instead of an unfriendly error message about duplicate return data, s2Member now provides a more friendly note that asks the customer to check their email for the details needed to access what they paid for. Please see this GitHub issue if you'd like more info.
  • (s2Member/s2Member Pro) Enhancement s2Member's Security Encryption Key configuration panel in the Dashboard was updated to include additional details related to the use of your Security Encryption Key. This additional information explains s2Member's use of this key in greater detail. See: Dashboard ⥱ s2Member ⥱ General Options ⥱ Security Encryption Key. See also: this GitHub issue if you'e like more info.
  • (s2Member Pro) One-Time-Offers Upon Login This release resolves a conflict between s2Member's Pro Login Widget and One-Time-Offers (Upon Login) — a feature that can be configured with s2Member Pro. One-Time-Offers (Upon Login) now take precedence over certain automatic login redirections that can occur through the Pro Login Widget, removing the chance of a conflict. If a visitor logs into their account with a default login redirection URL (i.e. a redirection URL formulated dynamically by the Pro Login Widget that is not related to a visitor's request to access a specific page of the site), and a One-Time-Offer is triggered at the same time, the One-Time-Offer will take precendence. The visitor will see the One-Time-Offer instead of being redirected to the default location specified by the Pro Login Widget. Please see this GitHub issue if you'd like more info.

v140725 (Jul 25th, 2014)

  • (s2Member Pro) NEW: Stripe Pro Forms (Beta) Holy hula hoop! s2Member now has a deep integration with Stripe for on-site credit card processing that uses a Stripe overlay. Stripe is an almost-free service that is super easy to setup and work with. We think you'll find that Stripe is quickly becoming the MOST popular of all payment gateways in the industry. A few bugs have already been zapped prior to this release after some initial beta testing was completed over the last few weeks. Everything is looking great so far, but please do report any new issues via GitHub.

    If you are an s2Member Pro site owner you can upgrade to the latest version of s2Member Pro at anytime you like; then enable Stripe as an additional payment gateway option. See: Dashboard ⥱ s2Member Pro ⥱ Other Gateways.

    Questions About Stripe? Please watch this video by Lead Develoer Jason Caldwell regarding s2Member's new integration with Stripe payment processing. It's never been easier! Jason answers several questions about Stripe in this video also. You might also find it interesting to hear the latest news regarding Stripe and Bitcoin. We look forward to supporting Bitcoin in s2Member (via Stripe) very soon.

  • (s2Member Pro) NEW: Advanced Import/Export Tools Option This release introduces a new "Advanced" set of user import/export tools. We think you'll find this to be an extremely helpful and much more powerful way to deal with user import/export in WordPress. Please see Dashboard ⥱ s2Member ⥱ Import/Export and click the link to enable the new Advanced Import/Export Tools. See also: this KB article which documents the new tools. See also: this GitHub issue if you'd like further details about the development behind this new feature.

  • (s2Member Pro) ClickBank Bug Fix Nillable fields causing some issues (only under one specific scenario) after a recent change in the ClickBank API. Fixed in this release. See this GitHub issue if you would like further detais.
  • (s2Member Pro) Compatibility Resolved a minor single-quote issue in the Visual Editor. Please see this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Bug Fix Non-HTML whitespace being trimmed inside the [s2If /] shortcode. Resolved in this release. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) Pro Forms Bug Fix Related to List Server processing during an upgrade. This bug impacted all payment gateways integrated with s2Member's Pro Forms; including PayPal, Authorize.Net and now Stripe. Resolved in this release. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) Bug Fix An array_intersect() error in the [s2MOP /] shortcode under the right conditions. Fixed in this release. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) Enhancement Free Registration Pro Forms can now be included in a list of nested Checkout Option drop-downs. Please see this GitHub issue if you'd like further details. See also: Dashboard ⥱ s2Member ⥱ [Your Payment Gateway] Pro Forms ⥱ Checkout Options; where there is more information about how to use Checkout Options with s2Member Pro Forms.
  • (s2Member/s2Member Pro) Bug Fix / List Servers This release corrects a bug that may cause members to be unsubscribed from a List Server if they forget to check the box again while editing their profile. In the previous release we introduced a feature that allows the checkbox to be pre-checked if the user already chose to subscribe once before. However, the internal tracking for this was not as reliable as it could be. There is still more work to be done on this front, but the immediate issue has now been resolved. Please see this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) WP_DEBUG Compat. Some older portions of s2Member's codebase were cleaned up and reformatted in this update. This is an ongoing process to bring s2Member into full compatibility with WP_DEBUG mode in WordPress. This is intended to help other developers in the WP community. Much progress has been made on this front now, but still some more work to do. We will continue to update s2Member's codebase little-by-little with each release.
  • (s2Member/s2Member Pro) Uninstall vs. Deactivation s2Member has always made a strong effort to cleanup after itself should you decide (for whatever reason) to uninstall it. However, we are also very concerned with preserving any data associated with such a powerful plugin that comes with so many options. Nobody wants accidental data loss, right!?

    In the past, s2Member came with a feature called "Deactivation Safeguards". These (if disabled) attached themselves to a plugin "deactivation" hook within WordPress and they would uninstall s2Member when you deactivated the plugin. Starting with this release ,s2Member's Deactivation routines have been changed. We now attach them to the WordPress "uninstall" hook — which is triggered only on plugin deletion.

    In this way, deactivating s2Member will never result in a loss of any data. Instead of "Deactivation Safeguards", s2Member now calls this feature "Plugin Deletion Safeguards". In short, to tell s2Member to uninstall itself (including any data/options associated with s2Member), you can simply disable s2Member's Plugin Deletion Safeguards under: s2Member ⥱ General Options, and then deactivate and delete the s2Member plugin entirely. Whenever you delete the plugin this automatically and silently triggers s2Member's uninstaller which cleans up after itself nicely :-)

v140630 (Jun 30th, 2014)

  • (s2Member Pro) Stripe Payment Gateway Hooray! s2Member Pro now integrates with Stripe. s2Member Pro Forms, Coupon Codes, Tax Settings, Checkout Options, and all of the other great features provided by s2Member Pro are now compatible with Stripe. To enable Stripe in your installation of s2Member, please see: Dashboard ⥱ s2Member ⥱ Other Gateways ⥱ Stripe.

    We expect Stripe to become the most popular payment gateway integration for s2Member Pro over the next few months. Stripe is nearly free; it's easier to setup, easier to maintain; and just more flexible overall in our opinion.

    See also: this GitHub issue where efforts to integrate with Stripe took place. A quick tutorial video and KB articles will come soon at s2Member.com; once beta testing is complete.

  • (s2Member Pro) Bug Fix; [s2MOP /] This release corrects a bug in the [s2MOP /] restriction_type attribute. See this GitHub issue if you'd like further details.

v140614 (Jun 14th, 2014)

  • (s2Member/s2Member Pro) Quick Cache Compat. This release makes it possible for Quick Cache to cache content protected by s2Member. If, and only if, you have Quick Cache Pro configured to enable user-specific caching; i.e. to cache when users are logged into the site. See this GitHub issue if you'd like further details.
  • (s2Member Pro) ClickBank API Compat. This release brings s2Member's ClickBank integration into full compatibility with a recent change in the ClickBank API. Under the right conditions, a symptom of this bug was to see an error regarding an unexpected txnType upon returning from checkout via ClickBank. Resolved in this release. See this GitHub issue if you'd like further details.

v140603 (Jun 3rd, 2014)

  • (s2Member/s2Member Pro) Profile Sync to List Servers If you have a supported List Server integrated with s2Member (e.g. MailChimp, GetResponse, AWeber), the opt-in checkbox will now also be displayed in user profile editing panels (i.e. by the [s2Member-Profile /] shortcode, or if you integrate s2Member with BuddyPress profiles).

    If a user updates their profile, their profile on the List Server is updated too (i.e. s2Member updates their first name, last name, along with any merge vars or customs you've integrated through s2Member hooks/filters). If a user changes their email address, they will be subscribed with the new email address. Leaving the box unchecked during a profile update will effectively unsubscribe the user from the lists you have configured at their current Membership Level.

    s2Member's AWeber integration does not yet support profile updates (i.e. changes in first/last name or other details); it only supports the ability to either subscribe or unsubscribe; and/or changes in email address.

    See this GitHub issue if you'd like further details.

  • (s2Member/s2Member Pro) BuddyPress Compatibility This release makes s2Member and s2Member Pro compatible with the latest release of BuddyPress. BuddyPress v2.01 broke some of s2Member's previous integration. Fixed in this release. See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Multisite Lost Password URL In a multisite environment (given the WordPress default behavior), a lost password URL generated by WordPress will force all users to recover their password from the Main Site in the Network; which is usually NOT desirable. This release of s2Member fixes this odd behavior in the WordPress core by allowing users to recover their password in the UI for the current Child Blog they are accessing. See this GitHub issue if you'd like further details and ways to enable/disable; or even customize this further.
  • (s2Member/s2Member Pro) Default EOT Behavior By popular demand, this release changes s2Member's default EOT (End Of Term) Behavior option with respect to refunds/chargebacks. The new default behavior (assuming you have not yet configured s2Member) is to force an EOT on chargebacks only; not on a refund of any kind. A refund is just a refund (in many cases) and an EOT (if one should occur) is something that a site owner generally should decide on their own; i.e. to review refunds manually and if an EOT should occur, the site owner will mostly like prefer to terminate a user's account access on their own; and on a case-by-case basis.

    Further clarification... EOT (End Of Term) is meant to occur when a subscription ends, and since a refund doesn't necessarily end a subscription, it's not the default anymore to trigger an automatic EOT on a refund event. Site owners that want an EOT on refunds still have that option available to them however. See Dashboard ⥱ s2Member ⥱ [Payment Gateway] Options ⥱ Auto EOT Behavior ⥱ Chargebacks/Refunds.

    See also: this GitHub issue if you'd like further details.

  • (s2Member/s2Member Pro) Currency Conversion s2Member's integration with the Google Currency Converter went stale after some changes to the Google API. This release updates s2Member's internal currency conversion routines to correct the issue. See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Bug Fix This release corrects a sortable User column issue in the WordPress Dashboard; with respect to numeric values stored in the WordPress meta table. A symptom of this bug was to see sortable columns for Last Login Time, Total Logins, or EOT Time just a bit out of whack in some scenarios. Fixed in this release. See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Bug Fix Updating the inline documentation for the [s2Drip /] shortcode in the Dashboard to match the most recent improvements to this feature; and to bring it up-to-date with this KB article. See this GitHub issue if you'd like further details.
  • (s2Member Pro) Enhancement This release enhances the UI and error reporting for the [s2Member-List /] shortcode. See this GitHub issue if you'd like further details. See also this KB article.
  • (s2Member Pro) Bug Fix This release corrects an issue with the [s2Member-List /] shortcode when used on a site that does not use fancy permalinks. See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Bug Fix This release adds width/height attributes to the image tags used in the s2Member Security Badges that display on-site (if you enable them); allowing them to pass a W3C validation. See this GitHub issue if you'd like further details.
  • (s2Member Pro) Logging Enhancement This release improves s2Member's log files with respect to Recurring Profiles created through PayPal Pro (Payflow Edition) and/or Authorize.Net. s2Member's automatic polling routines will now log scenarios where a user's account record is missing the original IPN Signup Vars that should be present on a site running s2Member Pro. See this GitHub issue if you'd like further details.

v140520 (May 20th, 2014)

  • (s2Member Pro) [s2Member-List /] Shortcode Amazing new feature! It is now possible to list members using a powerful shortcode, and even make it possible for members to view and search for each other. See this KB article for all the details on this feature. Very cool!
  • (s2Member/s2Member Pro) Server-Side Validation For Registration/Profile Fields that you configure on your own (using the s2Member software), there is now support within all areas of the s2Member codebase for both JavaScript and now server-side validation too. In the past, all validations applied to custom fields was via JavaScript only. With server-side validation too, now it is impossible for required and/or invalid fields that you configure to go missing. This also resolves a few issues related to spam bots attempting to bypass JavaScript validation. See this GitHub issue if you'd like further details.
  • (s2Member Pro) Button Processing Animation. Improving the processing animation used in submit buttons across Pro Forms. Instead of a script-based solution (rather jumpy), we are now taking advantage of CSS3 for a much smoother animation. See this GitHub issue if you'd like further details.
  • (s2Member Pro) [s2Drip /] Shortcode Enhancement This release adds support for a new access="" shortcode attribute that can parse and / or logic. Also, it is now possible for [s2Drip /] to be used with Custom Capabilities too! See this KB article for all the details.
  • (s2Member/s2Member Pro) Bug Fix, Custom Fields UI This release corrects a bug related to the jquery/.htaccess file that ships with s2Member. A symptom was to have issues with the Registration/Profile Fields UI and find a JS error in the browser's developer console. Fixed in this release. See also, this GitHub issue if you'd like further details.
  • (s2Member Pro) Bug Fix, Clickbank HTTPS This release corrects a bug in the default Auto-Return Page for ClickBank, when/if it's served over the https protocol. See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Sortable User Columns This release adds support for sortable user columns in the Dashboard, where possible. Things like EOT Time, Registration Time, Last Login Time, Total Logins, etc. NOTE: it is currently NOT possible to sort by Custom Registration/Profile Fields (yet). See this GitHub issue if you'd like further details.
  • (s2Member/s2Member Pro) Hook Priority for Translations This release corrects a bug related to Gettext translations. There were a couple of areas within s2Member that weren't picking up all of the translation entries; caused by a conflict in hook priority. Fixed in this release. See this GitHub issue if you'd like further details.
  • (s2Member Pro) [s2MOP /] Shortcode Enhancement A new Replacement Code was added: %%REQUIRED_LEVEL_LABEL%%. See this KB article and this GitHub issue if you'd like further details.

v140423 (Apr 23rd, 2014)

  • (s2Member/s2Member Pro) WP v3.9 Compatibility. Resolving an incompatibility between s2Member and WP v3.9 where s2Member was attempting to use the jQuery highlight effect no longer available by default; starting with WP v3.9. A symptom of this bug was to have problems closing the dialog box when creating new Registration/Profile Fields with s2Member in the WP Dashboard. See also this GitHub issue.
  • (s2Member Pro) User Export Limitation. Adding an option to the Import/Export panel used to export Users from your installation of WordPress. This new option makes it possible to specify an exact number of maximum rows to export; instead of the previous behavior which forced to a value of 1000 max. See also this GitHub issue.
  • (s2Member Pro) s2Drip Enhancement. Updating the s2Drip shortcode to allow for a time frame that specifies from_day="1" to_day="1". See also this GitHub issue. For instructions on how to use the [s2Drip] shortcode see this KB article.
  • (s2Member Pro) s2Drip Enhancement. Adding support for nested shortcodes inside the [s2Drip] conditional shortcode tags. See this commit for detailed changes. For instructions on how to use the [s2Drip] shortcode see this KB article.
  • (s2Member Pro). s2MOP Enhancement. Adding an optional %%POST_EXCERPT%% Replacement Code to the [s2MOP] shortcode. For further details see this GitHub issue. For instructions on how to use the [s2MOP] shortcode see this KB article.
  • (s2Member Pro). s2MOP Enhancement. Improving [s2MOP] Replacement Codes overall by converting internal slugs into textual labels for an improved user experience. Also making it possible to filter the default labels. See this GitHub issue. For instructions on how to use the [s2MOP] shortcode see this KB article.
  • (s2Member Pro) s2MOP Enhancement. Adding support for nested shortcodes inside the [s2MOP] shortcode. For instructions on how to use the [s2MOP] shortcode see this KB article.
  • (s2Member/s2Member Pro) Time Tracking. This release begins tracking some additional timestamps to be used by features coming in a future version of s2Member. A new routine was added internally to go ahead and begin tracking some additional timestamps associated with the addition and/or removal of specific Membership Levels and/or Custom Capabilities. A future release of s2Member will take advantage of this data in some of it's shortcodes and API Functions (coming soon). See also this GitHub issue.
  • (s2Member/s2Member Pro) Bug Fix. A bug related to domain validation against some of the latest TLDs like .photography or .solutions has been resolved with this release. See also this GitHub issue.
  • (s2Member) Bug Fix. The declaration function ksort_deep should be public static function ksort_deep. Fixed in this release.
  • (s2Member/s2Member Pro) Bug Fix. s2Member preventing some fields from making it into results provided by WP_User_Query on the front-end of a site utilizing this core class. Fixed in this release. See also this GitHub issue.
  • (s2Member Pro). Authorize.Net Trial Limitation. Updating s2Member Pro to support a 100% free trial period of any length when integrating with Authorize.Net. See also this GitHub issue.
  • (s2Member/s2Member Pro) WP_DEBUG Compatibility. Resolving several E_NOTICE level messages in an ongoing effort to satisfy WP_DEBUG mode. For further details, please see this GitHub issue. See also issue #105. See also issue #91.

v140409 (Apr 9th, 2014)

  • (s2Member Pro) s2MOP Shortcode. A new shortcode is now available for site owners running s2Member Pro: [s2MOP]. For further details, please check your Dashboard under: s2Member ⥱ API / Scripting ⥱ Membership Options Page / Variables. See also: this KB article.
  • (s2Member/s2Member Pro) Compatibility. Reviewed by Lead Developer Jason Caldwell for full compatibility against WordPress v3.9. s2Member also remains backward compatible with WP v3.3 - 3.8.
  • (s2Member/s2Member Pro) Security Review. Reviewed by Lead Developer Jason Caldwell to look closer at any portions of s2Member which might be impacted by the OpenSSL Heartbleed bug. Please note, the Heartbleed bug is NOT an s2Member bug. It is a bug in the OpenSSL library used by many services across the web. Please see this GitHub issue where Jason posted a few tips for site owners running the s2Member software.
  • (s2Member/s2Member Pro) s2 MOP Vars. The format of s2Member's MOP Vars has been updated in this release. Backward compatibility remains for the older formats, so this should not cause any problems for site owners using the older formats provided by previous versions of s2Member. For further details, please check your Dashboard under: s2Member ⥱ API / Scripting ⥱ Membership Options Page / Variables.
  • (s2Member/s2Member Pro) s2 MOP Vars. s2Member MOP Vars are now an optional feature. It is now possible to disable the additional variables that s2Member appends to the end of your Membership Options Page URL when it redirects a visitor without access to something you've restricted. To configure this new option, please check your Dashboard under: s2Member ⥱ General Options ⥱ Membership Options Page.
  • (s2Member/s2Member Pro) Bug Fix. Updating core IPN handler to correct a PHP warning array to string conversion. A symptom was to see warnings in your PHP error log when using a custom Thank-You page. Fixed in this release.
  • (s2Member/s2Member Pro) Bug Fix. Updating the new EOT Time column in the list of WP Users so it displays a human readable date and time; as opposed to a UNIX timestamp. Fixed in this release.

v140328 (Mar 28th, 2014)

  • (s2Member/s2Member Pro) Compatibility. Updated to support WordPress v3.9. Nothing significant, just minor UI tweaks to make s2Member fully compatible with WP v3.9.
  • (s2Member) Compatibility. Updating for backward compatibility with WordPress v3.8 - 3.3 by tweaking calls to get_post(). See this commit for further details.
  • (s2Member/s2Member Pro) Translations. Updating the includes/translations/s2member.pot file to include the entire set of translation strings for both s2Member and s2Member Pro. Some translation entries from JS files were missing in the previous release due to a glitch in our WP i18n processor. Fixed in this release.
  • (s2Member) Server Check Tool. Updating the s2Member Server Scanner to exclude checksum validations against README files. This release includes other scanning improvements also, which allow the tool to do a better job of scanning for compatibility issues.
  • (s2Member Pro) GetResponse Integration. This release adds support for GetResponse™ as an email service provider. s2Member now comes preintegrated with GetResponse™ (requires s2Member Pro), MailChimp® and AWeber™ too.
  • (s2Member) Double Opt-In Article. Updating inline documentation to include further details about Double Opt-Ins via this KB article.
  • (s2Member) Compatibility. Adding support for $_SERVER['WP_DIR'] (to help developers with a particular edge case). For further details please see this GitHub issue.
  • (s2Member) Auto-EOT Time Column. This release adds an Auto-EOT Time column to the list of Users in the WordPress Dashboard. Note: it is possible to show/hide specific columns with the Screen Options tab in WordPress.
  • (s2Member) HTML Trimming. Adding a new utility method to the s2Member codebase. This method helps cleanup HTML-based whitespace (and extra line breaks) that are injected inadvertently by some themes when site owners use the [s2If] shortcode.
  • (s2Member) Bug Fix. Fixing an issue related to Login Redirections over SSL. For further details please see this GitHub issue.
  • (s2Member) All Custom Capabilities. If your site offers many different CCAPS (Custom Capabilities) and you'd like a way to sell someone access to all of them at once (without needing to list each of them one-by-one); this is now possible. This is accomplished by selling a customer the special CCAP all_ccaps. If the current_user_can('access_s2member_ccap_all_ccaps'), they will be granted access to ALL Custom Capabilities that you've implemented on the site (now, and in the future). For instance, if the current_user_can('access_s2member_ccap_all_ccaps') they can also access_s2member_ccap_music even if they don't actually have CCAP music. In short, all_ccaps grants a customer access to all CCAPS automatically.
  • (s2Member) E_NOTICE. Updating several areas of the s2Member codebase in an ongoing effort to make s2Member behave as expected when running in WP_DEBUG mode. Note that WP_DEBUG is NOT recommended for a production site (this mode is reserved for developers only please).
  • (s2Member) Bug Fix. Fixing a bug related to redirections over SSL in an edge case. See this GitHub commit if you'd like further details.
  • (s2Member) Bug Fix. Fixing a bug in the way s2Member handles IP Restrictions in one particular area of the source code. See this GitHub issue if you'd like further details.
  • (s2Member) File Downloads (Content-Encoding). Adding a new configurable option for site owners that use protected File Downloads with s2Member. There is a known issue on some hosting platforms; and this new configurable option provides a workaround that is related to the Content-Encoding header. Please see: Dashboard ⥱ s2Member ⥱ Download Options ⥱ Preventing GZIP Conflicts to configure this new setting. See also this GitHub issue if you'd like further details.
  • (s2Member) Apache Compatibility. Updating s2Member's .htaccess files to provide support for the Require directive supplied by the authz_core_module in the most recent versions of Apache. s2Member also maintains backward compatibility for the allow/deny directives used in previous versions of Apache.
  • (s2Member Pro) Gateway-Specific Variables. Adding gateway-specific variables for use in email templates configured with s2Member. For further details please see this GitHub issue.
  • (s2Member) Cosmetics. Updating s2Member's adminitrative menu pages to enhance their appearance in the most recent versions of WordPress. Nothing significant, just minor tweaks.
  • (s2Member Pro) PayPal IPNs. Adding support for txn_type values: merch_pmt, mp_signup, and mp_cancel to enhance s2Member's support for Billing Agreements when integrated together with a PayPal Pro (Payflow Edition) account that processes Express Checkout transactions. This also resolves a bug related to cancellation IPN processing in a specific scenario. Fixed in this release.
  • (s2Member Pro) [s2If][else]. Requires s2Member Pro. This release adds support for a new [else] condition when using the [s2If] shortcode to protect parts of your content. For examples, please see: Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Simple Shortcode Conditionals. See also: Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals.
  • (s2Member Pro) [s2If php=""]. Requires s2Member Pro. This release adds support for a new php Shortcode Attribute; e.g. [s2If php=""]. This makes it possible to use arbitrary PHP code in your [s2If] shortcodes. For examples, please see: Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Simple Shortcode Conditionals. Note: this feature is disabled by default. You must enable the php attribute for this to work as expected. Please see: Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals (with s2Member Pro installed).
  • (s2Member) Bug Fix. Correcting an issue related to Login Redirections and an E_NOTICE. Please see this GitHub issue if you'd like further details.
  • (s2Member Pro) [s2Drip]. Requires s2Member Pro. This release adds support for a new easy-to-use shortcode that can drip content to paying Members based on their Membership Level. For examples, please see: Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Content Dripping.
  • (s2Member Pro) ClickBank. Adding support for the vtid parameter in ClickBank Button Shortcodes. See this GitHub issue if you'd like further details.
  • (s2Member Pro) PayPal Express Checkout. Updating PayPal Express Checkout cancellation links so they will automatically use the PayPal Merchant ID supplied by a site owner (i.e. PayPal's recommended behavior). If you'd like further details please see this GitHub commit.
  • (s2Member Pro) Pro Forms. Adding a new filter for developers s2member_pro_cancels_old_rp_before_new_rp. This is true by default. If you'd like to prevent s2Member from terminating an existing Recurring Profile (before creating a new one); i.e. during an upgrade... you can set this to a FALSE value. Not recommended, but there are a few edge cases where it could be helpful for developers. See also this GitHub commit.
  • (s2Member Pro) ClickBank Bug Fix. Adding support for alphabetics in ClickBank Item Numbers. This bug impacted the ClickBank Button Generator only, it did not prevent alphabetics from being used in a raw Shortcode. Still, this has been resolved now. See also this GitHub issue.
  • (s2Member Pro) PayPal Mobile Bug Fix. This release corrects a bug related to the MAXAMT PayPal specification that is sent via Express Checkout on a mobile device. A symptom of this bug was to sometimes see PayPal's awkward default amount of $25 when completing checkout on a mobile device. Fixed in this release.
  • (s2Member Pro) PayPal Express Checkout. This release addresses an issue where a customer reaches PayPal.com with an item description that inadequately reads "Future payment" (i.e. missing the description provided by a site owner). PayPal's latest improvements have made it possible for s2Member to get this right. Resolved in this release.
  • (s2Member/s2Member Pro) Partial Refunds. This release adds support for Partial Refunds in the s2Member EOT Behavior Options. See also this GitHub issue.

v140105 (Jan 5th, 2014)

  • (s2Member/s2Member Pro) Compatibility. Updated to support WordPress v3.8. Nothing significant, just minor UI tweaks in the Login/Registration Design for WordPress v3.8; e.g. wp-login.php got some minor improvements in this release of s2Member and s2Member Pro.
  • (s2Member) Compatibility. PayPal's API for Subscription Cancellation Buttons was changed recently. PayPal now requires a Merchant ID instead of the site owner's email address. This issue has been causing an error when a user attempts to cancel a PayPal Subscription through an s2Member-generated PayPal Subscription Cancellation "Button" (i.e. this affects Buttons only, not Pro Forms). Fixed in this release. Site owners using PayPal Buttons should update their PayPal Merchant ID for s2Member. Please see: Dashboard ⥱ s2Member ⥱ PayPal Options ⥱ Account Details.
  • (s2Member/s2Member Pro) Compatibility. Default s2Member option value for CSS/JS Lazy Loading is now off instead of on; e.g. s2Member's CSS/JS JavaScript libraries are now loaded on every page by default. Lazy loading must now be enabled by a site owner as a performance enhancement (optional). For further details, please see: Dashboard ⥱ s2Member ⥱ General Options ⥱ CSS/JS Lazy Loading.
  • (s2Member Pro) Remote Operations API. This release introduces two new API methods; auth_check_user and get_user. These methods (combined with those which already exist in s2Member Pro) now make s2Member Pro's Remote Operations API a pleasure to work with. For further details, please see: Dashboard ⥱ s2Member Pro ⥱ API Scripting ⥱ Pro Remote Operations API. Here you will find the API Key for your installation, along with several code samples.
  • (s2Member/s2Member Pro) Logging. s2Member's core payment gateway processors now log to files gateway-core-ipn.log and gateway-core-rtn.log. These log file names were changed in this release. In previous versions of s2Member these log entries were kept inside paypal-ipn.log and paypal-rtn.log.
  • (s2Member/s2Member Pro) Updates. The XML/RSS feed box for the most recent s2Member Updates (for site owners only; in the Dashboard); has been updated to our newest feed location at: http://feeds.feedburner.com/s2member.
  • (s2Member/s2Member Pro) Bug Fix. s2Member should follow redirects in API calls to Amazon.com. See: https://github.com/WebSharks/s2Member/issues/35 for further details.
  • (s2Member/s2Member Pro) Bug Fix. By default, do not count login IP Restrictions against users who can edit_posts. See: https://github.com/WebSharks/s2Member/issues/32 for further details.
  • (s2Member/s2Member Pro) Bug Fix. Sleep offset to 10 seconds for subscr_eot. See https://github.com/WebSharks/s2Member/issues/34 for further details.
  • (s2Member/s2Member Pro) Enhancement. Updating the "s2" icon in the Dashboard to our most recent version.
  • (s2Member Pro) Bug Fix. s2Member Pro now accepts TOO MANY FAILURES as an EOT response type status under PayPal Pro (Payflow Edition) accounts. This was previously causing a problem against newer PayPal Pro accounts (w/ the Payflow Edition); whereby some customers who were reaching Max Failed Payments were not being demoted properly in all cases. Fixed in this release.
  • (s2Member/s2Member Pro) Compatibility. Adding support for $_SERVER['HTTP_AUTHORIZATION'] when s2Member is used for Remote Auth file hosting. Some servers do not support $_SERVER['PHP_AUTH_USER']. Instead, s2Member can get the username/password by parsing them out of $_SERVER['HTTP_AUTHORIZATION'] when/if necessary. Fixed in this release.
  • (s2Member/s2Member Pro) PHP Debug Notices. Updating s2Member's source code to further prevent PHP debug notices when running in WP_DEBUG mode. This is part of an ongoing effort keep s2Member running smoothly in PHP strict mode; and to maintain conformity with WordPress standards.
  • (s2Member Pro) Bug Fix. Define abbr_bytes() method as static to prevent issues during automatic upgrades of s2Member Pro. Please see https://github.com/WebSharks/s2Member/issues/37 for further details.
  • (s2Member/s2Member Pro) Backward Compatibility. Updating calls to get_post(). We're adding a NULL argument via $null to prevent warnings in older releases of WordPress where an argument was required; e.g. $null = NULL; get_post($null).

For older Changelog entries, please see the changelog.md file.

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