From 6891a2a4596aca0694cc87ba2c5bda8a9feffdff Mon Sep 17 00:00:00 2001 From: JasWSInc Date: Thu, 1 Jan 2015 22:27:48 -0900 Subject: [PATCH] Preparing release of v150102. --- s2member/checksum.txt | 2 +- s2member/includes/translations/s2member.pot | 263 ++++++++-------- s2member/readme.txt | 325 +++----------------- s2member/s2member.php | 8 +- 4 files changed, 185 insertions(+), 413 deletions(-) diff --git a/s2member/checksum.txt b/s2member/checksum.txt index 62439ad3..f783feb4 100644 --- a/s2member/checksum.txt +++ b/s2member/checksum.txt @@ -1 +1 @@ -880cf4b36bfab2c644bde04a14c3be1d \ No newline at end of file +a1daeda86ea085763a0951505fad6b5f \ No newline at end of file diff --git a/s2member/includes/translations/s2member.pot b/s2member/includes/translations/s2member.pot index 45175161..671ecf08 100644 --- a/s2member/includes/translations/s2member.pot +++ b/s2member/includes/translations/s2member.pot @@ -1,14 +1,14 @@ -# Copyright (C) 2014 +# Copyright (C) 2015 # This file is distributed under the same license as the package. msgid "" msgstr "" -"Project-Id-Version: 141007\n" +"Project-Id-Version: 150102\n" "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n" -"POT-Creation-Date: 2014-10-08 05:49:57+00:00\n" +"POT-Creation-Date: 2015-01-02 07:19:03+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -716,14 +716,14 @@ msgstr "" #: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:67 #: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:65 -#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:201 -#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:212 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:256 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:267 -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:157 -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:168 -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:179 -#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:120 +#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:207 +#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:218 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:261 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:272 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:163 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:174 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:185 +#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:126 #: s2member/includes/classes/paypal-return-in.inc.php:95 #: s2member/includes/classes/paypal-return-in.inc.php:111 #: s2member/includes/classes/paypal-return-in.inc.php:137 @@ -737,90 +737,90 @@ msgid "Thank you! (this is a preview, no action necessary).
ERROR: Unable to modify Subscription.
Please contact Support for assistance.

The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing." msgstr "" -#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:211 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:266 +#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:217 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:271 msgctxt "s2member-front" msgid "ERROR: Unable to modify Subscription.
Please contact Support for assistance.

Could not get the existing User ID from the DB." msgstr "" -#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:222 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:377 -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:189 -#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:130 +#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:228 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:383 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:195 +#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:136 msgctxt "s2member-front" msgid "Thank you! Please check your email for further details regarding your purchase." msgstr "" -#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:223 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:378 -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:190 -#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:131 +#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:229 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:384 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:196 +#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:137 msgctxt "s2member-front" msgid "Return to Home Page" msgstr "" -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:338 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:361 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:344 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:367 msgctxt "s2member-front" msgid "Thank you! Your account has been approved.
The next step is to Register a Username for immediate access.
" msgstr "" -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:339 -#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:362 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:345 +#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:368 msgctxt "s2member-front" msgid "Please Register Now (Click Here)" msgstr "" -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:145 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:151 msgctxt "s2member-front" msgid "Thank you! You now have access to:" msgstr "" -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:156 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:162 msgctxt "s2member-front" msgid "ERROR: Unable to add new Capabilities.
Please contact Support for assistance.

The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing." msgstr "" -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:167 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:173 msgctxt "s2member-front" msgid "ERROR: Unable to add new Capabilities.
Please contact Support for assistance.

Could not get the existing User ID from the DB." msgstr "" -#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:178 +#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:184 msgctxt "s2member-front" msgid "ERROR: Unable to add new Capabilities.
Please contact Support for assistance.

Missing User/Member details." msgstr "" -#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:108 +#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:114 msgctxt "s2member-front" msgid "Thank You! Your transaction has been approved." msgstr "" -#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:119 +#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:125 msgctxt "s2member-front" msgid "ERROR: Unable to generate Access Link.
Please contact Support for assistance." msgstr "" @@ -1006,7 +1006,7 @@ msgstr "" #: s2member/includes/templates/buttons/paypal-sp-checkout-button.php:34 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:293 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:585 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:593 msgctxt "s2member-front paypal-button-lang-code" msgid "en_US" msgstr "" @@ -1401,12 +1401,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:262 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:269 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:276 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:560 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:567 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:880 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:887 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:894 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:901 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:568 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:575 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:888 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:895 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:902 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:909 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:101 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:106 @@ -1431,7 +1431,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:799 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:262 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:887 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:895 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:192 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:600 @@ -1446,7 +1446,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:806 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:269 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:894 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:902 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:197 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:605 @@ -2667,24 +2667,24 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:290 #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:630 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:341 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:666 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:343 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:668 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:411 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:751 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:476 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:915 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:478 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:917 msgctxt "s2member-front" msgid "Thank you. Your account has been updated.
— Please log back in now." msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:494 #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:747 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:501 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:819 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:503 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:821 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:588 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:903 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:744 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1069 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:746 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1071 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:407 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:602 msgctxt "s2member-front" @@ -2697,18 +2697,18 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:777 #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:124 #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:141 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:510 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:531 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:828 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:849 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:512 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:533 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:830 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:851 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:597 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:618 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:912 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:933 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:753 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:774 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1078 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1099 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:755 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:776 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1080 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1101 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:124 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:141 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:419 @@ -2720,12 +2720,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:518 #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:768 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:522 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:840 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:524 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:842 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:609 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:924 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:765 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1090 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:767 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1092 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:408 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:603 msgctxt "s2member-front" @@ -2733,9 +2733,9 @@ msgid "Thank you. Your account has been approved.
— msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:788 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:860 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:862 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:944 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1110 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1112 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:136 #: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-checkout-in.inc.php:618 msgctxt "s2member-front" @@ -3823,15 +3823,15 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:806 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:311 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:467 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:685 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:839 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:857 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1011 msgctxt "s2member-front percentage-symbol" msgid "%" msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:805 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:466 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:838 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1010 msgctxt "s2member-front" msgid " + tax" msgstr "" @@ -3848,12 +3848,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:597 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:672 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:884 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:936 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:949 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:969 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1029 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1044 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1056 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1108 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1121 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1141 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1201 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1216 msgctxt "s2member-front" msgid "COUPON %s off. (Now: %s)" msgstr "" @@ -3870,12 +3870,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:598 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:658 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:673 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:885 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:937 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:950 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:970 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1030 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1045 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1057 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1109 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1122 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1142 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1202 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1217 msgctxt "s2member-front" msgid "
Coupon: %s off. (Now: %s)
" msgstr "" @@ -3892,12 +3892,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:612 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:627 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:642 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:897 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:910 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:923 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:984 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:999 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1014 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1069 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1082 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1095 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1156 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1171 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1186 msgctxt "s2member-front" msgid "COUPON %s off. (Now: %s, then %s)" msgstr "" @@ -3914,12 +3914,12 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:613 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:628 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:643 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:898 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:911 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:924 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:985 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1000 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1015 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1070 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1083 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1096 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1157 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1172 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1187 msgctxt "s2member-front" msgid "
Coupon: %s off. (Now: %s, then %s)
" msgstr "" @@ -3928,29 +3928,29 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1017 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:581 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:676 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:953 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1048 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1125 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1220 msgctxt "s2member-front" msgid "
Sorry, your Coupon is not applicable.
" msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1021 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:679 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1052 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1224 msgctxt "s2member-front" msgid "
Coupon: %s0.00 off.
" msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1025 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:682 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1056 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1228 msgctxt "s2member-front" msgid "
Sorry, your Coupon cannot be applied to this particular purchase.
" msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1029 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:685 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1060 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1232 msgctxt "s2member-front" msgid "
Sorry, your Coupon expired: %s.
" msgstr "" @@ -3967,8 +3967,8 @@ msgstr "" #: s2member-pro/s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1067 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:719 #: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:722 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1094 -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1097 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1266 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1269 msgctxt "s2member-front" msgid "
Sorry, your Coupon is N/A, invalid or expired.
" msgstr "" @@ -4002,10 +4002,10 @@ msgctxt "s2member-front" msgid "Please log in at PayPal to cancel your Subscription." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:353 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:678 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:493 -#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:927 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:355 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:680 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:495 +#: s2member-pro/s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:929 msgctxt "s2member-front" msgid "Sorry. Your account is pending other changes. Please try again in 15 minutes." msgstr "" @@ -4211,39 +4211,39 @@ msgctxt "s2member-front" msgid "Oops. No Customer|Subscr. ID. Please contact Support for assistance." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:458 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:630 msgctxt "s2member-front" msgid "Error code: %1$s. %2$s." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:462 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:634 msgctxt "s2member-front" msgid "Invalid parameters to Stripe; please contact the site owner." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:465 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:637 msgctxt "s2member-front" msgid "Invalid Stripe API keys; please contact the site owner." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:468 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:640 msgctxt "s2member-front" msgid "Network communication failure with Stripe; please try again." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:471 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:643 msgctxt "s2member-front" msgid "Stripe API error; please try again." msgstr "" -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:473 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:645 msgctxt "s2member-front" msgid "Stripe error; please try again." msgstr "" #. translators: `%1$s` is new price/description, after coupon applied. `%2$s` #. is original description. -#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1065 +#: s2member-pro/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php:1237 msgctxt "s2member-front" msgid "%1$s %2$s ~ ORIGINALLY: %3$s" msgstr "" @@ -4318,8 +4318,8 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:73 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:167 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:276 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:567 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:901 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:575 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:909 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:106 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:202 @@ -4344,7 +4344,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:598 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:350 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:642 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:650 msgctxt "s2member-front" msgid "Calculating Sales Tax..." msgstr "" @@ -4354,7 +4354,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:598 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:350 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:642 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:650 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:466 msgctxt "s2member-front" @@ -4366,7 +4366,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:609 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:361 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:653 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:661 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:483 msgctxt "s2member-front" @@ -4378,7 +4378,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:609 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:361 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:653 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:661 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:483 msgctxt "s2member-front" @@ -4388,7 +4388,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:671 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:715 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:723 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:411 #: s2member-pro/s2member-pro/includes/templates/forms/authnet-checkout-form.php:62 @@ -4404,7 +4404,7 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/authnet/authnet.js:672 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:716 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:724 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/stripe/stripe.js:412 msgctxt "s2member-front" @@ -4420,8 +4420,8 @@ msgstr "" #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:292 #: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:293 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:584 -#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:585 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:592 +#: s2member-pro/s2member-pro/includes/separates/gateways/paypal/paypal.js:593 #: s2member-pro/s2member-pro/includes/templates/forms/authnet-cancellation-form.php:36 #: s2member-pro/s2member-pro/includes/templates/forms/authnet-checkout-form.php:199 #: s2member-pro/s2member-pro/includes/templates/forms/authnet-registration-form.php:94 @@ -4463,8 +4463,8 @@ msgid "" "%%%%item_name%%%%\n" "\n" "Subscr. ID: %%%%subscr_id%%%%\n" -"Charges today: $%%%%initial%%%%\n" -"Recurring charges: $%%%%recurring/regular_cycle%%%%\n" +"Charges today: %%%%currency_symbol%%%%%%%%initial%%%%\n" +"Recurring charges: %%%%currency_symbol%%%%%%%%recurring/regular_cycle%%%%\n" "\n" "Your Username/Password will arrive shortly, in a separate email. If you have any trouble, please feel free to contact us.\n" "\n" @@ -4480,7 +4480,7 @@ msgid "" "%%%%item_name%%%%\n" "\n" "Transaction ID: %%%%txn_id%%%%\n" -"Charges today: $%%%%amount%%%%\n" +"Charges today: %%%%currency_symbol%%%%%%%%amount%%%%\n" "\n" "Your order can be retrieved here:\n" "%%%%sp_access_url%%%%\n" @@ -4492,6 +4492,11 @@ msgid "" "%s" msgstr "" +#: s2member-pro/s2member-pro/includes/syscon.inc.php:122 +msgctxt "s2member-front" +msgid "
ClickBank is the retailer of products on this site. CLICKBANK® is a registered trademark of Click Sales, Inc., a Delaware corporation located at 917 S. Lusk Street, Suite 200, Boise Idaho, 83706, USA and used by permission. ClickBank's role as retailer does not constitute an endorsement, approval or review of these products or any claim, statement or opinion used in promotion of these products.

