Releases: wpsharks/s2member
v201209-RC
-
(s2Member Framework) Bug Fix: View Password icon WP's login page was not displaying correctly. Kudos to Beee4life for reporting it. See issue #1187
-
(s2Member Framework and Pro) Enhancement: Refactored PHP's deprecated create_function with anonymous functions. Kudos to Berry for reporting it, see post 6069
-
(s2Member Framework) Bug Fix: Added a check for empty return variable before trying to use it in paypal-utilities.inc.php.
-
(s2Member Framework) Bug Fix: Added a check for undefined index before using it to define a couple of s2 constants. Kudos to Berry for reporting it, see post 8181
-
(s2Member Pro) Bug Fix: s2's payment notification when creating a Stripe subscription, was being sent twice. Added a check to ignore the webhook for the subscription's on-session first payment; s2's webhook endpoint is for off-session events.
-
(s2Member Framework) Enhancement: Added a new hook for the payment notification on subscription creation or buy now payments.
-
(s2Member Pro) Bug Fix: Stripe paid trials were accumulating on failed payment attempts, causing a larger charge when it finally succeeded. Kudos to Alan for his help through the many attempts to fix this one, see post 7002
-
(s2Member Pro) Enhancement: Stripe duplicate payments were happening randomly to a few site owners, apparently from bad communication between their server and Stripe's. Added idempotency to prevent duplicates. Kudos to Alan and everyone in the forum that reported and gave details on this behavior, see post 7002
s2Member v200203-RC
- (s2Member Pro) Bug Fix: In some rare cases, another plugin also loaded Stripe's class before s2Member, so when s2 tried loading it there'd be an error. This release fixes the check for the class before trying to load it. See issue #1170
Note: s2Member won't have control over what version of the Stripe SDK was loaded by the other plugin. You'll need to get that other plugin to have an up-to-date version. If you don't have another plugin loading Stripe, this is not relevant to you.
-
(s2Member Pro) Bug Fix: When using a 100% off coupon, requiring no payment, the Stripe pro-form was still loading the card field and requiring it, preventing the free signup. That's fixed in this release. See issue #1171
-
(s2Member Pro) Bug Fix: The Stripe pro-form, when given an invalid card, didn't give a clear error message for it, and instead just "invalid parameter". Now it shows the correct card error, making it possible for the customer to try a different card to complete the payment.
-
(s2Member Pro) Feature Update: The Indian Rupee was added to the list of currency symbols.
-
(s2Member Pro) Feature Enhancement: The s2Member Pro add-on, not being a regular plugin was not uploadable via the WP plugin manager. This made it necessary to FTP, which is complicated for some site owners. In this release I made it possible for the plugin manager to upload or remove the Pro add-on.
Note: It still is not a regular plugin. The activation link or status in the plugins manager is irrelevant, but I couldn't find how to remove it. s2Member Pro activates automatically when its version matches the Framework's, and it'll be mentioned next to the Framework's version in the plugins manager.
s2Member v191018-RC
-
(s2Member Pro) Feature Enhancement: The Stripe pro-forms can now handle 3D Secure 2 for Strong Customer Authentication, as required by the new European regulation that came into effect recently. Props to those in the beta testing group, especially Brice and Felix. See thread 5585.
-
(s2Member Pro) Feature Enhancement: The Stripe pro-form now has the card field inline, instead of opening a modal to enter it. Before it required clicking the link to open the modal, enter the card details, submit that, and then submit the pro-form. Now you enter the card details as part of the pro-form. See issue #588.
-
(s2Member Pro) Stripe Integration Updates: Upgraded the Stripe PHP SDK from v1.18 to v7.4.0, and the API from 2015-07-13 to 2019-10-08. Upgraded the integration from the Charges API to the latest Payment Intents API. Upgraded the card input from the old Stripe Checkout modal, to the new Stripe.js and Elements.
-
(s2Member Pro) Optimization: Stripe's JavaScript now only gets included if the page has a Stripe pro-form.
-
(s2Member Pro) Removed Stripe Bitcoin: Stripe dropped Bitcoin last year, it's not available anymore. This update removes the Bitcoin options and mentions from the s2 admin pages.
-
(s2Member Pro) Bug Fix: Subscriptions without at trial were showing a "trialing" status in Stripe for the first period. This behavior has now been solved. It will only say trialing when you set a trial period (free or paid) in your Stripe pro-form shortcode. See issue #1052.
-
(s2Member Pro) Bug Fix: The Stripe pro-form installments via the
rrt
shortcode attribute were charging an extra payment before ending the subscription. There was an error in the time calculation for this. This is solved in this release. Props to Brice. See thread 5817. -
(s2Member Pro) Bug Fix: Some payments through the Stripe pro-form were creating a new Stripe customer when the user was already a customer. The Stripe customer ID was not being saved correctly in the user's profile. This is solved in this release. Props to demeritcowboy for reporting it.
s2Member v190813-RC
-
(s2Member Framework) PayPal Integration Update: PayPal deprecated the subscription modification button. Using the old possible values for this, now gives an error on PayPal's site. This button has been removed from the PayPal Standard integration in s2Member. Props to Tim for reporting it, see forum thread 5861, and issue #1157.
-
(s2Member Framework) Bug Fix: PayPal would sometimes return the customer without the Custom Value expected by s2Member, incorrectly triggering an error. A small delay has now been added when needed to wait for PayPal to provide the missing value, so that the customer is met with the correct success message on return. Props to Josh Hartman for his help. See forum thread 5250.
-
(s2Member) Bug Fix: Google's URL shortening service has been discontinued. The s2Member integration with it was removed in this release. Props to Felix Hartmann for reporting it.
-
(s2Member) Feature Enhancement: The popular URL shortening services have been abused in spam emails, and this can cause your site's emails with shortened signup URLs to end up in the spam folder. It's now possible to disable URL shortening when trying to avoid this problem. Props to Felix Hartmann for suggesting it. See forum thread 5697.
-
(s2Member Pro) New Feature: It is now possible to use a custom URL shortener other than the defaults in the s2Member Framework. This is particularly useful to use YOURLS for your links, making them unique to your site, looking more professional and avoiding the spam filters issue mentioned above. For more info see this forum post.
s2Member v190608-RC
-
(s2Member Pro) Authorize.Net Hash Upgrade: Authorize.Net announced the end-of-life for their MD5 Hash in favor of their new SHA512 Signature Key. Support for this has been added to s2Member Pro. The MD5 Hash is not provided by Authorize.Net any more, so the field for it in s2Member has been disabled. Props @krumch for his work. For further details see forum thread 5514.
Note: For those that already used the MD5 Hash in their configuration, it is kept there and will keep working while Authorize.Net accepts it, which will not be much longer. It's important to update your integration with the new Signature Key. Once you have your Signature Key in the s2Member configuration, it will be favored over the old MD5 Hash.
-
(s2Member Pro) Bug Fix: The multisite patch for
wp-admin/user_new.php
wasn't finding the code to replace because of changes in the latest releases of the WordPress. It has now been updated, as well as the instructions in the Dashboard for those that prefer to apply it manually. Props @crazycoolcam for reporting it. For further details see Issue #1132.Note: If you already had patched this file in the past, it's recommended that you remove the previous patch restoring it to the original file, and let s2Member Pro patch it again now, otherwise you risk getting it patched over the previous one and ending up with errors. After the new patch, please review that file to verify that it's correct.
-
(s2Member Pro) Bug Fix: The search results for
s2Member-List
were not being ordered as specified in theorderby
attribute when this was a field from theusermeta
table in the database, e.g.first_name
,last_name
. This is now fixed and working correctly. Props to @stevenwolock for reporting it. For further details see Issue #1103. -
(s2Member) WP 5.2 Compat. Enhancement: s2Member has been tested with WP up to 5.2.2-alpha. With
WP_DEBUG
enabled, only one "notice" was found. Inwp-login.php
it said 'login_headertitle is deprecated since version 5.2.0! Use login_headertext instead.' This release now useslogin_headertext
and doesn't get that notice anymore. Props Azunga for reporting it. See forum thread 5962.
s2Member v170722
- (s2Member/s2Member Pro) PayPal IPN Compatibility: This release includes an updated PayPal IPN handler that is capable of reading number-suffixed IPN variables that are now being sent by PayPal's IPN system in some cases, for some customers. We strongly encourage all site owners to upgrade to this release as soon as possible, particularly if you're using PayPal to process transactions. Props @openmtbmap and @patdumond for reporting. See: Issue #1112
s2Member v170524
-
(s2Member/s2Member Pro) PHP v7 Compat. Enhancements: This release adds an integration with the Defuse encryption library for PHP, making it possible for s2Member to move away from the
mcrypt_*()
family of functions in versions of PHP >= 7.0.4, where the mcrypt library has been deprecated —mcrypt_*()
will eventually be removed entirely.Starting with this release of s2Member, if you're running s2Member on PHP v7.0.4+, the Defuse library will be used automatically instead of mcrypt. See Issue #1079.
Note: Backward compatibility with mcrypt functions will remain for now, especially for the decryption of any data that was previously encrypted using RIJNDAEL-256; i.e., data encrypted by a previous release of the s2Member software. s2Member is capable of automatically determining the algorithm originally used to encrypt, which allows it to decrypt data using Defuse, else RIJNDAEL-256, else XOR as a last-ditch fallback.
API Functions:
s2member_encrypt()
&s2member_decrypt()
. These two API Functions provided by s2Member are impacted by this change. Starting with this release, if you're running s2Member on PHP v7.0.4+, the Defuse library is used automatically instead of the older mcrypt extension. Not to worry though; thes2member_decrypt()
function is still capable of decrypting data encrypted by previous versions of the s2Member software. -
(s2Member/s2Member Pro) UI Fix: All menu page notices should be given the
notice
class and the additionalnotice-[type]
class instead of the older genericupdated
anderror
classes. Fixed in this release. Related to Issue #1034 -
(s2Member/s2Member Pro) UI Fix: Plugins displaying Dashboard-wide notices using the older
updated
anderror
classes should be handled better to avoid displaying them below the s2Member header (on s2Member menu pages) and with non-default WordPress styles. See: Issue #1034 -
(s2Member/s2Member Pro) UI Fix: Improving color highlighting in input fields following a media library insertion; e.g., when adding a custom logo to the login/registration page.
-
(s2Member Pro) Bug Fix: Merchants using PayPal Pro (Payflow Edition) to charge a fixed non-recurring fee following an initial 100% free trial period, were seeing their member accounts EOTd after the trial ended, instead of the EOT Time being set to the end of the fixed term period. Props @patdumond, James Hall, and many others for reporting this in the forums and at GitHub. See Issue #1077.
-
(s2Member Pro) Bug Fix: Updating PHP syntax in Simple Export tool, for compatibility w/ modern versions of PHP. Props @patdumond for reporting and helping us locate the underlying cause of this problem. See Issue #1055.
-
(s2Member Pro) Stripe Bug Fix: This releases corrects a seemingly rare conflict between s2Member and Stripe on certain mobile devices and in certain scenarios. In a case we examined, there was a problematic CSS
z-index
setting in the s2Member source code that was, at times, causing problems in the stacking order, which resulted in a user's inability to enter details into the Stripe popup form. In this release, s2Member's customization of thez-index
stacking order has been removed entirely, as it is no longer necessary in the latest revision of the Stripe popup, which already handlesz-index
adequately. Props @jaspuduf for reporting and for helping us diagnose the problem. See Issue #1057. -
(s2Member/s2Member Pro) Security Enhancement: This release removes the
%%user_pass%%
Replacement Code from the API Registration Notification email that is sent to a site owner; i.e., when/if it is configured by a site owner. Props @patdumond see Issue #954. This Replacement Code was removed as a security precaution. -
(s2Member/s2Member Pro) Bug Fix: Resolving internal warning: 'PHP Warning: Parameter 2 to c_ws_plugin__s2member_querys::_query_level_access_coms() expected to be a reference, value given'. This was resolved by removing the strict 'by reference' requirement from the list of parameters requested by s2Member.
-
(s2Member/s2Member Pro) Bug Fix: Resolving internal warning: 'PHP Warning: Illegal string offset 'user_id' in s2member/src/includes/classes/sc-eots-in.inc.php'. This was resolved by typecasting
$attr
to an array in cases where WordPress core passes this as a string; e.g., when there are no attributes. -
(s2Member Pro) Bug Fix: Incorrect default option value for
reject_prepaid=""
attribute in Stripe Pro-Forms. See: Issue #1089
s2Member v170425-RC
-
(s2Member/s2Member Pro) PHP v7 Compat. Enhancements: This release adds an integration with the Defuse encryption library for PHP, making it possible for s2Member to move away from the
mcrypt_*()
family of functions in versions of PHP >= 7.0.4, where the mcrypt library has been deprecated —mcrypt_*()
will eventually be removed entirely.Starting with this release of s2Member, if you're running s2Member on PHP v7.0.4+, the Defuse library will be used automatically instead of mcrypt. See Issue #1079.
Note: Backward compatibility with mcrypt functions will remain for now, especially for the decryption of any data that was previously encrypted using RIJNDAEL-256; i.e., data encrypted by a previous release of the s2Member software. s2Member is capable of automatically determining the algorithm originally used to encrypt, which allows it to decrypt data using Defuse, else RIJNDAEL-256, else XOR as a last-ditch fallback.
API Functions:
s2member_encrypt()
&s2member_decrypt()
. These two API Functions provided by s2Member are impacted by this change. Starting with this release, if you're running s2Member on PHP v7.0.4+, the Defuse library is used automatically instead of the older mcrypt extension. Not to worry though; thes2member_decrypt()
function is still capable of decrypting data encrypted by previous versions of the s2Member software. -
(s2Member/s2Member Pro) UI Fix: All menu page notices should be given the
notice
class and the additionalnotice-[type]
class instead of the older genericupdated
anderror
classes. Fixed in this release. Related to Issue #1034 -
(s2Member/s2Member Pro) UI Fix: Plugins displaying Dashboard-wide notices using the older
updated
anderror
classes should be handled better to avoid displaying them below the s2Member header (on s2Member menu pages) and with non-default WordPress styles. See: Issue #1034 -
(s2Member/s2Member Pro) UI Fix: Improving color highlighting in input fields following a media library insertion; e.g., when adding a custom logo to the login/registration page.
-
(s2Member Pro) Bug Fix: Merchants using PayPal Pro (Payflow Edition) to charge a fixed non-recurring fee following an initial 100% free trial period, were seeing their member accounts EOTd after the trial ended, instead of the EOT Time being set to the end of the fixed term period. Props @patdumond, James Hall, and many others for reporting this in the forums and at GitHub. See Issue #1077.
-
(s2Member Pro) Bug Fix: Updating PHP syntax in Simple Export tool, for compatibility w/ modern versions of PHP. Props @patdumond for reporting and helping us locate the underlying cause of this problem. See Issue #1005.
-
(s2Member Pro) Stripe Bug Fix: This releases corrects a seemingly rare conflict between s2Member and Stripe on certain mobile devices and in certain scenarios. In a case we examined, there was a problematic CSS
z-index
setting in the s2Member source code that was, at times, causing problems in the stacking order, which resulted in a user's inability to enter details into the Stripe popup form. In this release, s2Member's customization of thez-index
stacking order has been removed entirely, as it is no longer necessary in the latest revision of the Stripe popup, which already handlesz-index
adequately. Props @jaspuduf for reporting and for helping us diagnose the problem. See Issue #1057. -
(s2Member/s2Member Pro) Security Enhancement: This release removes the
%%user_pass%%
Replacement Code from the API Registration Notification email that is sent to a site owner; i.e., when/if it is configured by a site owner. Props @patdumond see Issue #954. This Replacement Code was removed as a security precaution. -
(s2Member/s2Member Pro) Bug Fix: Resolving internal warning: 'PHP Warning: Parameter 2 to c_ws_plugin__s2member_querys::_query_level_access_coms() expected to be a reference, value given'. This was resolved by removing the strict 'by reference' requirement from the list of parameters requested by s2Member.
-
(s2Member/s2Member Pro) Bug Fix: Resolving internal warning: 'PHP Warning: Illegal string offset 'user_id' in s2member/src/includes/classes/sc-eots-in.inc.php'. This was resolved by typecasting
$attr
to an array in cases where WordPress core passes this as a string; e.g., when there are no attributes.
s2Member v170221
- (s2Member/s2Member Pro) JW Player v7: This release adds support for JW Player v7 in the
[s2Stream /]
shortcode. See Issue #774. - (s2Member Pro) Bug Fix: Allow Pro-Forms to use
success="%%sp_access_url%%"
without issue. See Issue #1024. - (s2Member/s2Member Pro) AWS Region: Adding AWS region
ap-northeast-2
. See Issue #1033. - (s2Member/s2Member Pro) AWS Region: Adding AWS region
eu-west-2
. See Issue #1033. - (s2Member) Bug Fix: This release corrects a minor server-side validation bug that was related to the use of non-personal email address. See Thread #1195 and Issue #1054.
- (s2Member) Bug Fix: Updated several outdated links within the software; e.g., removing older
www.
references, correcting forum links, and more. Also corrected missing changelog. See Issue #1027. - (s2Member Pro) Pro Upgrader: The pro upgrader has been refactored and now asks for your s2Member Pro License Key instead of your s2Member.com password. The next time you upgrade to the most recent version of s2Member Pro, you will be asked for your License Key. You can obtain your License Key by logging into your account at s2Member.com. Once logged in, visit your 'My Account' page, where you will find your License Key right at the top. See Issue #668.
- (s2Member/s2Member Pro) CloudFlare Compat.: Enhancing compatibility with Rocket Loader via
data-cfasync="false"
on dynamic s2Member scripts. See: Issue #1038.
s2Member v170126-RC
- (s2Member/s2Member Pro) JW Player v7: This release adds support for JW Player v7 in the
[s2Stream /]
shortcode. See Issue #774. - (s2Member Pro) Bug Fix: Allow Pro-Forms to use
success="%%sp_access_url%%"
without issue. See Issue #1024. - (s2Member) Bug Fix: This release corrects a minor server-side validation bug that was related to the use of non-personal email address. See Thread #1195.
- (s2Member) Bug Fix: Updated several outdated links within the software; e.g., removing older
www.
references, correcting forum links, and more. Also corrected missing changelog. See Issue #1027. - (s2Member/s2Member Pro) AWS Region: Adding AWS region
ap-northeast-2
. See Issue #1033. - (s2Member Pro) Pro Upgrader: The pro upgrader has been refactored and now asks for your s2Member Pro License Key instead of your s2Member.com password. The next time you upgrade to the most recent version of s2Member Pro, you will be asked for your License Key. You can obtain your License Key by logging into your account at s2Member.com. Once logged in, visit your 'My Account' page, where you will find your License Key right at the top. See Issue #668.
- (s2Member/s2Member Pro) CloudFlare Compat.: Enhancing compatibility with Rocket Loader via
data-cfasync="false"
on dynamic s2Member scripts. See: Issue #1038.