%1$s says…

" +msgstr "" + #: s2member-pro/s2member-pro/includes/templates/forms/authnet-cancellation-form.php:32 #: s2member-pro/s2member-pro/includes/templates/forms/paypal-cancellation-form.php:32 #: s2member-pro/s2member-pro/includes/templates/forms/stripe-cancellation-form.php:32 diff --git a/s2member/readme.txt b/s2member/readme.txt index 16d09820..eba633c3 100644 --- a/s2member/readme.txt +++ b/s2member/readme.txt @@ -1,7 +1,7 @@ === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) === -Version: 141007 -Stable tag: 141007 +Version: 150102 +Stable tag: 150102 SSL Compatible: yes bbPress® Compatible: yes @@ -174,12 +174,54 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/ == Upgrade Notice == -= v141007 = += v150102 = (Maintenance Release) Upgrade immediately. == Changelog == += v150102 = + +- (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](http://www.s2member.com/kb/s2member-list-shortcode/) for further details. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/155) 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](https://github.com/websharks/s2member/issues/392) 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](https://github.com/websharks/s2member/issues/383) 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](https://github.com/websharks/s2member/issues/380). +- (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](https://github.com/websharks/s2member/issues/406) 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](https://github.com/websharks/s2member/issues/410) 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](https://github.com/websharks/s2member/issues/416) 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](https://github.com/websharks/s2member/issues/416) 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](https://github.com/websharks/s2member/issues/412) 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](https://github.com/websharks/s2member/issues/399) 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](https://github.com/websharks/s2member/issues/414) 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](https://github.com/websharks/s2member/issues/422) 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](https://github.com/websharks/s2member/issues/425) 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](https://github.com/websharks/s2member/issues/349) for further technical details. Also referencing: [this WordPress core bug report](https://core.trac.wordpress.org/ticket/29608). +- (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](https://github.com/websharks/s2member/issues/372) 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](https://github.com/websharks/s2member/issues/314) 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](https://github.com/websharks/s2member/issues/384) 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](https://github.com/websharks/s2member/issues/396) if you'd like additional details. + = v141007 = - (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](https://github.com/websharks/s2member/issues/256) if you'd like further details regarding this topic. See also: [this article @ ClickBank](https://support.clickbank.com/entries/22803622-instant-notification-service). @@ -389,279 +431,4 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/ * (s2Member Pro) **Bug Fix**. Define `abbr_bytes()` method as static to prevent issues during automatic upgrades of s2Member Pro. Please see 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)`. -= v131126 = - -* (s2Member Pro) **Google Wallet.** s2Member Pro now supports [Google Wallet for Digital Goods](https://developers.google.com/commerce/wallet/digital/). - - In the past we offered support for Google "Checkout" (Google "Checkout" is no longer available as of November 2013). s2Member's previous integration with Google Checkout has now been fully updated to support Google "Wallet" for Digital Goods. To enable Google Wallet in your installation of s2Member Pro, please see: `Dashboard -› s2Member Pro -› Other Gateways -› Google Wallet`. For setup instructions, please see: `Dashboard -› s2Member Pro -› Google Options`. - - At the time of this writing, there are no KB articles related to Google Wallet at s2Member.com (yet); these will come soon. Until then, you might find it helpful to review dev notes by Jason Caldwell (Lead Developer). Please see: . - - We also suggest that you review the documentation in your Dashboard under: `s2Member Pro -› Google Options` and `s2Member Pro -› Google Buttons`. If you were previously using Google "Checkout", please review [this notice posted by Google](https://support.google.com/checkout/sell/answer/3080449?hl=en). -* (s2Member/s2Member Pro) **Bootstrap Compatibility.** s2Member has been updated throughout to support the [Twitter Bootstrap](http://getbootstrap.com/) CSS framework when running on a WordPress theme that's been built on Bootstrap. For instance; profile editing forms, custom registration/profile fields, s2Member Pro Forms for checkout/registration; these will now look good on sites powered by Bootstrap. This change has no impact on functionality, only on appearance; and only IF your site is powered by Bootstrap. Throughout s2Member's HTML code we've added CSS class names that follow a Bootstrap standard. These Bootstrap classes are blended together with default structural styles that makes s2Member compatible with all WordPress themes. This way s2Member (and s2Member Pro) can produce a clean/professional appearance on just about any WordPress theme; and now Bootstrap is supported too! -* (s2Member Pro) **Configurable Emails.** We've added new configuration panels into the s2Member UI for a Modification Confirmation Email and also for the Custom Capability Confirmation Email. These are now configurable for all payment gateways integrated with s2Member Pro; e.g. AliPay, ccBill, ClickBank, Google Wallet, Authorize.Net, PayPal Standard, and PayPal Pro. These emails have always existed, but up until now customization required a WordPress filter. Now it's easier, you can customize these from the Dashboard! Please note: this feature comes only with s2Member Pro. As one example, please check your Dashboard under: `s2Member Pro -› PayPal Options -› Modification Confirmation Email`. -* (s2Member/s2Member Pro) **Snippets/Redirects.** Snippets and Redirects no longer carry the s2Member Restriction Options meta box in the Post/Page editing station; there's no need for Restrictions against these two special Post Types. This change, together with the latest improvements in these two plugins: [WP Snippets](http://wordpress.org/plugins/wp-snippets/) and [WP Redirects](http://wordpress.org/plugins/wp-redirects/) (also produced by our team) offer a more powerful solution now that all of these plugins are more compatible with each other. -* (s2Member/s2Member Pro) **Backward Compatibility.** Updating calls to `get_post()`. We're adding a `NULL` argument to prevent warnings in older releases of WordPress where an argument was required; e.g. `get_post(NULL)`. -* (s2Member/s2Member Pro) **Forward Compatibility.** Adding support for the `relative` scheme in SSL filters that deal with `set_url_scheme()` in the latest versions of WordPress. This improves s2Member's "force SSL mode" where a site owner sets the Custom Field for a Post/Page; e.g. `s2member_force_ssl` is set to `yes`. This change will better support themes/plugins that use absolute relative paths together with WordPress core functions like `site_url()` and `home_url()`. -* (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) **Unlimited Membership Levels.** Updating the built-in software documentation for s2Member Pro to cover an edge case where a site owner many choose to exceed the recommended maximum for Membership Levels when running s2Member Pro. If you intend to use more than `100` Membership Levels (this is not recommended); but if you do, please see: `Dashboard -› s2Member Pro -› General Options -› Membership Levels/Labels` for the latest details on this. -* (s2Member/s2Member Pro) **Dropping IE8 Support.** s2Member and s2Member Pro will no longer support IE8 in any official capacity. s2Member's HTML output and CSS files have been cleaned up; and all hacks related to IE8 have been removed. Out with the old, in with the new! We need to keep s2Member up-to-date with the latest improvements offered by IE9 and other modern browsers. While s2Member may continue to function relatively well in IE8, hacks used in the past to accomodate edge cases in this buggy browser have been removed in favor of standards compliance. -* (s2Member/s2Member Pro) **Lazy Loading CSS/JS.** s2Member now offers site owners the option to enable/disable lazy loading of CSS/JS libraries provided by the s2Member software. For further details, please see: `Dashboard -› s2Member -› General Options -› CSS/JS Lazy Loading`. -* (s2Member/s2Member Pro) **Bug Fix.** s2Member and s2Member Pro have both been updated to prevent spaces in a comma-delimited list of Custom Capabilities; e.g. `ccaps="music, videos"` should be `ccaps="music,videos"` please. Spaces in this list have never been allowed, but now there is better server-side validation to prevent this from happening; reducing the chance of error when a site owner configures a Button or Pro Form shortcode with s2Member. -* (s2Member/s2Member Pro) **Other Minor Bug Fixes.** Please see: - -= v131109 = - -* (s2Member/s2Member Pro) **UI Makeover** This release of s2Member upgrades all administrative UI panels. -* (s2Member/s2Member Pro) **Compatibility** Updating s2Member for compatibility with the coming release of both Quick Cache LITE and Quick Cache Pro for WordPress. These are not available publicly yet, but they are expected for release very soon. This release of s2Member is compatible with both the current and future releases of Quick Cache for WordPress. -* (s2Member/s2Member Pro) **Improvement (Speed)** Lazy load s2Member's JS file at all times. Done, this release will speed your site up for first-time visitors. -* (s2Member/s2Member Pro) **Improvement (Speed)** Lazy load s2Member's CSS file at all times. Done, this release will speed your site up for first-time visitors. -* (s2Member/s2Member Pro) **Improvement (Speed)** Load s2Member's JS library in the footer if at all possible (instead of the ``). Done, this will improve the speed of your site for first-time visitors. -* (s2Member/s2Member Pro) **Debug Notices** Resolved all of the most obvious PHP notices when running s2Member in debug mode. This improvement impacts developers only. -* (s2Member/s2Member Pro) **Password Strength Meter** Removed dependence on `password-strength-meter` (a JavaScript library) from the WordPress core. This was causing some SSL issues for site owners. In the past it was necessary for s2Member to load an additional JS resource for registration/checkout and Pro Forms (`password-strength-meter`). Starting with this release, s2Member handles password strength meters all by itself, thereby avoiding the additional overhead; and also the issues associated with this core functionality over SSL pages. Fixed in this release. -* (s2Member/s2Member Pro) **Mobile Devices** The s2Stream shortcode (for protected audio/video files) was updated to better support mobile device playback. See also: . -* (s2Member Pro) **Checkout Options** Improving support for multiple Checkout Options. When a customer changes to a new Checkout Option by selecting an option from the drop-down menu in a Pro Form; this action will now result in a hash jump back to the location of the Pro Form on any given page; instead of to the top of the page, which could potentially result in a confusing experience on some sites (depending on the implementation). Aside: for developers, it's helpful to know that all s2Member Pro Forms now have a hashable ID `#s2p-form` that is cleaner than the longer (product-specific) IDs associated with Pro Forms; e.g. `s2member-pro-paypal-form...`, etc. If you need to hash a Pro Form, please use the more general `#s2p-form` on the end of a URL. This will take a customer directly to that Pro Form in the context of any given page. - -= v131026 = - -* (s2Member) **WordPress v3.7 Compatibility** s2Member further updated to support subtle changes in the WordPress v3.7 `wp-login.php` file. This release corrects a minor issue w/ patches applied by s2Member when running in a Multisite Network environment. If you are running s2Member on a Multisite Network, please be sure to run the automatic patcher provided in your Dashboard against WordPress v3.7 after updating to this release of s2Member. -* (s2Member Pro) **PayPal Central IPN** Updating the example file: `s2m-pro-extras/paypal-central-ipn.php` to use one of the latest PayPal IP addresses listed [here](https://ppmts.custhelp.com/app/answers/detail/a_id/92). - -= v131025 = - -* (s2Member) **WordPress v3.7 Compatibility** s2Member updated to support WordPress v3.7. s2Member remains compatible with WP v3.3 (or higher). -* (s2Member Pro) **New Feature: Simultaneous Login Monitoring** Available only w/ s2Member Pro. s2Member Pro has been updated to support configurations that limit the number of simultaneous logins a single username can receive. For further details, please see: `Dashboard -› s2Member -› Restriction Options -› Simultaneous Login Restrictions` (when s2Member Pro is installed). -* (s2Member) **Post Restrictions (#3)** Adding support for `all-[post type]` in addition to the existing `all-[post type]s` (plural) currently supported by s2Member's Restriction Options for Posts. This makes it possible for a site owner to type only the Post Type after the keyword prefix `all-`; and excluding the plural `s` in cases when this is necessary. -* (s2Member) **Documentation Update (#3)** Adding note in Download Options panel regarding `raw` shortcode tags around Shortcodes when using the inFocus theme. See also [this thread](http://mysitemyway.com/support/topic/infocus-adding-tags-into-plugin-content) for further details. -* (s2Member) **Documentation Cleanup (#12)** General cleanup in several s2Member panels to improve inline documentation that comes w/ the software. Branding improvements, padding adjustments, and subtle textual changes. -* (s2Member) **Bug Fix (#11)** Running `isset()` against `$cache_needs_updating` to prevent NOTICE when running in `WP_DEBUG` mode. -* (s2Member) **Optimization (#9)** Removing all image source files (.fla and .pspimage) from the official distribution package to reduce overall filesize. -* (s2Member) **Quick Start Video (#10)** Adding Quick Start playlist to Quick Start section. -* (s2Member) **UI (#6)** Reducing padding around section headers in s2Member option panels to reduce the amount of space these consume. -* (s2Member Pro) **SSL** Forcing all automatic updates of s2Member Pro to occur over SSL for improved security. -* (s2Member) **Login Welcome Page** Improving support for new feature (force HTTP redirection). See: `s2Member -› General Options -› Login Welcome Page` for details on how this feature works. -* (s2Member) **Bug Fix: Registration/Profile Fields** Adding space between checkboxes and their labels. -* (s2Member) **ClickBank IPN Filter** Adding a new filter to s2Member's ClickBank IPN handler for developers integrating s2Member in creative ways: `c_ws_plugin__s2member_pro_clickbank_notify_handles_completions`. Defaults to a TRUE value. Forcing this filter to a FALSE value will prevent s2Member from handling term completions via IPN communication; in cases where it's preferred that a site owner deal with this specific scenario manually. -* (s2Member) **Conformity** Updating calls to `$wpdb->escape` changing to `esc_sql` to conform w/ WordPress standards. -* (s2Member Pro) **Compatibility: Checkout Options** Improving theme support for Checkout Options created using Pro Forms by wrapping other Pro Form Shortcodes. Some site owners reported line break injections in the previous verison. Fixed in this release. -* (s2Member) **See also: s2Member Repo** https://github.com/WebSharks/s2Member/commits/000000-dev - -= v130816 = - -* (s2Member Pro) **Compatibility, ClickBank (#467)** Improving support for ClickBank PitchPlus Upsell Flows. Please see [this thread](http://www.s2member.com/forums/topic/clickbank-buttons-not-working/#post-55725) for further details. -* (s2Member/s2Member Pro) **User Search on Multisite Networks (#468)** User search functionality was partially broken for Child Blogs in a Multisite Network after some improvements were implemented in s2Member® v130731. The issue has now been corrected in this release for Multisite Networks. For further details, please see [this thread](http://www.s2member.com/forums/topic/user-search-no-longer-working/#post-55778). -* (s2Member/s2Member Pro) **Z-Index in Menu Pages (#461)** Stacking order against a WordPress® installation running a Dashboard with a collapsed sidebar menu (left side) was causing some UI problems. Fixed in this release. -* (s2Member/s2Member Pro) **SSL Compatibility (#437)** Adding a new option in the `s2Member® -› General Options -› Login Welcome Page` section. The default value for this new option is always `yes`. However, the default functionality can be turned off (if you prefer). This new option allows site owners to better integrate with a core WordPress® feature commonly referred to as `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`. This new feature can be used, or not. It is intended mainly for site owners running w/ `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`. -* (s2Member/s2Member Pro) **Login/Registration Design Option (#437)** Adding a new option in the `s2Member® -› General Options -› Login/Registration Design` section. This new option (found at the bottom of `s2Member® -› General Options -› Login/Registration Design`) allows a site owner to show/hide the `Back To Home Page` link at the bottom of the default WordPress® Login/Registration system. This can be useful for site owners running w/ `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`; where they would prefer NOT to link customers back to the main site under a default HTTPS link; but rather, create their own link and gain better control over this area of their site. -* (s2Member/s2Member Pro) **Videos (#467)** Updating internal documentation found in `Dashboard -› s2Member® -› Quick-Start`. Specifically, the video player here was integrated with an older version of the YouTube® API and was not working properly. Fixed in this release. - -= v130802 = - -* (s2Member Pro) **Compatibility, WordPress® v3.6** Updating s2Member® Pro Form templates and their underlying CSS. This update improves their appearance against the Twenty Thirteen theme that comes with WordPress® v3.6. Specifically, some of the Pro Form buttons were a little out of place in this new default theme. Fixed in this release. -* (s2Member Pro) **Compatibility, Checkout Options (#443)** Revision 3. Updating this feature to support a wider variety of WordPress® configurations and content filters. This update also resolves an empty `desc=""` attribute error reported by some site owners. Feature description... It is now possible to build dropdown menus offering your customers a variety of options using a Single Pro Form. This is accomplished quite easily using Shortcodes. For full details and examples, please check this section of your Dashboard in the latest release. See: `s2Member® -› PayPal® Pro Forms -› Wrapping Multiple Shortcodes as "Checkout Options"`. NOTE: this works for PayPal® Pro Forms, and ALSO for Authorize.Net Pro Forms. - -= v130801 = - -* (s2Member Pro) **New Feature; Checkout Options (#403)** Revision 2. Updating documentation on this new feature to prevent conufusion for site owners. s2Member® Pro now supports "Checkout Options". It is now possible to build dropdown menus offering your customers a variety of options using a Single Pro Form. This is accomplished quite easily using Shortcodes. For full details and examples, please check this section of your Dashboard in the latest release. See: `s2Member® -› PayPal® Pro Forms -› Wrapping Multiple Shortcodes as "Checkout Options"`. NOTE: this works for PayPal® Pro Forms, and ALSO for Authorize.Net Pro Forms. - -= v130731 = - -* (s2Member Pro) **New Feature; Checkout Options (#403)** s2Member® Pro now supports "Checkout Options". It is now possible to build dropdown menus offering your customers a variety of options using a Single Pro Form. This is accomplished quite easily using Shortcodes. For full details and examples, please check this section of your Dashboard in the latest release. See: `s2Member® -› PayPal® Pro Forms -› Wrapping Multiple Shortcodes as "Checkout Options"`. NOTE: this works for PayPal® Pro Forms, and ALSO for Authorize.Net Pro Forms. -* (s2Member Pro) **Free Checkout (#403)** It is now possible to offer a 100% free checkout experience using any of s2Member's Pro Form Shortcodes. In previous releases of s2Member® it was not possible to set the `ra=""` Attribute to a zero dollar amount. Now it is! This works for PayPal® Pro Forms, and also for Authorize.Net Pro Forms. -* (s2Member Pro) **100% Off Coupons (#403)** It is now possible to offer a 100% off coupon. This works for PayPal® Pro Forms, and also for Authorize.Net Pro Forms. See: `s2Member® -› Pro Coupon Codes` for details and examples. -* (s2Member Pro) **Expiration Date Dropdowns (#428)** This release improves all s2Member® Pro Form templates by adding dropdown menus for the customer's credit card expiration month/year instead of the simple text input field used in previous releases. -* (s2Member/s2Member Pro) **MySQL Wait Timeout (#349)** s2Member now automatically increases the MySQL `wait_timeout` to `300` seconds during s2Member processing routines. Reason for increase: should any 3rd party service API result in unexpected connection timeouts (such as PayPal, Authorize.Net, Amazon, MailChimp, AWeber, etc); this may cause a delay that could potentially exceed the default `wait_timeout` of `30` seconds on the MySQL resource handle that is global to all of WordPress. Increasing `wait_timeout` before transaction processing will decrease the chance of failure after a timeout is exceeded. Among other things, this resolves an elusive bug where there are mysterious 404 errors after checkout under the right scenario (e.g. when an unexpected timeout occurs). This may also resolve problems associated w/ some mysterious reports where emails were not sent during s2Member's attempt to complete post-processing of a transaction (and/or where other portions of post-processing failed under rare circumstances). -* (s2Member/s2Member Pro) **Alternative Views (#300)** This release gives s2Member® the ability to hide protected content in widgets that list protected WordPress® Pages. This is a new Alternative View in the Dashboard. See: `s2Member® -› Restriction Options -› Alternative Views` for further details please. -* (s2Member/s2Member Pro) **Documentation Update (#350)** Subtle improvements to the built-in documentation pertaining to s2Member's Automatic List Transitioning feature in the Dashboard. See: `s2Member® -› API/List Servers -› Automatic Unsubscribes` for further details please. -* (s2Member/s2Member Pro) **Bug Fix (#387)** In s2Member® Only mode, a recursive scan for the WordPress® `/wp-load.php` file was failing somtimes when/if a custom directory was configured for plugins. Fixed in this release. See [this thread](http://www.s2member.com/forums/topic/problem-with-wordpress-folder-search-code/) for further details. -* (s2Member/s2Member Pro) **Bug Fix (#418)** Fixed incorrect pagination of user search results in the Dashboard. -* (s2Member/s2Member Pro) **Bug Fix (#418)** Fixed slow query against user searches in the Dashboard. -* (s2Member/s2Member Pro) **Bug Fix (#418)** Fixed incorrect result totals under some rare scenarios in user search results. - -= v130617 = - -* (s2Member/s2Member Pro) **IP Restrictions (#148)** It is now possible to introduce a custom template file that controls the error message displayed when/if a user breaches security by exceeding your maximum unique IP addresses; as configured under `s2Member -› Restriction Options -› Unique IP Restrictions`. If you would like to use a custom template for this message, please copy the default template file from `/s2member/includes/templates/errors/ip-restrictions.php` and place this file into your active WordPress® theme directory (or into the `/wp-content/` directory if you prefer). s2Member will automatically find your custom template in one of these locations; and s2Member will use your custom template instead of the built-in default. -* (s2Member Pro) **Bug Fix (#302)** Updating Authorize.Net Pro Form Generator to support max days of `365` instead of `7`. -* (s2Member Pro) **Amazon S3 Secret Access Keys (#321)** Updating UI configuration panel to better explain what a Secret Access Key is; and adding a note about Secret Access Keys for Amazon S3 integration. Amazon® is deprecating Secret Access Keys, but they ARE still required for digitally signed URLs. This update changes nothing in s2Member's functionality. It simply adds some additional detail to a configuration field that will assist site owners integrating s2Member w/ Amazon S3 for the first time. -* (s2Member/s2Member Pro) **Translations (#317)** Updating `/s2member/includes/translations/translations.txt` (README file). Adding blurp about fuzzy translation entries in existing PO files that translate s2Member. This contains some additional tips on how to update existing PO files upon each release of s2Member and/or s2Member Pro. -* (s2Member/s2Member Pro) **Bug Fix (#321)** Fixing bug in `/s2member/includes/templates/cfg-files/s2-cross-xml.php` for S3 Buckets (resulting in `crossdomain.xml`). This file contained a parse error and was causing some problems for site owners integrating Adobe Flash content served via Amazon S3. Fixed in this release. -* (s2Member Pro) **PayPal Pro Forms (#315)** Adding note in the Dashboard here (`s2Member -› PayPal Pro Forms -› Shortcode Attributes Explained`). In the list of Shortcode Attributes we are adding a note regarding max character length for the `desc=""` Attribute in a PayPal Pro Form Shortcode. This can be as long as you like. However, all descriptions passed through PayPal® APIs are truncated automatically to 60 characters max (e.g. the maximum allowed length for PayPal® descriptions is 60 characters). Nothing new here, but we thought it would be a good idea to clarify this behavior in the documentation. Updated in this release. -* (s2Member Pro) **PayPal Pro Forms (#312)** Preventing the use of multiple Pro Forms in the same Post/Page. This has never been possible, it is known to break the functionality of s2Member Pro Forms. Please limit Pro Form Shortcodes to ONE for each Post/Page; and do NOT attempt to use more than one Pro Form Shortcode on the same Post/Page (at the same time). In this release we have added a friendly JavaScript alert/warning for site owners that attempt this, so that problems and confusion can be avoided in this unlikely scenario. - -= v130513 = - -* (s2Member/s2Member Pro) **s2Stream Shortcode Bug Fix (#256)** Fixing a bug first introduced in the previous release where we added support for `player_aspectratio`. This quick update corrects the PHP parse error at line #154 of `sc-files-in.inc.php`. It also corrects the behavior of the `player_height=""` and `player_aspectratio=""` Shortcode Attributes for the `s2Stream` Shortcode. Many thanks to everyone that reported this bug. -* (s2Member Pro) **Codestyling Localization** Removing symlink creator for Codestyleing Localization compatibility. There have been some reports of problems during WordPress® automatic upgrades (when/if the symlink exists). Until we can find a way to avoid this, we're disabling the automatic symlink generator. If you're running the Codestyling Localization plugin together with s2Member Pro, you will need to create the symlink yourself if you want to make s2Member fully compatible. Please create a symlink here: `/wp-content/plugins/s2member/s2member-pro` that points to the s2Member Pro directory: `/wp-content/plugins/s2member-pro`. See notes in previous changelog for further details on this. - - **IMPORTANT NOTE:** If you upgraded previously to v130510 (and you ran the Codestyling Localization plugin together with s2Member® v130510 — at any time); please delete this symlink via FTP: `/wp-content/plugins/s2member/s2member-pro`. Please do this BEFORE attempting an automatic upgrade via WordPress®. - - If you missed this note and you've already attempted an automatic upgrade, you will have trouble. Here's how to correct the problem. - - 1. Log into your site via FTP and delete these two directories manually. - `/wp-content/plugins/s2member` and `/wp-content/plugins/s2member-pro`. - - 2. Now, please follow the [instructions here](http://www.s2member.com/pro/#!s2_tab_jump=s2-pro-install-update) to upgrade s2Member® Pro manually. - -= v130510 = - -* (s2Member Pro) **Authorize.Net UK (and Other Currencies) (#104)** Adding support for Authorize.Net UK and other currencies too. s2Member Pro now officially supports Authorize.Net UK Edition. It is now possible to change your Authorize.Net Pro Form Shortcode Attribute `cc="USD"` to one of these values: `cc="USD"`, or `cc="CAD"` or `cc="EUR"` or `cc="GBP"`. For further details, please see: `Dashboard -› Authorize.Net Pro Forms -› Shortcode Attributes (Explained)`. -* (s2Member Pro) **ClickBank Skins (#227)** Adding support for the `cbskin=""` Shortcode Attribute. For further details, please see: `Dashboard -› ClickBank Buttons -› Shortcode Attributes (Explained)`. -* (s2Member Pro) **ClickBank PitchPlus Upsell Flows (#227)** Adding support for ClickBank PitchPlus Upsell Flows via new Shortcode Attributes: `cbfid=""`, `cbur=""`, `cbf="auto"`. s2Member Pro now officially supports ClickBank PitchPlus Upsell Flows. We support PitchPlus Basic and PitchPlus Advanced too. For further details, please see: `Dashboard -› ClickBank Buttons -› Shortcode Attributes (Explained)`. -* (s2Member/s2Member Pro) **Codestyling Localization** Adding automatic symlink creator for improved compatibility with the CodeStyling Localization plugin. A symlink is created automatically whenever the CodeStyling Localization plugin is installed, and s2Member® Pro is installed as well. The symlink allows the CodeStyling Localization plugin to scan files from the s2Member® Pro directory too; instead of only scanning the s2Member® Framework directory. s2Member and s2Member Pro are now both compatible with the Codestyling Localization plugin (optional). -* (s2Member/s2Member Pro) **Custom Templates w/ s2Stream Shortcode** Adding support for custom templates to be used in conjunction with the `s2Stream` Shortcode. It is now possible to take the default player templates from `/s2member/includes/templates/players/` and put these files inside your own WordPress® theme directory (or inside the `/wp-content/` directory). s2Member will automatically find your template files in these locations. Your custom template files will then be used instead of the built-in defaults. -* (s2Member/s2Member Pro) **Bug Fix (#59)** Resending a password to a User from the Dashboard (while changing the User's email address at the same time); resulted in the email being sent to the previous email address instead of the new one. Fixed in this release. -* (s2Member/s2Member Pro) **Bug Fix (#216)** Removing `-MultiViews` from s2Member's `.htaccess` file in the `/s2member-files/` directory. This improves compatibility with some Apache installations that simply have `AllowOverride All`; because `All` may not include `MultiViews` in some versions of Apache. -* (s2Member/s2Member Pro) **IP Restrictions (#149)** In the Dashboard, we now report if a User is at (or above) max allowable IPs; instead of reporting only if they have actually triggered an internal security breach (which times out quickly in most cases). Fixed in this release. -* (s2Member/s2Member Pro) **Enhancing JW Player Integration (#251)** Adding support for s2Stream Shortcode Attribute `player_aspectratio="12:5"` (as one example). See also [this post](http://www.longtailvideo.com/blog/32697/new-in-jw-player-responsive-design) at Longtail Video. -* (s2Member Pro) **Updating Payflow Integration (#193)** Removing DAILY `D` option for Payflow Recurring Billing. No longer supported by Payflow. However, s2Member will let a `D` value slip by Shortcode Attribute validation in case a site owner has arranged for this to become available against their Payflow account somehow; and to remain backward compatible with previous versions of s2Member Pro. Moving forward, it is NO longer possible to bill customers on a daily basis with PayPal Payments Pro (Payflow Edition). This is a PayPal limitation. -* (s2Member Pro) **Updating Payflow Integration w/ Payflow Bug Workaround (#193)** Updating Payflow integration to support Billing Agreement IDs (aka: `BAID` values) when working together with Payflow Express Checkout APIs (and where a site owner is charging on a recurring basis). - - This improvement also allows s2Member to work around a Payflow bug where `BILLINGTYPE=RecurringPayments` results in error `#7 (Invalid/Expired TOKEN)` whenever Payflow attempts to rebill a customer. s2Member now sets `BILLINGTYPE=RecurringBilling`; and we pass `BAID=B-xxxxxx` instead of passing `TOKEN=xxxxxx`. - - Site owners also need to [contact PayPal MTS](http://www.paypal.com/mts) and ask to have `Reference Transactions` (free) enabled for `Recurring Billing` service. ~ However, you ONLY need `Recurring Billing` service and `Reference Transactions` enabled IF you're operating a PayPal Payments Pro (Payflow Edition) account; and only IF you're charging customers on a recurring basis. - - All of these changes related to Payflow (as detailed in this changelog entry), impact only ONE specific scenario. - - You have a PayPal Payments Pro (Payflow Edition) account. - - You charge your customers on a recurring basis. - - A customer chooses PayPal as their billing method during checkout. - - No other part of s2Member's integration with Payflow was modified in this release. - - For further details, please see [this thread](http://www.s2member.com/forums/topic/paypal-expired-security-token/page/2/) (or monitor the [s2Member KB](http://www.s2member.com/kb/) for new articles on this subject). -* (s2Member Pro) **Payflow API Docs** Updating `s2m-pro-extras.zip` to include the latest versions of the PayPal Pro (Payflow Edition) APIs. s2Member Pro customers can download this optional ZIP file from their My Account page at s2Member.com. These are extras only, they are NOT part of the s2Member application. -* (s2Member Pro) **Google Checkout Bug Fix (#214)** Updating s2Member's Google Checkout integration to properly support the `rrt` Shortcode Attribute. Fixed in this release. For further details please see [this thread](http://www.s2member.com/forums/topic/google-recurring-problem/#post-48218). -* (s2Member Pro) **Username Validation (#246)** Now forcing user input (during Pro Form registration) to lowercase on Multisite Networks to prevent unnecessary validation errors during checkout (saving a customer time). Also, s2Member now validates a customer's Username before it is passed through `sanitize_user()` (a core WordPress® function). This prevents confusion for a customer where certain characters were stripped out automatically, causing them problems when attempting to log in for the first time (e.g. the customer thinks their Username is `john~doe`; when it is actually `johndoe` because WordPress (when running a Multisite Network) removes anything that is NOT `a-z0-9 _.-@` (and s2Member removes whitespace as well). - -= v130406 = - -* (s2Member/s2Member Pro) **Multisite Networks (#145)** Bug fix on Multisite Networks related to User deletions and subsequent logins on child blogs. For further details, please see [this thread](http://www.s2member.com/forums/topic/deleted-users-can-log-in/#post-46738). -* (s2Member Pro) **New Feature (#59)** It is now possible to Edit a User in the Dashboard and check a box to have the User's password reset, and an email message sent automatically to the User/Member with a copy of the Username/Password. This requires s2Member® Pro. -* (s2Member Pro) **API Functions (#158)** New PayPal® Pro API Functions (`s2member_pro_paypal_rbp_for_user`, `s2member_pro_paypal_rbp_times_for_user`). These are for developers. For further details, please see [this article](http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/) in the s2Member® Codex. -* (s2Member Pro) **API Functions (#158)** New PayPal® Pro (PayFlow® Edition) API Functions (`s2member_pro_payflow_rbp_for_user`, `s2member_pro_payflow_rbp_times_for_user`). These are for developers. For further details, please see [this article](http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/) in the s2Member® Codex. - -= v130404 = - -* (s2Member Pro) **Compatibility (#108)** Updating s2Member® Pro's integration with Authorize.Net to allow charges up to `$99,999.00` (formerly `$10,000.00`). -* (s2Member/s2Member Pro) **User Searches (#91)** Updating `pre_user_query` filter to include `first_name/last_name` (instead of only the `display_name`). -* (s2Member/s2Member Pro) **bbPress Integration (#88)** Updating bbPress Role/Cap filter to exclude itself during bbPress deactivation. This was causing a loss of the `read` Capability inadvertently. -* (s2Member/s2Member Pro) **PayPal® 20% Rule (#100)** Removing mention of the PayPal® 20% rule/limitation in the inline documentation. We confirmed with PayPal this ridiculous rule no longer applies to PayPal Standard Buttons. -* (s2Member/s2Member Pro) **File Downloads (#73)** Fixed bug related to `%2F` in file download URLs leading to a `ccap` directory. -* (s2Member/s2Member Pro) **Debug Logging (#69)** Logging now disabled by default. New log recommendation/warning notices updated throughout all menu pages for s2Member®. -* (s2Member/s2Member Pro) **Debug Logging (#69)** Logging must now be disabled (and the logs directory must be non-existent or empty) for an s2Member® Security Badge to go green. There is only one way to bypass this security check. See KB Article: [s2Member® Security Badges](http://www.s2member.com/kb/security-badges/). Notices are displayed on activation of this version to warn site owners about this change. -* (s2Member/s2Member Pro) **JW Player (#121)** Adding CSS `class` attribute to all JW Player template files used in conjunction with the `s2Stream` shortcode. New CSS class name: `s2member-jwplayer-v6`. -* (s2Member/s2Member Pro) **JW Player (#121)** Adding support for percentage-based width/height values in `player_width="" player_height=""` attributes of an s2Stream shortcode that generates a JW Player. Example: `player_width="100%"`. - -= v130221 = - -* (s2Member/s2Member Pro) **Bug Fix (#41)** Custom Registration/Profile Fields with an ID that ended with `-[0-9]+` or `_[0-9]+` was failing JavaScript validation due to a parsing issue. Fixed in this release. -* (s2Member/s2Member Pro) **Bug Fix (#43)** A bug first introduced in the last release of s2Member® v130220 was preventing Administrative New User Notifications from being sent by s2Member®. Fixed in this release. - -= v130220 = - -* (s2Member Pro) **Feature Enhancement/User Exportation (#33)** Adding support for UTF-8 BOM in CSV User export files. Now a configurable option during User/Member Exportation. -* (s2Member/s2Member Pro) **Feature Enhancement/Emails (#21)** Adding additional Replacement Codes for New User Email Notifications (for both the User/Member Notification and also for the Administrator Notification). The following Replacement Codes are now possible: `%%role%%`, `%%label%%`, `%%level%%`, `%%ccaps%%`. Also adding four new Filters for developers. These include: `ws_plugin__s2member_welcome_email_sbj`, `ws_plugin__s2member_welcome_email_msg`, `ws_plugin__s2member_admin_new_user_email_sbj`, `ws_plugin__s2member_admin_new_user_email_msg`. See `Dashboard -› General Options -› Email Configuration` for further details. -* (s2Member/s2Member Pro) **Feature Enhancement/Emails (#30)** Adding support for PHP tags in the following emails: New User Notification, Administrative New User Notification, Signup Confirmation Email, Specific Post/Page Confirmation Email. See the relevant sections in your Dashboard for further details. Such as: `s2Member® -› General Options -› Email Configuration` and `s2Member® -› PayPal® Options -› Signup Confirmation Email`. -* (s2Member/s2Member Pro) **Feature Enhancement/Shortcodes (#23)** Adding support for the `lang=""` Attribute in PayPal Buttons, PayPal Pro Forms, and in Google Checkout Buttons. This is a bit different from the existing `lc=""` value. The `lc=""` value controls the interface at PayPal, while the `lang=""` value controls the language of the Standard and/or Express Checkout Button itself (with respect to s2Member®). For further details, please see: `Dashboard -› PayPal Buttons (or Pro Forms) -› Shortcode Attributes (Explained)`. -* (s2Member/s2Member Pro) **Bug Fix** Fixing bug in User Access Package. Now checking if `$cap_enabled` also is `TRUE`; just in case another plugin or hack file attempts to disable Custom Capabilities without removing them. Not likely, but we can support this easily with a quick update in this release. Note... this has no impact on s2Member's existing functionality. Custom Capabilities continue to work just as they always have. -* (s2Member/s2Member Pro) **Feature Enhancement/Logging** Adding new logger. Logs to file `reg-handler.log`. Includes all User/Member registrations handled by s2Member® (either directly or indirectly). Only if logging is enabled. For further details, please check your Dashboard here: `s2Member® -› Log Files (Debug)`. -* (s2Member/s2Member Pro) **Feature Enhancement/EOTs (#29)** Adding UI option for EOT Grace Time. For further details, please see: `Dashboard -› PayPal Options -› Automatic EOT Behavior`. Also adding a new Filter for developers: `ws_plugin__s2member_eot_grace_time`. -* (s2Member/s2Member Pro) **Feature Enhancement/EOTs** Adding UI option for EOT Custom Capability Removal. For further details, please see: `Dashboard -› PayPal Options -› Automatic EOT Behavior`. Also adding a new Filter for developers: `ws_plugin__s2member_remove_ccaps_during_eot_events`. -* (s2Member/s2Member Pro) **Feature Enhancement/s2Stream Shortcode (#32)** Adding additional support for JW Player™ Captions, Titles, Descriptions, and Media IDs (i.e. `player_title=""`, `player_description=""`, `player_mediaid=""`, `player_captions=""`). Please check the Shortcode Attributes tab in [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/#using-s2stream-shortcodes) for further details. - -= v130214 = - -* **(Maintenance Release) Upgrade immediately.** -* (s2Member/s2Member Pro) **Log Viewer (#16)** Additional log file descriptions have been added to the Dashboard, along with some other UI enhancements in this section. -* (s2Member/s2Member Pro) **Bug Fix (#18)** Usernames consisting of all numeric values were not always being redirected to the Login Welcome Page upon logging in, even when s2Member® was configured to do so. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/subscribers-not-taken-to-welcome-page/page/2/#post-41663). -* (s2Member Pro) **Coupon Codes (#19)** Adding new Replacement Codes: `%%full_coupon_code%%`, `%%coupon_code%%` and `%%coupon_affiliate_id%%`. These are now available in all API Tracking Codes, in all Custom Return URLs for Pro Forms, and in most API Notifications. -* (s2Member Pro) **Coupon Codes (#19)** Deprecating the `%%affiliate_id%%` Replacement Code for tracking Affiliate Coupon Codes in favor of `%%coupon_affiliate_id%%`. -* (s2Member/s2Member Pro) **Last Login Time** Improving readability of Last Login Time in list of Users/Members. -* (s2Member/s2Member Pro) **Compatibility** Improving support for WordPress® v3.6-alpha with respect to `tabindex` values on `/wp-login.php`. -* (s2Member/s2Member Pro) **Compatibility** Bumping minimum WordPress® requirement from v3.2 up to v3.3. Starting with this release, s2Member® is no longer compatible with the much older WordPress® v3.2. - -= v130213 = - -* **(Maintenance Release) Upgrade immediately.** -* (s2Member Pro) **Compatibility (#13)** PayPal® Payments Pro, PayPal® Payments Pro (Payflow Edition), and Authorize.Net. s2Member® Pro now supports a recurring interval of Semi-Yearly (e.g. charges occur every six months). This has always been possible by manipulating Shortcode Attribues, but it's now officially supported by Pro Form Generators in your Dashboard — which come with s2Member® Pro. -* (s2Member Pro) **Compatibility (#13)** ClickBank® Recurring Products. ClickBank® has started allowing a Weekly recurring interval and stopped allowing Yearly. s2Member® has been updated in this release to support a Weekly recurring interval with ClickBank®; and to remove the Yearly option in the ClickBank® Button Generator. -* (s2Member Pro) **Compatibility (#13)** PayPal® Payments Pro (Payflow Edition). PayPal® Payments Pro (Payflow Edition) has started allowing a Daily recurring interval. s2Member® has been updated in this release to support a Daily recurring interval with PayPal® Payments Pro (Payflow Edition). Daily recurring intervals remain possible with PayPal® Pro accounts that do not include the additional Payflow API. This change simply adds official support for Daily recurring billing with PayPal® Payments Pro (Payflow Edition). -* (s2Member) **Debugging Assistance** Updating s2Member's PayPal® PDT/Auto-Return handler to better handle scenarios where a site owner is missing a PayPal® PDT Identity Token in their s2Member® configuration, or has incorrectly set the `custom=""` Shortcode Attribute in Payment Buttons generated with s2Member®. Administrative notices are now displayed in the Dashboard when/if this occurs and s2Member® can catch the issue during post-processing of a transaction. -* (s2Member/s2Member Pro) **General Code Cleanup** Removing all `/**/` markers in the s2Member® codebase. These were used in conjunction with PolyStyle® code formatting tools to preserve line breaks in the code. The WebSharks™ development team no longer uses PolyStyle®, making these obsolete now. Removed in this release to improve readability for developers. -* (s2Member/s2Member Pro) **General Code Cleanup** Removing all unnecessary uses of PHP's `eval()` function in s2Member's codebase. These were used to keep repetitive code all in a single line; part of a standard the WebSharks™ development team is now moving away from. Removed in this release to improve readability for developers; and to prevent unnecessary confusion. -* (s2Member/s2Member Pro) **Auto-EOT System** Updated s2Member's Auto-EOT System. s2Member® now leaves an additional note behind after a demotion, which references the Paid Subscr. Gateway and Paid Subscr. ID values before the demotion occurred. This way there is a better reference left behind after an automatic demotion occurs. -* (s2Member/s2Member Pro) **Searching Users** Updating search function in list of Users (i.e. `Dashboard -› Users -› [Search Box]`) to include the Administrative Notes field when searching for Users. This allows references to old Paid Subscr. IDs in the Administrative Notes field to be considered when searching Users/Members. -* (s2Member/s2Member Pro) **Last Login Time** Adding new User Option value (tracked by s2Member®). This option value tracks the last time each User/Member logged into your site. Ex: `get_user_option("s2member_last_login_time")`. -* (s2Member/s2Member Pro) **Last Login Time** Adding new User data column to list of Users in the Dashboard: `Last Login Time`. -* (s2Member/s2Member Pro) **Last Login Time** Adding new API Function: [`s2member_last_login_time()`](http://www.s2member.com/codex/stable/s2member/api_functions/package-summary/). -* (s2Member/s2Member Pro) **ezPHP** Updated all internal documentation references that pointed to Exec-PHP or the PHP Execution plugin as recommendations for developers that wish to integrate PHP tags into Posts/Pages/Widgets. These old references now point to the [ezPHP](http://www.s2member.com/kb/ezphp-plugin/) plugin by s2Member® Lead Developer: Jason Caldwell. s2Member® remains compatible with other PHP plugins, but we recommend [ezPHP](http://www.s2member.com/kb/ezphp-plugin/) for the best compatibility with both s2Member® and WordPress® itself. -* (s2Member/s2Member Pro) **Simple Shortcode Conditionals** Adding a [Simple Shortcode Conditionals](http://www.s2member.com/kb/simple-shortcode-conditionals/) section to `s2Member® -› Restriction Options` in the Dashboard. This way more site owners will be aware of this feature from the start. -* (s2Member/s2Member Pro) **Login/Registration Design** Login/Registration Design with s2Member® is now optional (e.g. this feature can be disabled now — if you prefer). See: `Dashboard -› s2Member® -› General Options -› Login/Registration Design`. This feature is enabled by default on all s2Member® installations. -* (s2Member/s2Member Pro) **Inline Documentation** Adding more links to KB articles throughout the Dashboard area. -* (s2Member/s2Member Pro) **Inline Documentation** Updating all spaced parenthesis like `( something... )` to remove the grammatical errors — by removing the extra spaces inside these brackets. -* (s2Member/s2Member Pro) **Inline Documentation** Removing all references to PriMoThemes and/or primothemes.com within the application itself. PriMoThemes is now s2Member® (as of Jan 2012 — it's been awhile; so time to remove these obviously). -* (s2Member/s2Member Pro) **Inline Documentation** Adding link to "more updates..." in the Dashboard, pointing to the s2Member® KB. Increasing number of recent KB udpates from 3 up to 5. These are visible from any s2Member® page in the Dashboard (top of the right-hand column). -* (s2Member/s2Member Pro) **Inline Documentation** Adding [s2Member® Pro](http://www.s2member.com/pro/) (a recommended upgrade) to the Quick-Start Guide for s2Member® — in the Dashboard. -* (s2Member/s2Member Pro) **Inline Documentation** Adding Troubleshooting section to the Quick-Start Guide for s2Member® — in the Dashboard. -* (s2Member/s2Member Pro) **Inline Documentation** Adding Perfect Theme section to the Quick-Start Guide for s2Member® — in the Dashboard. -* (s2Member/s2Member Pro) **Inline Documentation** Adding video tutorial to the `Dashboard -› s2Member® -› API / Scripting -› Custom Capabilities` section. -* (s2Member/s2Member Pro) **Logging Functionality** Adding an s2Member® Log Viewer to the Dashboard for all site owners; and also for s2Member® Support Reps to use when running diagnostics. See: `Dashboard -› s2Member® -› Log Files (Debug)` for further details. -* (s2Member/s2Member Pro) **Logging Functionality** Logging routines are now enabled by default on all new installations of s2Member®. Existing installations of s2Member® are advised to enable logging, by visiting this section of your Dashboard. See: `s2Member® -› PayPal® Options (or Authorize.Net, ClickBank, etc) -› Account Details -› Logging`. -* (s2Member/s2Member Pro) **Logging Functionality** Additional logging routines that will track all s2Member® HTTP communication within WordPress® is now enabled by default. This new log file will be located inside `/wp-content/plugins/s2member-logs`. It is named: `s2-http-api-debug.log`. See: `Dashboard -› s2Member® -› Log Files (Debug)` for further details. -* (s2Member/s2Member Pro) **Logging Functionality** Additional logging routines that will track *all* HTTP communication within WordPress® are now possible (these are quite extensive). See: `Dashboard -› s2Member® -› Log Files (Debug) -› Logging Configuration` for further details. This more extensive logging is disabled by default; it must be enabled by a site owner. For debugging only — this should NEVER be enabled on a live site. -* (s2Member/s2Member Pro) **Logging Functionality** Adding date/time to all log entries maintained by s2Member®. -* (s2Member/s2Member Pro) **GZIP Conflicts** Adding additional lines of defense against GZIP conflicts during file downloads, with calls to `@apache_setenv("no-gzip", "1")` in other areas — not just during public file downloads (e.g. also during User/Member exporations, log file downloads, etc). -* (s2Member/s2Member Pro) **GZIP Conflicts** Adding an additional line of defense against GZIP conflicts during file downloads, with this line now appearing in the `.htaccess` file snippet added by the s2Member® software application: `RewriteCond %{QUERY_STRING} (^|\?|&)no-gzip\=1`. -* (s2Member/s2Member Pro) **GZIP Conflicts** Adding an additional line of defense against GZIP conflicts during User/Member exporations, log file downloads, and other downloads that come straight from the Dashboard area to site owners via web browsers. s2Member® now sends `Content-Encoding: none` to prevent Apache's `mod_deflate` from interfering with s2Member® under these special scenarios. A `Content-Encoding: none` header value is technically invalid, but it's known to prevent issues with `mod_deflate`. Since a `Content-Encoding: none` header value is technically invalid, s2Member® does NOT implement this during public file downloads; where we need to provide wider support for a long list of devices that may choke on this incorrect value. This is only implemented for site owners in the administrative areas of WordPress; and only for file downloads related to CSV export files and logs. -* (s2Member/s2Member Pro) **Bug Fix** Fixed incorrect `preg_split` limit against `$paypal['item_number']` in IPN handler for `subscr_payment` and `subscr_cancel` transaction types. Doesn't appear to have affected anything negatively, but it was wrong none the less. Fixed in this release. -* (s2Member/s2Member Pro) **Bug Fix** Fixed incorrect handling of a single opt-in checkbox on BuddyPress registration forms, which was not being wrapped with s2Member's BuddyPress container divs at all times. A symptom of this bug was to see a checkbox on your BuddyPress registration that was out of alignment or out of position. Fixed in this release. -* (s2Member/s2Member Pro) **Compatibility** Updated all of s2Member's IPN handlers to accept `$_REQUEST` data for Proxy-related variables like `s2member_paypal_proxy_return_url`. This allows s2Member® itself to use `$_POST` variables for Proxy-related variables; and it further reduces the likelihood of 403 Forbidden errors caused by [paranoid Mod Security configurations](http://www.s2member.com/kb/mod-security-random-503-403-errors/). One issue this should help to correct, is a mysterious case where a `success=""` Shortcode Attribute is not working as you might expect. This can be caused by [paranoid Mod Security configurations](http://www.s2member.com/kb/mod-security-random-503-403-errors/) at places like HostGator®, because a URL is passing through a query string. This release will help to prevent this from becoming a problem, because `success=""` URLs will be passed through `$_POST` variables now in all Pro Form integrations. - -= v130207 = - -* **(Maintenance Release) Upgrade immediately.** -* (s2Member Pro) **Bug Fix (#2)** Modification Tracking Codes not working properly under s2Member's Authorize.Net integration. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/shareasale-integration-not-working/#post-40954). -* (s2Member) **Compatibility (#4)** PayPal® integrated into a site charging in the JPY currency was incorrectly limited to an amount of 10000.00. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/default-currency-can-i-change-it-to-yen/#post-40590). -* (s2Member) **Compatibility (#5)** Incorrect `tabindex` values in WordPress® v3.5+. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/tabindex-messed-up-on-registration-page/#post-40591). -* (s2Member/s2Member Pro) **Line Breaks (#3)** Some line breaks in both s2Member® and s2Member® Pro were converted to CRLF inadvertently in the previous release. No real harm done, but this was causing some problems for the s2Member® Server Scanner because it uses a checksum against installation files; which was being thrown off balance due to the unexpected line break style. Fixed in this release. A symptom of this bug was to see invalid checksums when running diagnostics with the s2Member® Server Scanner. -* (s2Member/s2Member Pro) **Compatibility (#6)** s2Member® File Downloads (audio/video files) with spaces in a file name were not always being handled properly. Fixed in this release. Discussed in [this thread](http://www.s2member.com/forums/topic/jwplayer-filename-bug/#post-40799). - -= v130203 = - -* **(New Release) Please read this changelog for important details.** -* (s2Member Pro) **Remote Ops API (`create_user`)** s2Member® Pro's Remote Operations API, for the `create_user` Operation has been updated to support a new specification: `modify_if_login_exists`. For further details, please check your s2Member® Pro Dashboard here: `s2Member® -› API / Scripting -› Remote Operations API`. -* (s2Member Pro) **Remote Ops API (`modify_user`,`delete_user`)** s2Member® Pro's Remote Operations API has been updated to support two additional Operations: `update_user` and `delete_user`. For further details on these new Operations, please check your s2Member® Pro Dashboard here: `s2Member® -› API / Scripting -› Remote Operations API`. -* (s2Member Pro) **Remote Ops API (`init` hook priority)** s2Member® Pro's Remote Operations API has been updated to prevent conflicts when running in concert with BuddyPress v1.6.4+. Hook priority now running at default value of `11`, right after BuddyPress v1.6.4 at hook priority `10`. -* (s2Member/s2Member Pro) **s2Stream Shortcode (#88)** s2Member® now supports JW Player® license keys (for the professional edition) using Shortcode Attribute `player_key=""` (or they can be specified sitewide via JavaScript provided by Longtail Video — optional). See [this discussion](http://www.s2member.com/forums/topic/jwplayer-shortcode-for-poster-not-working/#post-40435). See also: [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/#using-s2stream-shortcodes). -* (s2Member/s2Member Pro) **s2Stream Shortcode (#88)** Bug fix. The s2Stream Shortcode was not working properly (with respect to a specific Shortcode Attribute: `player_image=""`). Fixed in this release. See [this discussion](http://www.s2member.com/forums/topic/jwplayer-shortcode-for-poster-not-working/#post-40128). See also: [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/#using-s2stream-shortcodes). -* (s2Member Pro) **User Exportation (#89)** s2Member® Pro's User Exportation now includes separate data columns for each Custom Registration/Profile Field that you've configured with s2Member®. Also, s2Member® Pro will now include ALL Custom Registration/Profile Fields (even if there is no value associated with certain Fields, for specific Users/Members — e.g. empty column values will now be included by s2Member® Pro). This provides a more consistent/readable CSV export file; a major improvement. Discussed in [this KB article](http://www.s2member.com/kb/importing-updating-users/#custom-registration-profile-fields). -* (s2Member Pro) **User Importation (#89)** s2Member® Pro's User/Member Import format changed in this release (with respect to Custom Registration/Profile Fields only). If you are importing Custom Registration/Profile Fields, please review [this KB article](http://www.s2member.com/kb/importing-updating-users/#custom-registration-profile-fields) before you import new Users/Members or mass update any existing Users/Members. ALSO NOTE: User/Member CSV Export Files generated by previous versions of s2Member® Pro (if they contained any Custom Registration/Profile Fields) will NOT be compatible with this latest release (e.g. you should NOT attempt to re-import those old files in an effort to mass update existing Users/Members). Please generate a new User/Member CSV Export File in the latest release of s2Member® Pro before attempting to edit and/or mass update existing Users/Members with applications like MS Excel or OpenOffice. - -= v130123 = - -* **(Maintenance Release) Upgrade immediately.** -* (s2Member/s2Member Pro) **s2Stream Shortcode (#78)** s2Member® now supports JW Player® license keys using Shortcode Attribute `player_key=""`. See [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/) please. Also discussed in [this thread](http://www.s2member.com/forums/topic/new-jw-player-6-s2-video-audio-shortcodes/#post-38768). -* (s2Member/s2Member Pro) **s2Stream Shortcode (#79)** s2Member® now supports JW Player® [Advanced Option Blocks](http://www.longtailvideo.com/support/jw-player/28839/embedding-the-player) using Shortcode Attribute `player_option_blocks=""`. Example: `player_option_blocks="sharing:{}"`. See [this KB article](http://www.s2member.com/kb/jwplayer-s2stream-shortcodes/) please. Also discussed in [this thread](http://www.s2member.com/forums/topic/new-jw-player-6-s2-video-audio-shortcodes/#post-38768). -* (s2Member Pro) **User Exportation (#80)** s2Member® Pro User Exportation now occurs with MySQL `ORDER BY ID`, instead of no `ORDER BY` at all. This helps to prevent confusion and buggy behavior. Discussed in [this thread](http://www.s2member.com/forums/topic/user-export-not-working-properly/#post-39123). -* (s2Member Pro) **User Exportation (#81)** s2Member Pro's User Exportation now supports the exporation of up to `1000` User/Member table rows at once. Of course it remains possible to export ALL of your Users/Members with s2Member® Pro. All we've done here is bump the default limit from `250` up to `1000` at a time. In addition, there is a new Filter making it possible to extend this limit further on servers that can handle it. Use Filter: `ws_plugin__s2member_pro_export_users_limit` if you would like to export more Users all at once. See also: `Dashboard -› s2Member® Pro -› User/Member Exportation`. -* (s2Member/s2Member Pro) **KB Articles** Inline documentation updated in some areas, with a few links pointing to helpful/related KB articles. - -= v130121 = - -* **(Maintenance Release) Upgrade immediately.** -* **New Feature** s2Member® now comes with a new Shortcode `[s2Stream file_download="video.mp4" player="jwplayer-v6" ... /]`, making it MUCH easier for site owners to implemement RTMP streams of audio/video content. For further details, please check your Dashboard under: `s2Member® -› Download Options -› JW Player® v6 and RTMP Protocol Examples`. See also: `s2Member® -› Download Options -› Shortcode Attributes (Explained)`. -* **Compatibility (#75)** Updated s2Member's local file storage engine (for File Downloads via s2Member®), to support special characters in file names. Discussed in [this thread](http://www.s2member.com/forums/topic/problem-with-quotes-in-filename-downloads/#post-38395). -* **Bug Fix (#71)** A bug first introduced in the previous release of v130116, where we added support for byte-range requests to s2Member's File Download functionality, was causing multiple byte-range requests (processed by s2Member) to count against each User/Member as multiple File Downloads. Fixed in this release. -* **Compatibility** Updated s2Member's integration with Amazon® S3 to extend the default 30 second connection timeout (which was too conservative for many integrations) up to 24 hours by default, making it match the same as s2Member's Amazon® CloudFront connection timeout. For further details, please check your Dashboard under: `s2Member® -› Download Options -› Amazon® S3/CDN Storage -› Dev Note w/Technical Details`. It is possible to modify this connection timeout through a Filter discussed there. - -= v130116 = - -* **(Maintenance Release) Upgrade immediately.** -* **Compatibility (#39)** Updated codes samples for JW Player®, to include the `mp4:` prefix when implementing RTMP streams against MP4 video files. Discussed in [this thread](http://www.s2member.com/forums/topic/cloudfront-subfolder-streaming-error/#post-35750). -* **Compatibility (#51)** Updated Payflow® API to support recurring billing every six months. Discussed in [this thread](http://www.s2member.com/forums/topic/payflow-error-6-month-recurring-membership/#post-36053). -* **Bug Fix (#69)** Updated multisite user imporation routine, to support a specific scenario not covered under WordPress v3.5. Discussed in [this thread](http://www.s2member.com/forums/topic/users-on-multisite/). -* **Feature Improvement (#71)** s2Member® has been updated to support byte-range requests with it's default local file storage engine, served from the `/s2member-files/` directory. s2Member® has always supported byte-range requests when integrated with Amazon® CloudFront. Now it supports byte-range requests in it's default local storage engine too. This will improve compatibility with mobile devices, iTunes™ and other devices that use byte-range requests. Discussed in [this thread](http://www.s2member.com/forums/topic/any-way-to-set-accept-ranges-for-downloads/#post-15871). - -= v121213 = - -* ... trimmed away at v121213. -* Initial release: v1.0. +For older Changelog entries, please see the `changelog.md` file. diff --git a/s2member/s2member.php b/s2member/s2member.php index eab0db22..9eeac220 100644 --- a/s2member/s2member.php +++ b/s2member/s2member.php @@ -19,8 +19,8 @@ */ /* -- This section for WordPress parsing. ------------------------------------------------------------------------------ -Version: 141007 -Stable tag: 141007 +Version: 150102 +Stable tag: 150102 SSL Compatible: yes bbPress Compatible: yes @@ -75,7 +75,7 @@ * @var string */ if(!defined('WS_PLUGIN__S2MEMBER_VERSION')) - define('WS_PLUGIN__S2MEMBER_VERSION', '141007' /* !#distro-version#! */); + define('WS_PLUGIN__S2MEMBER_VERSION', '150102' /* !#distro-version#! */); /** * Minimum PHP version required to run s2Member. * @@ -105,7 +105,7 @@ * @var string */ if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION')) - define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '141007' /* !#distro-version#! */); + define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '150102' /* !#distro-version#! */); /* Several compatibility checks. If all pass, load the s2Member plugin.