Changeset 1465539
- Timestamp:
- 08/01/2016 09:42:25 PM (10 years ago)
- Location:
- s2member
- Files:
-
- 451 added
- 8 edited
-
tags/160801 (added)
-
tags/160801/.htaccess (added)
-
tags/160801/changelog.md (added)
-
tags/160801/checksum.txt (added)
-
tags/160801/images (added)
-
tags/160801/images/add-icon.png (added)
-
tags/160801/images/ajax-loader.gif (added)
-
tags/160801/images/amazon-logo.png (added)
-
tags/160801/images/arrow-down-icon.png (added)
-
tags/160801/images/arrow-up-icon.png (added)
-
tags/160801/images/aweber-logo.png (added)
-
tags/160801/images/bg.png (added)
-
tags/160801/images/brand-bg.png (added)
-
tags/160801/images/brand-dark.png (added)
-
tags/160801/images/brand-donations.png (added)
-
tags/160801/images/brand-favicon.png (added)
-
tags/160801/images/brand-gradient-bg.png (added)
-
tags/160801/images/brand-icon.png (added)
-
tags/160801/images/brand-installation.png (added)
-
tags/160801/images/brand-kb.png (added)
-
tags/160801/images/brand-light.png (added)
-
tags/160801/images/brand-support.png (added)
-
tags/160801/images/brand-tools.png (added)
-
tags/160801/images/brand-updates.png (added)
-
tags/160801/images/brand-upsell-pro.png (added)
-
tags/160801/images/brand-videos.png (added)
-
tags/160801/images/brand-xlink.png (added)
-
tags/160801/images/checked.png (added)
-
tags/160801/images/delete-icon.png (added)
-
tags/160801/images/edit-icon.png (added)
-
tags/160801/images/getresponse-logo.png (added)
-
tags/160801/images/idev-logo.gif (added)
-
tags/160801/images/jwplayer-logo.png (added)
-
tags/160801/images/large-icon.png (added)
-
tags/160801/images/lock-icon.png (added)
-
tags/160801/images/logo.png (added)
-
tags/160801/images/mailchimp-stamp.png (added)
-
tags/160801/images/paypal-logo.png (added)
-
tags/160801/images/s2-powered.png (added)
-
tags/160801/images/s2___.png (added)
-
tags/160801/images/s2___bar.png (added)
-
tags/160801/images/s2___end.png (added)
-
tags/160801/images/sas-logo.png (added)
-
tags/160801/images/small-icon.png (added)
-
tags/160801/images/trans-1px.png (added)
-
tags/160801/images/trans-bg.png (added)
-
tags/160801/images/unchecked.png (added)
-
tags/160801/images/wordpress-dark.png (added)
-
tags/160801/images/wordpress-light.png (added)
-
tags/160801/includes (added)
-
tags/160801/includes/.htaccess (added)
-
tags/160801/includes/classes (added)
-
tags/160801/includes/classes/access-cap-times.inc.php (added)
-
tags/160801/includes/classes/admin-css-js-in.inc.php (added)
-
tags/160801/includes/classes/admin-css-js.inc.php (added)
-
tags/160801/includes/classes/admin-lockouts.inc.php (added)
-
tags/160801/includes/classes/admin-notices.inc.php (added)
-
tags/160801/includes/classes/auto-eots.inc.php (added)
-
tags/160801/includes/classes/aweber-e.inc.php (added)
-
tags/160801/includes/classes/aweber.inc.php (added)
-
tags/160801/includes/classes/brute-force.inc.php (added)
-
tags/160801/includes/classes/cache.inc.php (added)
-
tags/160801/includes/classes/catgs-sp.inc.php (added)
-
tags/160801/includes/classes/catgs.inc.php (added)
-
tags/160801/includes/classes/check-activation.inc.php (added)
-
tags/160801/includes/classes/constants.inc.php (added)
-
tags/160801/includes/classes/cron-jobs-in.inc.php (added)
-
tags/160801/includes/classes/cron-jobs.inc.php (added)
-
tags/160801/includes/classes/css-js-in.inc.php (added)
-
tags/160801/includes/classes/css-js-themes.inc.php (added)
-
tags/160801/includes/classes/css-js.inc.php (added)
-
tags/160801/includes/classes/custom-reg-fields-4bp.inc.php (added)
-
tags/160801/includes/classes/custom-reg-fields.inc.php (added)
-
tags/160801/includes/classes/database.inc.php (added)
-
tags/160801/includes/classes/email-configs.inc.php (added)
-
tags/160801/includes/classes/files-in.inc.php (added)
-
tags/160801/includes/classes/files.inc.php (added)
-
tags/160801/includes/classes/getresponse.inc.php (added)
-
tags/160801/includes/classes/installation.inc.php (added)
-
tags/160801/includes/classes/ip-restrictions.inc.php (added)
-
tags/160801/includes/classes/labels.inc.php (added)
-
tags/160801/includes/classes/list-server-base.inc.php (added)
-
tags/160801/includes/classes/list-servers.inc.php (added)
-
tags/160801/includes/classes/login-checks.inc.php (added)
-
tags/160801/includes/classes/login-customizations.inc.php (added)
-
tags/160801/includes/classes/login-redirects-r.inc.php (added)
-
tags/160801/includes/classes/login-redirects.inc.php (added)
-
tags/160801/includes/classes/mailchimp-o.inc.php (added)
-
tags/160801/includes/classes/mailchimp.inc.php (added)
-
tags/160801/includes/classes/menu-pages-rs.inc.php (added)
-
tags/160801/includes/classes/menu-pages-tb.inc.php (added)
-
tags/160801/includes/classes/menu-pages.inc.php (added)
-
tags/160801/includes/classes/meta-box-saves.inc.php (added)
-
tags/160801/includes/classes/meta-box-security.inc.php (added)
-
tags/160801/includes/classes/meta-boxes.inc.php (added)
-
tags/160801/includes/classes/mo-page-in.inc.php (added)
-
tags/160801/includes/classes/mo-page.inc.php (added)
-
tags/160801/includes/classes/no-cache.inc.php (added)
-
tags/160801/includes/classes/op-notices.inc.php (added)
-
tags/160801/includes/classes/option-forces.inc.php (added)
-
tags/160801/includes/classes/pages-sp.inc.php (added)
-
tags/160801/includes/classes/pages.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-billing-agreement-signup.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-cart.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-express-checkout.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-rec-profile-creation-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-send-money.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-sp-refund-reversal.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-or-rp-payment-failed-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-virtual-terminal.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in-web-accept-sp.inc.php (added)
-
tags/160801/includes/classes/paypal-notify-in.inc.php (added)
-
tags/160801/includes/classes/paypal-notify.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-no-tx-data.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-proxy-ty-email.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-proxy-x-preview.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in-web-accept-sp.inc.php (added)
-
tags/160801/includes/classes/paypal-return-in.inc.php (added)
-
tags/160801/includes/classes/paypal-return.inc.php (added)
-
tags/160801/includes/classes/paypal-utilities.inc.php (added)
-
tags/160801/includes/classes/posts-sp.inc.php (added)
-
tags/160801/includes/classes/posts.inc.php (added)
-
tags/160801/includes/classes/profile-in.inc.php (added)
-
tags/160801/includes/classes/profile-mods-4bp-in.inc.php (added)
-
tags/160801/includes/classes/profile-mods-4bp.inc.php (added)
-
tags/160801/includes/classes/profile-mods-in.inc.php (added)
-
tags/160801/includes/classes/profile-mods.inc.php (added)
-
tags/160801/includes/classes/profile.inc.php (added)
-
tags/160801/includes/classes/ptags-sp.inc.php (added)
-
tags/160801/includes/classes/ptags.inc.php (added)
-
tags/160801/includes/classes/querys.inc.php (added)
-
tags/160801/includes/classes/readmes.inc.php (added)
-
tags/160801/includes/classes/register-access.inc.php (added)
-
tags/160801/includes/classes/register-in.inc.php (added)
-
tags/160801/includes/classes/register.inc.php (added)
-
tags/160801/includes/classes/registration-times.inc.php (added)
-
tags/160801/includes/classes/registrations.inc.php (added)
-
tags/160801/includes/classes/return-templates.inc.php (added)
-
tags/160801/includes/classes/roles-caps.inc.php (added)
-
tags/160801/includes/classes/ruris-sp.inc.php (added)
-
tags/160801/includes/classes/ruris.inc.php (added)
-
tags/160801/includes/classes/s-badge-status-in.inc.php (added)
-
tags/160801/includes/classes/s-badge-status.inc.php (added)
-
tags/160801/includes/classes/sc-eots-in.inc.php (added)
-
tags/160801/includes/classes/sc-eots.inc.php (added)
-
tags/160801/includes/classes/sc-files-in.inc.php (added)
-
tags/160801/includes/classes/sc-files.inc.php (added)
-
tags/160801/includes/classes/sc-gets-in.inc.php (added)
-
tags/160801/includes/classes/sc-gets.inc.php (added)
-
tags/160801/includes/classes/sc-if-conds-in.inc.php (added)
-
tags/160801/includes/classes/sc-if-conds.inc.php (added)
-
tags/160801/includes/classes/sc-keys-in.inc.php (added)
-
tags/160801/includes/classes/sc-keys.inc.php (added)
-
tags/160801/includes/classes/sc-paypal-button-e.inc.php (added)
-
tags/160801/includes/classes/sc-paypal-button-in.inc.php (added)
-
tags/160801/includes/classes/sc-paypal-button.inc.php (added)
-
tags/160801/includes/classes/sc-profile-in.inc.php (added)
-
tags/160801/includes/classes/sc-profile.inc.php (added)
-
tags/160801/includes/classes/sc-s-badge-in.inc.php (added)
-
tags/160801/includes/classes/sc-s-badge.inc.php (added)
-
tags/160801/includes/classes/security.inc.php (added)
-
tags/160801/includes/classes/sp-access.inc.php (added)
-
tags/160801/includes/classes/ssl-in.inc.php (added)
-
tags/160801/includes/classes/ssl.inc.php (added)
-
tags/160801/includes/classes/systematics-sp.inc.php (added)
-
tags/160801/includes/classes/systematics.inc.php (added)
-
tags/160801/includes/classes/tracking-codes.inc.php (added)
-
tags/160801/includes/classes/tracking-cookies-in.inc.php (added)
-
tags/160801/includes/classes/tracking-cookies.inc.php (added)
-
tags/160801/includes/classes/translations.inc.php (added)
-
tags/160801/includes/classes/user-access.inc.php (added)
-
tags/160801/includes/classes/user-deletions.inc.php (added)
-
tags/160801/includes/classes/user-new-in.inc.php (added)
-
tags/160801/includes/classes/user-new.inc.php (added)
-
tags/160801/includes/classes/user-notes.inc.php (added)
-
tags/160801/includes/classes/user-securities.inc.php (added)
-
tags/160801/includes/classes/users-list-in.inc.php (added)
-
tags/160801/includes/classes/users-list.inc.php (added)
-
tags/160801/includes/classes/utilities.inc.php (added)
-
tags/160801/includes/classes/utils-arrays.inc.php (added)
-
tags/160801/includes/classes/utils-captchas.inc.php (added)
-
tags/160801/includes/classes/utils-conds.inc.php (added)
-
tags/160801/includes/classes/utils-css.inc.php (added)
-
tags/160801/includes/classes/utils-cur.inc.php (added)
-
tags/160801/includes/classes/utils-dirs.inc.php (added)
-
tags/160801/includes/classes/utils-encryption.inc.php (added)
-
tags/160801/includes/classes/utils-forms.inc.php (added)
-
tags/160801/includes/classes/utils-gets.inc.php (added)
-
tags/160801/includes/classes/utils-html.inc.php (added)
-
tags/160801/includes/classes/utils-logs.inc.php (added)
-
tags/160801/includes/classes/utils-s2o.inc.php (added)
-
tags/160801/includes/classes/utils-strings.inc.php (added)
-
tags/160801/includes/classes/utils-time.inc.php (added)
-
tags/160801/includes/classes/utils-urls.inc.php (added)
-
tags/160801/includes/classes/utils-users.inc.php (added)
-
tags/160801/includes/classes/wp-footer.inc.php (added)
-
tags/160801/includes/codes.inc.php (added)
-
tags/160801/includes/externals (added)
-
tags/160801/includes/externals/aweber (added)
-
tags/160801/includes/externals/aweber/aweber.php (added)
-
tags/160801/includes/externals/aweber/aweber_api.php (added)
-
tags/160801/includes/externals/aweber/aweber_collection.php (added)
-
tags/160801/includes/externals/aweber/aweber_entry.php (added)
-
tags/160801/includes/externals/aweber/aweber_entry_data_array.php (added)
-
tags/160801/includes/externals/aweber/aweber_response.php (added)
-
tags/160801/includes/externals/aweber/curl_object.php (added)
-
tags/160801/includes/externals/aweber/curl_response.php (added)
-
tags/160801/includes/externals/aweber/exceptions.php (added)
-
tags/160801/includes/externals/aweber/oauth_adapter.php (added)
-
tags/160801/includes/externals/aweber/oauth_application.php (added)
-
tags/160801/includes/externals/mailchimp (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp-o.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Campaigns.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Conversations.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Ecomm.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Exceptions.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Folders.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Gallery.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Goal.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Helper.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Lists.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Mobile.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Neapolitan.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Reports.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Templates.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Users.php (added)
-
tags/160801/includes/externals/mailchimp/Mailchimp/Vip.php (added)
-
tags/160801/includes/externals/markdown (added)
-
tags/160801/includes/externals/markdown/nc-markdown.inc.php (added)
-
tags/160801/includes/funcs.inc.php (added)
-
tags/160801/includes/functions (added)
-
tags/160801/includes/functions/api-functions.inc.php (added)
-
tags/160801/includes/functions/class-autoloader.inc.php (added)
-
tags/160801/includes/functions/deprecated.inc.php (added)
-
tags/160801/includes/functions/pluggables.inc.php (added)
-
tags/160801/includes/hooks.inc.php (added)
-
tags/160801/includes/jquery (added)
-
tags/160801/includes/jquery/.htaccess (added)
-
tags/160801/includes/jquery/jquery.json-ps (added)
-
tags/160801/includes/jquery/jquery.json-ps/jquery.json-ps-min.js (added)
-
tags/160801/includes/jquery/jquery.json-ps/jquery.json-ps.js (added)
-
tags/160801/includes/jquery/jquery.sprintf (added)
-
tags/160801/includes/jquery/jquery.sprintf/jquery.sprintf-min.js (added)
-
tags/160801/includes/jquery/jquery.sprintf/jquery.sprintf.js (added)
-
tags/160801/includes/jquery/jquery.ui-effects (added)
-
tags/160801/includes/jquery/jquery.ui-effects/jquery.ui-effects-min.js (added)
-
tags/160801/includes/jquery/jquery.ui-effects/jquery.ui-effects.js (added)
-
tags/160801/includes/menu-pages (added)
-
tags/160801/includes/menu-pages/api-ops.inc.php (added)
-
tags/160801/includes/menu-pages/code-samples (added)
-
tags/160801/includes/menu-pages/code-samples/api-mop-vars-e.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/api-mop-vars-o.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/api-mop-vars-ro.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/api-mop-vars.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/ccap-file-downloads.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-access-label.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-access-level-conditional-upgrades.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-access-level.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-can-ccaps-1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-can-ccaps-2.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-can-constants-1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-can-constants-2.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-can-full-access.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-custom.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-display-name.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-downloads-allowed-days.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-downloads-allowed-is-unlimited.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-downloads-allowed.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-downloads-currently.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-email.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-fields.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-first-name.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-id.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-ip.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-is-logged-in-as-member.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-is-logged-in.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-is-specific-content.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-last-name.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-login-counter.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-login.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-paid-registration-days-dripping.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-paid-registration-days.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-paid-registration-time.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-1-ops.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-2-ops.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-2.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-3-ops.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-profile-modification-page-url-3.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-registration-days.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-registration-ip.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-registration-time.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-subscr-gateway.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-subscr-id.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-subscr-or-wp-id.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/current-user-value-for-pp-on0-os0-on1-os1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/custom-queries-loop.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/custom-queries.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/file-download-inline-extensions.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/file-download-limit-exceeded-page-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/idev-ccap-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/idev-modification-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/idev-signup-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/idev-sp-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/is-user-logged-in.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp3-rtmp-only.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp3-rtmp.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp3.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp4-rtmp-only.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp4-rtmp.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-s2stream-mp4.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-standard-mp4.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-streaming-mp4-sca.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-streaming-mp4-webm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/jwplayer-streaming-mp4.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/level-file-downloads.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/leveln-file-downloads-allowed-days.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/leveln-file-downloads-allowed.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/leveln-label.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/login-page-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/login-welcome-page-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/logout-page-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/membership-options-page-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-api-endpoint.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-api-password.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-api-signature.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-api-username.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-business.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-endpoint.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-notify-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-pdt-identity-token.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/paypal-return-url.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/reg-email-from-email.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/reg-email-from-name.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2-conditional-supplements-1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2-conditional-supplements-2.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2-conditional-supplements-3.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2drip-example1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2member-paid-registration-time-examples.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/s2member-paid-registration-time.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sas-ccap-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sas-modification-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sas-signup-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sas-sp-tracking-code.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-can-full-access-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-can-full-access.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-is-specific-content-else-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-is-specific-content-else.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-is-specific-content-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-current-user-is-specific-content.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-is-user-logged-in-else-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-is-user-logged-in-else.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-is-user-logged-in-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-is-user-logged-in.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-nesting-else-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-nesting-else.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-nesting-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-nesting.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-1-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-1.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-2-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-2.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-3-farm.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/sc-s2-conditional-supplements-3.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/specific-category-restrictions.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/specific-page-restrictions.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/specific-post-restrictions.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/specific-tag-restrictions.x-php (added)
-
tags/160801/includes/menu-pages/code-samples/version.x-php (added)
-
tags/160801/includes/menu-pages/down-ops.inc.php (added)
-
tags/160801/includes/menu-pages/els-ops.inc.php (added)
-
tags/160801/includes/menu-pages/gen-ops.inc.php (added)
-
tags/160801/includes/menu-pages/help.inc.php (added)
-
tags/160801/includes/menu-pages/integrations.inc.php (added)
-
tags/160801/includes/menu-pages/logs.inc.php (added)
-
tags/160801/includes/menu-pages/menu-pages-min.js (added)
-
tags/160801/includes/menu-pages/menu-pages-s-min.js (added)
-
tags/160801/includes/menu-pages/menu-pages-s.css (added)
-
tags/160801/includes/menu-pages/menu-pages-s.js (added)
-
tags/160801/includes/menu-pages/menu-pages.css (added)
-
tags/160801/includes/menu-pages/menu-pages.js (added)
-
tags/160801/includes/menu-pages/mms-ops.inc.php (added)
-
tags/160801/includes/menu-pages/paypal-buttons.inc.php (added)
-
tags/160801/includes/menu-pages/paypal-ops.inc.php (added)
-
tags/160801/includes/menu-pages/res-ops.inc.php (added)
-
tags/160801/includes/menu-pages/scripting.inc.php (added)
-
tags/160801/includes/menu-pages/start.inc.php (added)
-
tags/160801/includes/menu-pages/trk-ops.inc.php (added)
-
tags/160801/includes/menu-pages/updates.inc.php (added)
-
tags/160801/includes/mime-types.ini (added)
-
tags/160801/includes/s2member-min.js (added)
-
tags/160801/includes/s2member.css (added)
-
tags/160801/includes/s2member.js (added)
-
tags/160801/includes/syscon.inc.php (added)
-
tags/160801/includes/templates (added)
-
tags/160801/includes/templates/badges (added)
-
tags/160801/includes/templates/badges/s-badge.php (added)
-
tags/160801/includes/templates/buttons (added)
-
tags/160801/includes/templates/buttons/paypal-cancellation-button.php (added)
-
tags/160801/includes/templates/buttons/paypal-ccaps-checkout-button.php (added)
-
tags/160801/includes/templates/buttons/paypal-checkout-button.php (added)
-
tags/160801/includes/templates/buttons/paypal-sp-checkout-button.php (added)
-
tags/160801/includes/templates/cfg-files (added)
-
tags/160801/includes/templates/cfg-files/s2-cross-xml.php (added)
-
tags/160801/includes/templates/cfg-files/s2member-files-no-gzip.php (added)
-
tags/160801/includes/templates/cfg-files/s2member-files.php (added)
-
tags/160801/includes/templates/cfg-files/s2member-logs.php (added)
-
tags/160801/includes/templates/cfg-files/s2o-mu-plugins.php (added)
-
tags/160801/includes/templates/cfg-files/s2o-nw-plugins.php (added)
-
tags/160801/includes/templates/cfg-files/s2o-st-plugins.php (added)
-
tags/160801/includes/templates/cfg-files/s2o-th-funcs.php (added)
-
tags/160801/includes/templates/errors (added)
-
tags/160801/includes/templates/errors/ip-restrictions.php (added)
-
tags/160801/includes/templates/options (added)
-
tags/160801/includes/templates/options/paypal-currencies.php (added)
-
tags/160801/includes/templates/options/paypal-membership-ccap-terms.php (added)
-
tags/160801/includes/templates/options/paypal-membership-regular-terms.php (added)
-
tags/160801/includes/templates/options/paypal-membership-trial-terms.php (added)
-
tags/160801/includes/templates/options/paypal-sp-hours.php (added)
-
tags/160801/includes/templates/players (added)
-
tags/160801/includes/templates/players/jwplayer-v6-rtmp-only.php (added)
-
tags/160801/includes/templates/players/jwplayer-v6-rtmp.php (added)
-
tags/160801/includes/templates/players/jwplayer-v6.php (added)
-
tags/160801/includes/templates/returns (added)
-
tags/160801/includes/templates/returns/default-return.php (added)
-
tags/160801/includes/templates/shortcodes (added)
-
tags/160801/includes/templates/shortcodes/paypal-cancellation-button-shortcode.php (added)
-
tags/160801/includes/templates/shortcodes/paypal-ccaps-checkout-button-shortcode.php (added)
-
tags/160801/includes/templates/shortcodes/paypal-checkout-button-shortcode.php (added)
-
tags/160801/includes/templates/shortcodes/paypal-sp-checkout-button-shortcode.php (added)
-
tags/160801/includes/translations (added)
-
tags/160801/includes/translations/s2member.pot (added)
-
tags/160801/includes/translations/translators.txt (added)
-
tags/160801/licensing (added)
-
tags/160801/licensing/gpl.txt (added)
-
tags/160801/licensing/license.txt (added)
-
tags/160801/readme-ms.txt (added)
-
tags/160801/readme.txt (added)
-
tags/160801/s2member-o.php (added)
-
tags/160801/s2member.php (added)
-
trunk/changelog.md (modified) (1 diff)
-
trunk/checksum.txt (modified) (1 diff)
-
trunk/includes/classes/css-js-in.inc.php (modified) (1 diff)
-
trunk/includes/classes/sc-if-conds-in.inc.php (modified) (1 diff)
-
trunk/includes/menu-pages/menu-pages.css (modified) (3 diffs)
-
trunk/includes/translations/s2member.pot (modified) (3 diffs)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/s2member.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
s2member/trunk/changelog.md
r1409975 r1465539 1 = v160801 = 2 3 - (s2Member/s2Member Pro) **WP v4.6 Compatibility.** A full round of tests was performed against this release of s2Member, s2Member Pro, and the upcoming release of WordPress v4.6. In particular, the new HTTP API needed testing, along with the new optimized loading sequence in WordPress v4.6. Our tests indicate there are no compatibility issues, and we therefore encourage all s2Member site owners to upgrade to WordPress v4.6 whenever it becomes available publicly. 4 5 - (s2Member/s2Member Pro) **Bug Fix:** Allow for `<` and `>` to work in the `[s2If php="" /]` shortcode attribute as expected. Some Visual Editors convert these into `<` and `>`, so it's necessary to interpret them as such whenever the shortcode is parsed by s2Member. 6 7 - (s2Member/s2Member Pro) **JS API:** Reducing the number of variables provided by the s2Member JavaScript API by default, and adding a new filter that allows them to all be enabled when/if desirable: `ws_plugin__s2member_js_api_constants_enable`. Props @JeffStarr for reporting. 8 1 9 = v160503 = 2 10 -
s2member/trunk/checksum.txt
r1409975 r1465539 1 87113a05b25761c597e326d071ecc301 1 f14096d918671dbdf81642b92d9982b4 -
s2member/trunk/includes/classes/css-js-in.inc.php
r1305246 r1465539 100 100 echo "\n"; // Add a line break before writing JavaScript Globals to file. 101 101 102 echo "var S2MEMBER_VERSION = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_VERSION)."',"; 103 104 echo "S2MEMBER_CURRENT_USER_LOGIN_COUNTER = ".S2MEMBER_CURRENT_USER_LOGIN_COUNTER.","; 105 106 echo "S2MEMBER_CURRENT_USER_IS_LOGGED_IN = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN) ? "true" : "false").","; 107 echo "S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER) ? "true" : "false").","; 108 109 echo "S2MEMBER_CURRENT_USER_ACCESS_LEVEL = ".S2MEMBER_CURRENT_USER_ACCESS_LEVEL.","; 110 echo "S2MEMBER_CURRENT_USER_ACCESS_LABEL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_ACCESS_LABEL)."',"; 111 112 echo "S2MEMBER_CURRENT_USER_SUBSCR_ID = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_ID)."',"; 113 echo "S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID)."',"; 114 echo "S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY)."',"; 115 echo "S2MEMBER_CURRENT_USER_CUSTOM = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_CUSTOM)."',"; 116 117 echo "S2MEMBER_CURRENT_USER_REGISTRATION_TIME = ".S2MEMBER_CURRENT_USER_REGISTRATION_TIME.","; 118 echo "S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME = ".S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME.","; 119 120 echo "S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS = ".S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS.","; 121 echo "S2MEMBER_CURRENT_USER_REGISTRATION_DAYS = ".S2MEMBER_CURRENT_USER_REGISTRATION_DAYS.","; 122 123 echo "S2MEMBER_CURRENT_USER_DISPLAY_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_DISPLAY_NAME)."',"; 124 echo "S2MEMBER_CURRENT_USER_FIRST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_FIRST_NAME)."',"; 125 echo "S2MEMBER_CURRENT_USER_LAST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LAST_NAME)."',"; 126 127 echo "S2MEMBER_CURRENT_USER_LOGIN = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LOGIN)."',"; 128 echo "S2MEMBER_CURRENT_USER_EMAIL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_EMAIL)."',"; 129 echo "S2MEMBER_CURRENT_USER_IP = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_IP)."',"; 130 echo "S2MEMBER_CURRENT_USER_REGISTRATION_IP = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_REGISTRATION_IP)."',"; 131 132 echo "S2MEMBER_CURRENT_USER_ID = ".S2MEMBER_CURRENT_USER_ID.","; 133 echo "S2MEMBER_CURRENT_USER_FIELDS = ".S2MEMBER_CURRENT_USER_FIELDS.","; 134 135 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED.","; 136 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED = ".((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? "true" : "false").","; 137 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY = ".S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY.","; 138 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS.","; 139 140 echo "S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID = ".S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID.","; 141 echo "S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID = ".S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID.","; 142 echo "S2MEMBER_LOGIN_WELCOME_PAGE_ID = ".S2MEMBER_LOGIN_WELCOME_PAGE_ID.","; 143 144 echo "S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL)."',"; 145 echo "S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL)."',"; 146 echo "S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL)."',"; 147 echo "S2MEMBER_LOGIN_WELCOME_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGIN_WELCOME_PAGE_URL)."',"; 148 echo "S2MEMBER_LOGOUT_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGOUT_PAGE_URL)."',"; 149 echo "S2MEMBER_LOGIN_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGIN_PAGE_URL)."',"; 150 151 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) 152 { 153 if(defined(($S2MEMBER_LEVELn_LABEL = "S2MEMBER_LEVEL".$n."_LABEL"))) 154 echo $S2MEMBER_LEVELn_LABEL." = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(constant($S2MEMBER_LEVELn_LABEL))."',"; 102 if(apply_filters('ws_plugin__s2member_js_api_constants_enable', false)) { 103 echo "var S2MEMBER_VERSION = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_VERSION)."',"; 104 105 echo "S2MEMBER_CURRENT_USER_LOGIN_COUNTER = ".S2MEMBER_CURRENT_USER_LOGIN_COUNTER.","; 106 107 echo "S2MEMBER_CURRENT_USER_IS_LOGGED_IN = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN) ? "true" : "false").","; 108 echo "S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER) ? "true" : "false").","; 109 110 echo "S2MEMBER_CURRENT_USER_ACCESS_LEVEL = ".S2MEMBER_CURRENT_USER_ACCESS_LEVEL.","; 111 echo "S2MEMBER_CURRENT_USER_ACCESS_LABEL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_ACCESS_LABEL)."',"; 112 113 echo "S2MEMBER_CURRENT_USER_SUBSCR_ID = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_ID)."',"; 114 echo "S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_OR_WP_ID)."',"; 115 echo "S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_SUBSCR_GATEWAY)."',"; 116 echo "S2MEMBER_CURRENT_USER_CUSTOM = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_CUSTOM)."',"; 117 118 echo "S2MEMBER_CURRENT_USER_REGISTRATION_TIME = ".S2MEMBER_CURRENT_USER_REGISTRATION_TIME.","; 119 echo "S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME = ".S2MEMBER_CURRENT_USER_PAID_REGISTRATION_TIME.","; 120 121 echo "S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS = ".S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS.","; 122 echo "S2MEMBER_CURRENT_USER_REGISTRATION_DAYS = ".S2MEMBER_CURRENT_USER_REGISTRATION_DAYS.","; 123 124 echo "S2MEMBER_CURRENT_USER_DISPLAY_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_DISPLAY_NAME)."',"; 125 echo "S2MEMBER_CURRENT_USER_FIRST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_FIRST_NAME)."',"; 126 echo "S2MEMBER_CURRENT_USER_LAST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LAST_NAME)."',"; 127 128 echo "S2MEMBER_CURRENT_USER_LOGIN = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LOGIN)."',"; 129 echo "S2MEMBER_CURRENT_USER_EMAIL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_EMAIL)."',"; 130 echo "S2MEMBER_CURRENT_USER_IP = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_IP)."',"; 131 echo "S2MEMBER_CURRENT_USER_REGISTRATION_IP = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_REGISTRATION_IP)."',"; 132 133 echo "S2MEMBER_CURRENT_USER_ID = ".S2MEMBER_CURRENT_USER_ID.","; 134 echo "S2MEMBER_CURRENT_USER_FIELDS = ".S2MEMBER_CURRENT_USER_FIELDS.","; 135 136 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED.","; 137 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED = ".((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? "true" : "false").","; 138 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY = ".S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY.","; 139 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS.","; 140 141 echo "S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID = ".S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID.","; 142 echo "S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID = ".S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_ID.","; 143 echo "S2MEMBER_LOGIN_WELCOME_PAGE_ID = ".S2MEMBER_LOGIN_WELCOME_PAGE_ID.","; 144 145 echo "S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL)."',"; 146 echo "S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL)."',"; 147 echo "S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_MEMBERSHIP_OPTIONS_PAGE_URL)."',"; 148 echo "S2MEMBER_LOGIN_WELCOME_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGIN_WELCOME_PAGE_URL)."',"; 149 echo "S2MEMBER_LOGOUT_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGOUT_PAGE_URL)."',"; 150 echo "S2MEMBER_LOGIN_PAGE_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_LOGIN_PAGE_URL)."',"; 151 152 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) 153 { 154 if(defined(($S2MEMBER_LEVELn_LABEL = "S2MEMBER_LEVEL".$n."_LABEL"))) 155 echo $S2MEMBER_LEVELn_LABEL." = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(constant($S2MEMBER_LEVELn_LABEL))."',"; 156 } 157 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) 158 { 159 if(defined(($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED = "S2MEMBER_LEVEL".$n."_FILE_DOWNLOADS_ALLOWED"))) 160 echo $S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED." = ".constant($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED).","; 161 } 162 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++) 163 { 164 if(defined(($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS = "S2MEMBER_LEVEL".$n."_FILE_DOWNLOADS_ALLOWED_DAYS"))) 165 echo $S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS." = ".constant($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS).","; 166 } 167 echo "S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS)."',"; 168 169 echo "S2MEMBER_REG_EMAIL_FROM_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_REG_EMAIL_FROM_NAME)."',"; 170 echo "S2MEMBER_REG_EMAIL_FROM_EMAIL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_REG_EMAIL_FROM_EMAIL)."',"; 171 172 echo "S2MEMBER_PAYPAL_NOTIFY_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_NOTIFY_URL)."',"; 173 echo "S2MEMBER_PAYPAL_RETURN_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_RETURN_URL)."',"; 174 175 echo "S2MEMBER_PAYPAL_BUSINESS = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_BUSINESS)."',"; 176 echo "S2MEMBER_PAYPAL_ENDPOINT = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_ENDPOINT)."',"; 177 echo "S2MEMBER_PAYPAL_API_ENDPOINT = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_API_ENDPOINT)."',"; 178 179 echo "S2MEMBER_VALUE_FOR_PP_INV = Math.round (new Date ().getTime ()) + '~".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_IP)."',"; 180 echo "S2MEMBER_VALUE_FOR_PP_INV_GEN = s2member_value_for_pp_inv_gen = function(){ var invoice = '', formatSeed = function(seed, reqWidth) { seed = parseInt(seed, 10).toString (16); if (reqWidth < seed.length) return seed.slice (seed.length - reqWidth); else if (reqWidth > seed.length) return Array(1 + (reqWidth - seed.length)).join ('0') + seed; return seed; }; if (typeof S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED === 'undefined') S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED = Math.floor (Math.random () * 0x75bcd15); S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED++; invoice = formatSeed(parseInt(new Date ().getTime () / 1000, 10), 8); invoice += formatSeed(S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED, 5); invoice += '~' + S2MEMBER_CURRENT_USER_IP; return invoice; },"; 181 182 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0)."',"; 183 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0)."',"; 184 185 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1)."',"; 186 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1)."';"; 187 188 } else { // Expose only what is needed by the s2Member application itself; for the current user. 189 echo "var S2MEMBER_CURRENT_USER_IS_LOGGED_IN = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN) ? "true" : "false").","; 190 echo "S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER = ".((S2MEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER) ? "true" : "false").","; 191 192 echo "S2MEMBER_CURRENT_USER_FIRST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_FIRST_NAME)."',"; 193 echo "S2MEMBER_CURRENT_USER_LAST_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LAST_NAME)."',"; 194 195 echo "S2MEMBER_CURRENT_USER_LOGIN = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_LOGIN)."',"; 196 echo "S2MEMBER_CURRENT_USER_EMAIL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_EMAIL)."',"; 197 198 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED.","; 199 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED = ".((S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? "true" : "false").","; 200 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY = ".S2MEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY.","; 201 echo "S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS = ".S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS.";"; 155 202 } 156 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)157 {158 if(defined(($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED = "S2MEMBER_LEVEL".$n."_FILE_DOWNLOADS_ALLOWED")))159 echo $S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED." = ".constant($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED).",";160 }161 for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)162 {163 if(defined(($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS = "S2MEMBER_LEVEL".$n."_FILE_DOWNLOADS_ALLOWED_DAYS")))164 echo $S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS." = ".constant($S2MEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS).",";165 }166 echo "S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS)."',";167 168 echo "S2MEMBER_REG_EMAIL_FROM_NAME = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_REG_EMAIL_FROM_NAME)."',";169 echo "S2MEMBER_REG_EMAIL_FROM_EMAIL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_REG_EMAIL_FROM_EMAIL)."',";170 171 echo "S2MEMBER_PAYPAL_NOTIFY_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_NOTIFY_URL)."',";172 echo "S2MEMBER_PAYPAL_RETURN_URL = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_RETURN_URL)."',";173 174 echo "S2MEMBER_PAYPAL_BUSINESS = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_BUSINESS)."',";175 echo "S2MEMBER_PAYPAL_ENDPOINT = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_ENDPOINT)."',";176 echo "S2MEMBER_PAYPAL_API_ENDPOINT = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_PAYPAL_API_ENDPOINT)."',";177 178 echo "S2MEMBER_VALUE_FOR_PP_INV = Math.round (new Date ().getTime ()) + '~".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_IP)."',";179 echo "S2MEMBER_VALUE_FOR_PP_INV_GEN = s2member_value_for_pp_inv_gen = function(){ var invoice = '', formatSeed = function(seed, reqWidth) { seed = parseInt(seed, 10).toString (16); if (reqWidth < seed.length) return seed.slice (seed.length - reqWidth); else if (reqWidth > seed.length) return Array(1 + (reqWidth - seed.length)).join ('0') + seed; return seed; }; if (typeof S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED === 'undefined') S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED = Math.floor (Math.random () * 0x75bcd15); S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED++; invoice = formatSeed(parseInt(new Date ().getTime () / 1000, 10), 8); invoice += formatSeed(S2MEMBER_VALUE_FOR_PP_INV_GEN_UNIQUE_SEED, 5); invoice += '~' + S2MEMBER_CURRENT_USER_IP; return invoice; },";180 181 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON0)."',";182 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS0)."',";183 184 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_ON1)."',";185 echo "S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1 = '".c_ws_plugin__s2member_utils_strings::esc_js_sq(S2MEMBER_CURRENT_USER_VALUE_FOR_PP_OS1)."';";186 187 203 $u = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]; 188 204 $i = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]."/images"; -
s2member/trunk/includes/classes/sc-if-conds-in.inc.php
r1305246 r1465539 95 95 if($sc_conds_allow_arbitrary_php && isset($attr['php'])) 96 96 { 97 $attr['php'] = str_replace(array('<', '>', '&'), array('<', '>', '&'), $attr['php']); 98 97 99 if(($condition_succeeded = c_ws_plugin__s2member_sc_if_conds_in::evl($attr['php']))) 98 100 $condition_content = isset($content_if) ? $content_if : $content; -
s2member/trunk/includes/menu-pages/menu-pages.css
r1305246 r1465539 410 410 { 411 411 font-size : 150%; 412 font-weight : bold;412 font-weight : 600; 413 413 background : #5F7523; 414 414 } … … 545 545 { 546 546 display : inline-block; 547 margin : 0 10px 0 10px;547 margin : 0 5px 0 10px; 548 548 text-decoration : none; 549 549 } … … 740 740 padding : 10px; 741 741 font-size : 150%; 742 font-weight : bold;742 font-weight : 600; 743 743 line-height : 1em; 744 744 color : #DDDDDD; -
s2member/trunk/includes/translations/s2member.pot
r1409975 r1465539 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: 160 503\n"5 "Project-Id-Version: 160801\n" 6 6 "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n" 7 "POT-Creation-Date: 2016-0 5-04 00:53:25+00:00\n"7 "POT-Creation-Date: 2016-08-01 21:27:20+00:00\n" 8 8 "MIME-Version: 1.0\n" 9 9 "Content-Type: text/plain; charset=UTF-8\n" … … 912 912 #: s2member/includes/classes/profile-in.inc.php:76 913 913 #: s2member/includes/classes/sc-profile-in.inc.php:94 914 #: s2member-pro/s2member-pro/includes/classes/login-widget.inc.php:130915 914 msgctxt "s2member-front" 916 915 msgid "Username" … … 4211 4210 msgstr "" 4212 4211 4212 #: s2member-pro/s2member-pro/includes/classes/login-widget.inc.php:130 4213 msgctxt "s2member-front" 4214 msgid "Username or Email" 4215 msgstr "" 4216 4213 4217 #: s2member-pro/s2member-pro/includes/classes/login-widget.inc.php:135 4214 4218 msgctxt "s2member-front" -
s2member/trunk/readme.txt
r1409975 r1465539 1 1 === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) === 2 2 3 Version: 160 5034 Stable tag: 160 5033 Version: 160801 4 Stable tag: 160801 5 5 6 6 SSL Compatible: yes … … 18 18 ClickBank® Compatible: yes w/s2Member® Pro 19 19 20 Tested up to: 4. 5-alpha20 Tested up to: 4.6 21 21 Requires at least: 4.2 22 22 23 23 Requires PHP: 5.2+ 24 Tested up to PHP: 7.0 24 Tested up to PHP: 7.0.8 25 25 26 26 Copyright: © 2009 WebSharks, Inc. 27 27 License: GNU General Public License v2 or later. 28 Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek, KristineDS 28 Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek, KristineDS, renzms 29 29 30 30 Author: s2Member® / WebSharks, Inc. … … 170 170 == Upgrade Notice == 171 171 172 = v160 503=172 = v160801 = 173 173 174 174 (Maintenance Release) Upgrade immediately. 175 175 176 176 == Changelog == 177 178 = v160801 = 179 180 - (s2Member/s2Member Pro) **WP v4.6 Compatibility.** A full round of tests was performed against this release of s2Member, s2Member Pro, and the upcoming release of WordPress v4.6. In particular, the new HTTP API needed testing, along with the new optimized loading sequence in WordPress v4.6. Our tests indicate there are no compatibility issues, and we therefore encourage all s2Member site owners to upgrade to WordPress v4.6 whenever it becomes available publicly. 181 182 - (s2Member/s2Member Pro) **Bug Fix:** Allow for `<` and `>` to work in the `[s2If php="" /]` shortcode attribute as expected. Some Visual Editors convert these into `<` and `>`, so it's necessary to interpret them as such whenever the shortcode is parsed by s2Member. 183 184 - (s2Member/s2Member Pro) **JS API:** Reducing the number of variables provided by the s2Member JavaScript API by default, and adding a new filter that allows them to all be enabled when/if desirable: `ws_plugin__s2member_js_api_constants_enable`. Props @JeffStarr for reporting. 177 185 178 186 = v160503 = … … 268 276 - (s2Member/s2Member Pro) **Getting Help:** This release adds a new menu page titled, "Getting Help w/ s2Member". This new section of your Dashboard provides quick & easy access to s2Member KB articles, suggestions, and our tech support department (for pro customers). Props @patdumond @raamdev. See also [this GitHub issue](https://github.com/websharks/s2member/issues/814). 269 277 270 = v151210 =271 272 - (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.273 274 - (s2Member Pro) **New Feature! EOT Renewal/Reminder Email Notifications:** This release adds a long-awaited feature which allows you to configure & send EOT Renewal/Reminder Email notifications to your customers; to let them know their account with you will expire soon.275 276 It's possible to configure one or more notifications, each with a different set of recipients, and a different subject and message body. Notifications can be sent out X days before the EOT occurs, _the day_ of the EOT, or X days after the EOT has already occurred; e.g., to encourage renewals.277 278 See: **Dashboard → s2Member → Stripe Options → EOT Renewal/Reminder Email(s)**279 _Also works with PayPal Pro, Authorize.Net, and ClickBank._280 281 Props @clavaque @KTS915 @raamdev @patdumond @kristineds @pagelab @chronicelite @csexplorer17 @radven, and all of our great supporters. See [this GitHub issue](https://github.com/websharks/s2member/issues/122#issuecomment-161531763).282 283 - (s2Member/s2Member Pro) **Cleanup:** This release improves the list of Other Gateways; moving deprecated payment gateways to the bottom of the list and improving the display of the list overall. Props @kristineds @clavaque. For further details, see [this GitHub issue](https://github.com/websharks/s2member/issues/715).284 285 - (s2Member/s2Member Pro) **Bug Fix:** This release corrects an "Insecure Content Warning" that may have appeared in certain portions of the s2Member Dashboard panels whenever you accessed your Dashboard over the `https` protocol. The issue was seen in Google Chrome and it was simply a `<form>` tag that referenced the s2Member mailing list. This is now hidden by default if you access the Dashboard over SSL, in order to avoid this warning. Props @patdumond for reporting. Props @renzms for fixing. See also [this GitHub issue](https://github.com/websharks/s2member/issues/678) if you'd like additional details.286 287 - (s2Member Pro) **Stripe Locale:** This release adjusts the Stripe overlay so that it will automatically display in the language associated with a visitor's country. This was accomplished by setting the Stripe Checkout variable `locale: 'auto'` as suggested in [this GitHub issue](https://github.com/websharks/s2member/issues/728). Props @renzms288 289 - (s2Member Pro) **Stripe Bug Fix:** This release improves the way Stripe Image Branding and Stripe Statement Descriptions are applied whenever you intentionally leave them empty. It also changes the default value of Stripe Image Branding to an empty string; which will tell Stripe to use the account-level default value that you configured in your Stripe Dashboard in favor of that which you configure with s2Member. The choice is still yours, but this release sets what others have told us are better default values. See also [this GitHub issue](https://github.com/websharks/s2member/issues/666) if you'd like additional details.290 291 - (s2Member Pro) **Stripe Enhancement:** This release makes it possible to configure the Stripe "Remember Me" functionality with s2Member; i.e., it is now possible to turn this on/off if you so desire. See also [this GitHub issue](https://github.com/websharks/s2member/issues/357) for details.292 293 - (s2Member Pro) **Stripe Enhancement:** This release makes it possible for you to tell Stripe to collect a customer's full Billing Address and/or full Shipping Address. See [this GitHub issue](https://github.com/websharks/s2member/issues/667) for additional details.294 295 - (s2Member/s2Member Pro) **UI Clarity:** This release improves the way the New User Email Notification panel behaves whenever you also have Custom Passwords enabled with s2Member. The New User Email Notification is only sent when Custom Passwords are off, so this panel should disable itself whenever that is the case. Fixed in this release. Props @raamdev See also: [this GitHub issue](https://github.com/websharks/s2member/issues/739) if you'd like additional details.296 297 - (s2Member/s2Member Pro) **Bug Fix:** This release resolves a minor issue for developers running Vagrant and VVV with symlink plugins. Props @magbicaleman ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/717) for further details.298 299 - (s2Member Pro) **Conflict Resolution:** This release resolves a conflict with the WP Full Stripe plugin and any other plugins that already load an existing copy of the Stripe SDK at runtime; in concert with s2Member Pro. See [this GitHub issue](https://github.com/websharks/s2member/issues/750) if you'd like additional details.300 301 - (s2Member/s2Member Pro) **New Log File:** This release of s2Member adds a new log file that keeps track of all automatic EOTs that occur through the underlying CRON job. The new log file is named: `auto-eot-system.log` and you can learn more about this file and view it from: **Dashboard → s2Member → Log Files (Debug) → Log Viewer**. Props @raamdev ~ See [this GitHub issue](https://github.com/websharks/s2member/issues/759) if you'd like additional details.302 303 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release resolves a problem in the `[s2Member-List /]` shortcode whenever it is configured to search Custom Fields generated with s2Member. Props @patdumond @renzms. See [this GitHub issue](https://github.com/websharks/s2member/issues/765) if you'd like additional details.304 305 - (s2Member Pro) **Stripe Enhancement:** This release updates s2Member's Stripe integration so that any Buy Now transaction spawns a Stripe popup with the amount and full description filled within the popup itself as well. Props @raamdev. See [this GitHub issue](https://github.com/websharks/s2member/issues/749) for further details.306 307 - (s2Member/s2Member Pro) **WP v4.3 Compat.** This release addresses a minor conflict between functionality provided by s2Member and that of the WordPress core itself. Whenever you change a user's password by editing their account, you can choose to send them an email about this change (or not). Since WordPress v4.3, the WordPress core will _also_ send a more vague email to notify the user of a password change, which is not customizable. This release disables that default email notification in favor of the more helpful and customizable email message that can be sent by s2Member. Simply tick the "Reset Password & Resend New User Email Notification" checkbox whenever you are editing a user. Props @patdumond for reporting. See also [this GitHub issue](https://github.com/websharks/s2member/issues/777) if you'd like additional details.308 309 - (s2Member/s2Member Pro) **PayPal Compat.** This release resolves a conflict between s2Member and a nasty bug at PayPal.com that came to light recently. In some cases, customers reported that clicking the "Continue" button at PayPal.com simply reloaded the page and gave no response. We found that this was attributed to a bug on the PayPal side (see [792](https://github.com/websharks/s2member/issues/792)). To work around this bug, we are using a new default value for the `ns="1"` shortcode attribute in PayPal Pro-Forms and PayPal Buttons. The new default value is `ns="0"`, which seems to work around this bug for the time being. Props @patdumond @raamdev for reporting and testing this fix. See also [full report here](https://github.com/websharks/s2member/issues/792).310 311 - `ns="0"` (**new default**) = prompt for a shipping address, but do not require one312 - `ns="1"` (old default) = do not prompt for a shipping address whatsoever313 314 See also: **Dashboard → s2Member → PayPal Pro-Forms → PayPal Shortcode Attributes (Explained)**315 316 - (s2Member/s2Member Pro) **Getting Started:** The old Quick Start Guide was renamed to "Getting Started" in this release. It was also cleaned up and improved a bit; i.e., brought up-to-date. In addition, there is a new welcome message for first-time users of the software that invites them to read over the Getting Started page before they begin. Props @raamdev. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/655).317 318 - (s2Member Pro) **Stripe Bug Fix:** This release corrects a problem with Stripe refund and chargeback notification handling. s2Member Pro will now receive and handle Stripe refund and/or chargeback events (through your existing Webhook) as expected.319 320 See: **Dashboard → s2Member → Stripe Options → Automatic EOT Behavior** for options that allow you to control the way in which s2Member should respond whenever a refund is processed, or when a dispute (chargeback) occurs at Stripe.321 322 Props @ElizWS and @tubiz w/ AffiliateWP. See also [this GitHub issue](https://github.com/websharks/s2member/issues/706).323 324 - (s2Member Pro) **`[s2Member-List /]`** Added the ability to search usermeta data too. For instance, you can now search `first_name`, `last_name`, `nickname`, `description`, `s2member_subscr_id`, `s2member_custom`, etc, etc. See [this GitHub issue](https://github.com/websharks/s2member/issues/596).325 326 _**Note:** The `first_name`, `last_name`, and `nickname` columns are now a part of the default value for the `search_columns=""` attribute in the `[s2Member-List /]` shortcode. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/596). Props @patdumond for her ideas._327 328 - (s2Member Pro) **`[s2Member-List /]`** There are some new `orderby=""` options. You may now choose to order the list by: `first_name`, `last_name`, or `nickname`.329 330 - (s2Member Pro) **`[s2Member-List /]`** It is now possible to search through s2Member Custom Registration/Profile Fields that may contain an array of values; i.e., you can now search _any_ Custom Registration/Profile Field in s2Member. For instance, if a field is designed to accept multiple selections, or you provide a set of multiple checkbox options. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/555).331 332 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Meta fields that contained a timestamp were being displayed by the `date_i18n()` function in WP core. However, the time offset calculation was wrong; i.e., not a match to the local time configured by your installation of WordPress. Fixed in this release.333 334 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** Minor formatting corrections for replacement codes made available for the `link_*=""` attributes in the `[s2Member-List /]` shortcode.335 336 - (s2Member Pro) **`[s2Member-List /]`:** It is now possible to search for an exact match by surrounding your search query with double quotes; e.g., `"john doe"` (in quotes, for an exact match), instead of the default behavior, which is `*john doe*` behind-the-scenes; i.e., a fuzzy match.337 338 - (s2Member Pro) **`[s2Member-List /]`:** Several behind-the-scenes performance enhancements.339 340 - (s2Member/s2Member Pro) **PHP 7 Compat.** This release of s2Member removes its use of the `/e` modifier in calls to `preg_replace()`, which was deprecated in PHP 5.5 and has been removed in PHP 7. Props @bridgeport. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/415).341 342 = v150925 =343 344 - (s2Member/s2Member Pro) **WP v4.3 Compat.** This release corrects a minor backward compatibility issue with versions of WordPress before v4.3, and for installations of s2Member that still use the `%%user_pass%%` Replacement Code in their New User Email notification. See [this GitHub issue](https://github.com/websharks/s2member/issues/710) if you'd like additional details.345 346 - (s2Member/s2Member Pro) **WP v4.3.1 Compat.** This release corrects a compatibility issue whenever you run s2Member together with WordPress v4.3.1+. Note that WordPress v4.3 made changes to the `wp_new_user_notification()` function in WordPress core. Then, a later release of WP v4.3.1 changed it again; breaking compatibility in both instances. This release brings s2Member up-to-date with WordPress v4.3.1 and preserves backward compatibility with WordPress v4.3, as well for versions prior. Props @bridgeport. See [this GitHub issue](https://github.com/websharks/s2member/issues/732) if you'd like additional details.347 348 - (s2Member/s2Member Pro) **Bug Fix**: Fixed a bug where the s2Member CSS and JS was not loaded on the Dashboard when WordPress was installed in a subfolder that was different from the Home URL. Props @magbicaleman. See [Issue #696](https://github.com/websharks/s2member/pull/696).349 350 - (s2Member Pro) **Bug Fix:** This release corrects a security issue related to the Pro Upgrade Wizard for s2Member Pro being displayed without checking `current_user_can('update_plugins')`. Resolved. Props @raamdev for identifying this and working to implement the fix. See [this GitHub issue](https://github.com/websharks/s2member/issues/697) if you'd like additional details.351 352 - (s2Member Pro) **Bug Fix:** This release corrects a bug impacting the `wp_lostpassword_url()` function whenever s2Member is configured to run in a Multisite Network. The link is now adjusted automatically so that a lost password is always recovered from the current site, not the Main Site in the network. Props to @raamdev See also: [this GitHub issue](https://github.com/websharks/s2member/issues/711) for further details.353 354 - (s2Member Pro) **Bug Fix:** Stripe Pro-Forms presented after a long block of text on a page, were not returning to the proper hash location after a Coupon Code was applied. Fixed in this release. Props @raamdev See also: [this GitHub issue](https://github.com/websharks/s2member/issues/730) if you'd like additional details.355 356 - (s2Member/s2Member Pro) **SSL Edge Case:** This release corrects an SSL + Protected File Download problem that may have occurred in rare circumstances. Reproducing this required that you have a user with an ISP that changed their IP address whenever they accessed a site over `https` instead of `http`, and that an s2Member Protected File Download link is presented on an HTTPS page. And, that you were using s2Member's own force-SSL filters. A symptom of this issue was to receive mysterious reports of a user getting a 503 error when trying to access a protected file. Resolved in this release. See [this GitHub issue](https://github.com/websharks/s2member/issues/702) if you'd like additional details.357 358 = v150827 =359 360 - (s2Member/s2Member Pro) **WordPress v4.3 Compat./Bug Fix** This release of s2Member alters the way New User Notification Emails are sent, and in how they should be formatted in WordPress v4.3+.361 362 The New User Notification Email is now sent (to a user) only if they did _not_ set a Custom Password during their registration; i.e., only if they need this email to set their password for the first time. In short, s2Member now follows the same approach used by WordPress v4.3+.363 364 See: **Dashboard → s2Member → General Options → Email Configuration → New User Notification**365 366 So the purpose of this particular email has changed just a bit; i.e., the New User Notification Email. Instead of it being sent to every new user, it is only sent to users who need it for the purpose of obtaining a password which grants them access to their account for the first time.367 368 **Upgrading to WordPress v4.3 and the latest release of s2Member?**369 370 Please review this section of your Dashboard carefully:371 **s2Member → General Options → Email Configuration → New User Notification**372 373 - If you are using s2Member to customize the New User Notification email, you should try to update this message so that it includes the new `%%wp_set_pass_url%%` Replacement Code.374 375 See also: [this comment at GitHub about the recent changes, with screenshots](https://github.com/websharks/s2member/issues/689#issuecomment-134563230).376 377 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release corrects a bug in the `[s2Member-List /]` shortcode that was causing `levels="0"` not to work, and in fact any use of a `0` in the `levels=""` attribute was broken. See [this GitHub issue](https://github.com/websharks/s2member/issues/663) if you'd like additional details. Props to @patdumond for reproducing, reporting and testing this issue.378 379 - (s2Member/s2Member Pro) **Emoji Bug Fix:** This release corrects a bug in s2Member's SSL filters that can be applied with the Post/Page Custom Field `s2member_force_ssl` being set to `yes`. A symptom of this bug was to see an SSL warning in the latest release of WordPress related to the new Emoji library. See [this GitHub issue](https://github.com/websharks/s2member/issues/674) if you'd like additional details.380 381 = v150722 =382 383 - (s2Member/s2Member Pro) **New Shortcode:** This release introduces a powerful new shortcode which allows you to display a user's EOT (End of Term) or NPT (next payment time) in a WordPress Post or Page. For further details and some minor limitations, please see [`[s2Eot /]` Shortcode Documentation](http://s2member.com/kb-article/s2eot-shortcode-documentation/). Props to @raamdev and @patdumond for their strategic assistance, feedback, and ideas for this shortcode.384 385 - (s2Member/s2Member Pro) **Strong Password Enforcement:** This release of s2Member makes it possible for a site owner to enforce strong passwords; i.e., to require a minimum number of characters and a specific strength (i.e., mix of required characters). The default minimum length in s2Member changed from `6` to `8` characters minimum. The default password strength minimum is `good`. To customize, please see: **s2Member → General Options → Registration/Profile Fields & Options**. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/573) if you'd like additional details. Props to @patdumond and @KTS915 for ideas and feedback.386 387 - (s2Member Pro) **reCAPTCHA v2 Upgrade:** This release of s2Member comes with an updated reCAPTCHA™ integration in order to take advantage of No CAPTCHA reCAPTCHA and other enhancements provided by the v2 update on Google's end.388 389 _Existing s2Member installations that already have an old set of reCAPTCHA v1 Public/Private keys will continue to function as before. However, it is suggested that you configure reCATPCHA v2 keys in order to put s2Member Pro-Forms into the v2 mode moving forward. Please see: **Dashboard → s2Member → General Options → CAPTCHA Anti-Spam Security** where you will find instructions._390 391 - (s2Member/s2Member Pro) **PayPal IPN Compat.** This release addresses a problem with IPN connection failures that result in a 500 Internal Server Error on the PayPal side; occurring whenever s2Member attempts to verify IPN data. Please see: [this GitHub issue](https://github.com/websharks/s2member/issues/610) if you'd like additional details.392 393 - (s2Member Pro) **Stripe Bug Fix:** This release corrects a bug in Stripe Pro-Form Checkout Options, where a Free Registration option could cause other paid Checkout Options to result in a checkout error under the right conditions. See [this GitHub issue](https://github.com/websharks/s2member/issues/569) for further details.394 395 - (s2Member/s2Member) **Google Analytics Compat.** This release automatically preserves `utc_` variables that are used by Google Analytics whenever a Membership Options Page redirection occurs. i.e., if a visitor comes to the site with `utc_` variables and is redirected to the Membership Options Page, because the content they were trying to access is protected; the `utc_` variables are preserved during this redirection, and delivered as part of the Membership Options Page redirect.396 397 - (s2Member Pro) **Authorize.Net Endpoint Filters:** This release adds two new WordPress Filters (i.e., Hooks) that can be used by developers in certain rare cases. Hook names are `ws_plugin__s2member_pro_authnet_aim_endpoint_url` and `ws_plugin__s2member_pro_authnet_arb_endpoint_url `. See [this GitHub issue](https://github.com/websharks/s2member/issues/575#issuecomment-104077606) if you'd like additional details and a quick example of use.398 399 - (s2Member Pro) **Authorize.Net AIM Compat.:** This release addresses a compatibility issue that came to light recently, which was actually attributed to a bug in s2Member Pro that has been sliding through unnoticed until now. The format for an expiration date sent to the Authorize.Net AIM API should be `MM-YYYY`. The format for ARB API calls is `YYYY-MM`. s2Member Pro was sending `YYYY-MM` to both APIs. Fixed in this release. Props to @raamdev for investigating this. See also [this GitHub issue](https://github.com/websharks/s2member/issues/576) if you'd like additional details.400 401 - (s2Member Pro) **`[s2Member-List /]` Bug:** This release corrects an issue in the `[s2Member-List /]` shortcode that was preventing the `display_name` DB column from being searchable. This release also adds the `display_name` to the list of default `search_columns=""` that are considered by the `[s2Member-List /]` shortcode. Props to @patdumond for researching this. See [this GitHub issue](https://github.com/websharks/s2member/issues/578) for further details.402 403 - (s2Member/s2Member Pro) **Bug Fix:** This release corrects an issue where s2Member would fail to subscribe customers to configured mailing list IDs whenever an existing customer is upgrading and you have the Double Opt-In Checkbox turned off entirely. Fixed. See [this GitHub issue](https://github.com/websharks/s2member/issues/581) if you would like additional details.404 405 - (s2Member Pro) **Stripe Bug Fix:** This release corrects a bug in s2Member's Stripe Pro-Forms, related to having multiple Checkout Options. The bug resulted in a missing error message whenever one of the Checkout Options was submitted incorrectly, and also resulted in the default Checkout Option being magically selected instead of the one that a customer was working with. Props to @patdumond and @bryanthankins. See: [this GitHub issue](https://github.com/websharks/s2member/issues/586) if you'd like additional details.406 407 - (s2Member/s2Member Pro) **Bug Fix:** This release fixes an issue where the s2Drip shortcode was requiring PHP 5.3+; this fix allows the shortcode to work properly with PHP 5.2+.408 409 - (s2Member Pro) **Compat.** A call to `WP_Widget` was updated to support WordPress v4.3+. See [this GitHub issue](https://github.com/websharks/s2member/issues/607) if you'd like additional details.410 411 - (s2Member/s2Member Pro) **Bug Fix:** This release corrects a bug in the s2Member IPN handler that processes full refunds. In your s2Member EOT Behavior options, if you choose the `refunds,partial_refunds,reversals` option it results in a full refund not being processed; i.e., an EOT does not occur as expected. s2Member was incorrectly recording that your configured preference was not to process refunds whenever a full refund occurs. Fixed in this release. See also [this GitHub issue](https://github.com/websharks/s2member/issues/614) if you'd like additional details.412 413 - (s2Member/s2Member Pro) **Wikpedia Links:** Updated throughout to use an `https://` protocol. Now the Wikipedia default. This impacts mostly the back-end of s2Member which references a few articles at the Wikipedia. However, it also impacts Pro-Forms where a link is provided to users with more information about Security Codes that appear on the back of credit cards. See [this GitHub issue](https://github.com/websharks/s2member/issues/617) if you'd like additional details.414 415 - (s2Member/s2Member Pro) **qTranslate X Compat.** This release includes a minor update that improves compatibility with qTranslate X. See [this GitHub issue](https://github.com/websharks/s2member/issues/618) if you'd like additional details.416 417 - (s2Member/s2Member Pro) **AWeber Compat.** This release resolves an issue with AWeber rejecting subscribers that have IPv6 addresses. Until such time as AWeber adds support for IPv6 addresses, s2Member will simply send an empty IP address whenever it encounters an IPv6 address. This behavior was requested by the AWeber team. See [this GitHub issue](https://github.com/websharks/s2member/issues/611) if you'd like additional details.418 419 - (s2Member Pro) **Coupon Code Expiration:** This release improves the way coupons that are set to expire are handled. Instead of expiring at midnight the day before the configured expiration date, coupon codes now expire at the end of the configured day. As always, all times are calculated from GMT/UTC time, the same as WordPress itself. In short, if you set a coupon to expire Dec 5th, the coupon will now expire Dec 5th, at the end of the day (UTC time). The old behavior, was for the coupon to expire Dec 4th at midnight UTC time, which led to confusion in many cases. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/612) if you'd like additional details.420 421 - (s2Member/s2Member Pro) **IPN Proxy Key Bug:** This release corrects a minor bug in s2Member's IPN Proxy Key generation that was causing problems in just a few edge cases. This bug may have impacted your site if you had a domain name being accessed with a `Host:` header containing mixed caSe. Not normal behavior, but there are a few edge cases where it's important for s2Member to get this right in order to avoid an "Unable to verify $_POST vars." error. See [this GitHub issue](https://github.com/websharks/s2member/issues/590) if you'd like additional details.422 423 - (s2Member/s2Member Pro) **Password Reset Layout:** This release improves the layout/CSS applied to the WordPress password reset form in order to better separate the password strength indicator from the instructions provided by WordPress. See [this GitHub issue](https://github.com/websharks/s2member/issues/585) if you'd like additional details. Props to @patdumond, @BugRat, and @raamdev for discovering this.424 425 - (s2Member) **Back-end UI Quick Links:** This release resolves an overlap in the display of the quick links atop each menu page in the Dashboard. This bug impacted the lite version only. If you'd like additional details, please see [this GitHub issue](https://github.com/websharks/s2member/issues/589). Props to @raamdev for discovering this.426 427 - (s2Member Pro) **Username Compat.:** This release updates s2Member's own validation against usernames in order to bring it inline with the most recent versions of WordPress core; i.e., we now allow whitespace in usernames. This release was updated so that usernames are validated only by the WordPress core function: `sanitize_user()`, which does allow single whitespace characters in usernames. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/566) if you'd like additional details.428 429 - (s2Member Pro) **Message After Modification:** This release improves the default response that a customer who is upgrading/downgrading receives after having completed checkout using a Pro-Form. Instead of asking the customer to "log back in", s2Member simply says, "Thank you. Your account has been updated.". There is no reason for a customer to log back in; i.e., this is not necessary, and that message was leading to some confusion. Note also that with Pro-Forms you can provide a Custom Return URL on Success using the `success=""` shortcode attribute. Thus, this message is simply a default. We suggest that you customize in all cases. See [this GitHub issue](https://github.com/websharks/s2member/issues/580) if you'd like additional details. Props to @patdumond for reporting this important issue.430 431 - (s2Member Pro) **Documentation Update:** This releases improves the documentation for the `rrt=""` shortcode attribute in all Pro-Form implementations; e.g., PayPal Pro-Forms, Authorize.Net Pro-Forms, and Stripe Pro-Forms. The `rrt=""` attribute can be somewhat misleading, so we added the following: **IMPORTANT NOTE:** If you don't offer a trial period; i.e., the first charge occurs when a customer completes checkout, you should set this to the number of additional payments, and NOT to the total number. For instance, if I want to charge the customer a total of 3 times, and one of those charges occurs when they complete checkout, I set should this to `rrt="2"` for a grand total of three all together.432 433 - (s2Member/s2Member Pro) **Bug Fix:** This release corrects an issue with EOT calculations under a specific circumstance. If a customer registered on the site for free, and later made a purchase that included a free trial period, and they canceled within the trial period, the EOT was being incorrectly calculated based on the user's WordPress registration time instead of being based on the time that their trial began. This resulted in an immediate EOT (due to it being a date in the past), instead of being set to the end of the trial. Fixed in this release.434 435 - (s2Member/s2Member Pro) **Documentation Update:** This release replaces a specific symbol that has been used throughout the Dashboard with s2Member. Instead of the `⥱` symbol we are now using the more compatible `→` symbol instead. This is used to indicate a Dashboard path.436 437 - (s2Member/s2Member) **E_NOTICE:** Several `E_NOTICE`-level warnings were resolved in this release. Note that `E_NOTICE`-level warnings only show up in `WP_DEBUG` mode for developers, but they are frustrating nonetheless. Props to @raamdev for reporting some of these.438 439 - (s2Member Pro) **Bug Fix:** PayPal Pro-Forms selling to customers who choose a Maestro/Solo card may experience problems in some circumstances. GBP currency conversion was partially failing due to a change in the underlying API that s2Member calls upon. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/605) if you'd like additional details.440 441 - (s2Member/s2Member Pro) **Opt-In Bug Fix:** This release of s2Member corrects a bug that was causing members to be automatically unsubscribed from your mailing list whenever you choose to hide the Double Opt-In Box. A customer updating their profile later without this box, was being unsubscribed inadvertently. Fixed in this release. Props to @raamdev for his work in reproducing and reporting this bug. See [this GitHub issue](https://github.com/websharks/s2member/issues/633) if you'd like additional details.442 443 - (s2Member Pro) **Stripe Bug Workaround:** It came to our attention that some Stripe API calls that simply update the `name`, `address_state`, `address_zip`, and `address_country` for tax reporting purposes were resulting in a card decline even after Stripe approved the transaction. We suspect this is a bug in the Stripe API. It has been reported to Stripe. For now though, we are working around this issue by failing gracefully in such a scenario. This simple update is there only for tax reporting purposes, so if it fails it does not warrant a refusal to complete the transaction.m It is simply logged by s2Member for analysis. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/535) where a deeper investigation is underway for our next maintenance release.444 445 - (s2Member Pro) **Stripe API Update:** This release of s2Member takes advantage of the latest Stripe API version. Moving from `v2015-02-18` to `v2015-07-13`. See [this article at Stripe](https://stripe.com/docs/upgrades#api-changelog) if you'd like additional details. _Remember that s2Member's API calls to Stripe will always use this specific version of their API (`v2015-07-13`), even if your Stripe account is configured with an older default version. This is to ensure that s2Member works as intended for all site owners._446 447 - (s2Member Pro) **Stripe Prepaid Cards:** This release makes it possible for site owners to reject prepaid cards if they choose to do so. Stripe has the ability to determine if a credit/debit card is backed by a prepaid funding source. If it is, you can choose to reject or allow this type of card. The default behavior is to accept it. See: **Dashboard → s2Member → Stripe Options → Account Details → Reject or Allow Prepaid Cards** for further details. See also: [this GiHub issue](https://github.com/websharks/s2member/issues/505) if you'd like more information. Props to @raamdev for determining the feasibility of this feature.448 449 - (s2Member Pro) **Bug Fix:** `Notice: Undefined index: password1` in `paypal-registration-in.inc.php`. This was another `E_NOTICE`-level warning that was cleaned up in this release. Props to @raamdev See [this GitHub issue](https://github.com/websharks/s2member/issues/634) if you'd like additional details.450 451 - (s2Member Pro) **Stripe Bug Fix:** This release fixes a bug in Stripe Pro-Forms where upon a customer applying a 100%-off coupon code, the customer is met with an erroneous error regarding a missing state/zipcode--and only when a site owner has defined a tax configuration file also. Fixed in this release. See also [this GitHub issue](https://github.com/websharks/s2member/issues/548) if you'd like additional details.452 453 - (s2Member Pro) **Automatic Update Compat.:** [Automatic Background Updates](https://codex.wordpress.org/Configuring_Automatic_Background_Updates) were introduced in WordPress v3.7 and while by default only WordPress core updates are updated automatically in this special way, it's still possible to enable automatic background updates for everything; including themes and plugins. For instance, some web hosting companies enable automatic/background plugin updates in an attempt to improve overall security.454 455 That's fine. However, when s2Member Pro is installed, it works as an add-on for the s2Member Framework plugin, and any update of the Framework plugin requires a manual or interactive update of the Pro add-on. Otherwise your site is left with only a portion of its original functionality until you complete the update. For that reason, starting with this release of s2Member, automatic background updates of the s2Member Framework are disabled automatically when you are also running s2Member Pro.456 457 Props to @raamdev for addressing this issue and providing the source code which made this enhancement possible. See also [this GitHub issue](https://github.com/websharks/s2member/issues/523) if you'd like additional details.458 459 _See also: [Instructions for Updating s2Member and s2Member Pro](https://s2member.com/updating/)_460 - (s2Member Pro) **`[s2Member-Login /]` Shortcode:** This release includes a new shortcode that allows you to display a login box on any Post/Page that you create with WordPress. It can also double as a way to display a user's profile summary; including their avatar. See: [`[s2Member-Login /]` Shortcode Documentation](http://s2member.com/kb-article/s2member-login-shortcode-documentation/) for further details.461 462 - (s2Member Pro) **`[s2Member-Summary /]` Shortcode:** This release includes a new shortcode that allows you to display a user's profile summary (including avatar) in any Post/Page that you create with WordPress. It can also double as a way to display a login box in case the user is not logged in yet (optional). See: [`[s2Member-Summary /]` Shortcode Documentation](http://s2member.com/kb-article/s2member-summary-shortcode-documentation/) for further details. Props to @patdumond for her ideas and feedback on this new feature.463 464 - (s2Member/s2Member Pro) **Avatar via Shortcode:** The `[s2Get /]` shortcode has been updated in support of user avatars, to make it easier for site owners to include a member's avatar in any WordPress Post/Page of their choosing; e.g., `[s2Get user_field="avatar" size="96" /]` produces an `<img />` tag with the user's avatar. See also: [`[s2Get /]` Shortcode Documentation](http://s2member.com/kb-article/s2get-shortcode-documentation/) for further details/examples. Props to @patdumond for her ideas and feedback on this feature.465 466 - (s2Member/s2Member Pro) **`[s2Get date_format="" /]` Now Possible:** The `[s2Get /]` shortcode was updated to support date formats whenever the `user_field=""` key that you want to display ends with `_time`; e.g., `[s2Get user_field="s2member_last_payment_time" date_format="M jS, Y, g:i a T" /]` produces: `Mar 5th, 2022, 12:00 am UTC` instead of a UNIX timestamp. See also: [`[s2Get /]` Shortcode Documentation](http://s2member.com/kb-article/s2get-shortcode-documentation/) for further details/examples, including PHP equivalents.467 468 _See also: [New `[s2Eot /]` Shortcode](http://s2member.com/kb-article/s2eot-shortcode-documentation/) with EOT-specific date/time functionality enhancements._469 470 - (s2Member/s2Member Pro) **WordPress v4.3-beta Compat.:** This release was tested against WordPress v4.2+, including WordPress v4.3-beta. A few minor adjustments were made to improve support in the upcoming release of WordPress v4.3 based on beta releases made available to us.471 472 - (s2Member/s2Member Pro) **goo.gl URL Shortener:** This release addresses a problem with the Google URL Shortening API. Google now requires that you configure an API key. Otherwise, API calls will fail often and s2Member reverts back to tinyURL instead. Starting with this release, if you enable the Google URL Shortener, you will need to supply an API key for it to work as expected. See: **s2Member → General Options → URL Shortening Service Preference** for further details. See also [this GitHub issue](https://github.com/websharks/s2member/issues/587) if you'd like additional details. Props to @bridgeport for reproducing and reporting this bug.473 474 - (s2Member/s2Member Pro) **Bitly URL Shortener:** This release adds support for Bitly to be used as your preferred URL Shortening service. Bitly has become very popular for many reasons. One reason to choose Bitly over others is that you can configure your Bitly account to use a custom domain of your choosing; i.e., shortened URLs may contain [a domain that you configure](https://bitly.com/a/settings/advanced). See: **s2Member → General Options → URL Shortening Service Preference** for further details.475 476 - (s2Member Pro) **Other Gateways:** Starting with this release, when you install the s2Member Pro add-on for the first time, there are two Pro gateways enabled by default. When you first install s2Member Pro (first-time users only), both the Stripe and PayPal Pro payment gateways will already be enabled for you. This is to help site owners avoid confusion. In addition, first-time users will be greeted by s2Member Pro with a reminder to configure your "Other Gateways". See also [this GitHub issue](https://github.com/websharks/s2member/issues/528) if you'd like additional details. Props to @raamdev for identifying this usability issue and providing feedback/suggestions.477 478 - (s2Member Pro) **Stats Collection:** Starting w/ this release of s2Member Pro, we are now collecting important/anonymous server details that will help us better understand which versions of PHP/MySQL are most widely used by site owners running the pro version of our software. For further details, please see: [What anonymous information does s2Member Pro report to WebSharks, and why?](http://s2member.com/kb-article/what-information-does-s2member-pro-report-to-websharks/)479 480 = v150311 =481 482 - (s2Member/s2Member) **Bug Fix:** The list of users in the WordPress Dashboard was going blank in a particular scenario where a search was attempted in concert with a sortable s2Member column. Fixed in this release. Props to @bridgeport for finding this. See also [this GitHub issue](https://github.com/websharks/s2member/issues/496#issuecomment-76821470) if you'd like technical details.483 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release resolves an issue with pagination in the `[s2Member-List /]` shortcode after recent changes in the `WP_User_Query` class. See [this GitHub issue](https://github.com/websharks/s2member/issues/493) if you'd like additional details.484 - (s2Member Pro) **Remote Operations API (Bug Fix):** If a remote API call was made to find a user by `user_login`, and that username was all numeric, the `WP_User` class treated it like a user ID instead of as an actual username. Resolved in this release by calling `new WP_User(0, [user login])` as the second argument to the constructor. Thereby forcing `WP_User` to consider it a username. See also [this GitHub issue](https://github.com/websharks/s2member/issues/498) if you'd like technical details.485 - (s2Member Pro) **Stripe Bug Fix:** Stripe Pro-Forms for Specific Post/Page Access should not disable the email address field for logged-in users. Resolved in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/500) if you'd like technical details.486 - (s2Member Pro) **Stripe Pro-Forms:** This release corrects a bug first introduced in the last release that prevented custom templates for Stripe Pro-Forms from working as intended. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/510) if you'd like additional details.487 - (s2Member Pro) **Bug Fix for Gift/Redemption Codes:** This release of s2Member corrects a bug that impacted the generation of Gift/Redemption Codes whenever they were sold with Specific Post/Page Access. See also [this GitHub issue](https://github.com/websharks/s2member/issues/512) if you'd like additional details.488 489 = v150225 =490 491 - (s2Member Pro) **Accept Bitcoin via Stripe!** This release of s2Member Pro comes integrated with the latest version of the Stripe API, where it is now possible to accept Bitcoin right along with most major credit cards—made possible by [Stripe's latest update to support Bitcoin](https://stripe.com/bitcoin). It's as easy as flipping a switch :-) Please see: `Dashboard → s2Member Pro → Stripe Options → Account Details → Accept Bitcoin`. Referencing [this GitHub issue](https://github.com/websharks/s2member/issues/482); i.e., the original feature request.492 - (s2Member Pro) **Stripe API Upgrade:** This release of s2Member Pro updates the Stripe SDK and Stripe API to the latest version (Stripe API version: `2015-02-18`). In addition, this release forces a specific version of the Stripe API in all communication between Stripe and s2Member; thereby avoiding a scenario where the Stripe API could be updated again in the future, in ways that might prevent s2Member Pro from operating as intended. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/484) if you'd like technical details. Props to @pauloz1890 for reporting this.493 - (s2Member/s2Member Pro) **Security Badge Sizes:** This release of s2Member corrects an issue with the `[s2Member-Security-Badge v="1" /]` shortcode. If you set `v="2"` or `v="3"`, the dimensions were miscalculated. Props to @Mizagorn See [this GitHub issue](https://github.com/websharks/s2member/pull/466) if you'd like additional details.494 - (s2Member Pro) **Bug Fix:** Opt-in checkbox state (and some custom fields) were losing state when switching from one type of Pro Form to another—whenever Pro Form Checkout Options were in use. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/468) if you'd like additional details. Props to @zenzoidman for finding this!495 - (s2Member) **Bug Fix:** Alt. View Restrictions stopped working on navigation menu items in the previous release of s2Member v150203 due to a default argument value being misinterpreted by a sub-routine. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/475) if you'd like further details.496 - (s2Member/s2Member Pro) **Bug Fix:** Some site owners reported "paying" customers being left with a Membership Level of `0` at seemingly random times that may have occurred only once in every 300+ transactions. The issue was related to a regular expression being performed against encrypted binary data with an ungreedy `?` in the regex pattern. Certain characters in the binary output would be lost when specific character sequences were encountered; resulting in a random failure to decrypt cookies set by s2Member. In short, the underlying cause was identified and corrected in this release. Thanks to all who reported this. Our appreciation goes out to everyone who helped to test for this elusive bug. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/397) if you'd like additional technical details.497 - (s2Member/s2Member Pro) **UI Enhancements:** This release includes an enhanced UI, along with many subtle improvements to the inline documentation/instructions provided within the WordPress Dashboard.498 - (s2Member Pro) **Retiring Google Wallet:** Google [announced that they are retiring Google Wallet for Digital Goods](https://support.google.com/wallet/business/answer/6107573). s2Member Pro continues to support Google Wallet, but this release updates the "Other Gateways" section in the Dashboard to make it clear that Google Wallet will not be supported in future versions of s2Member Pro. In fact, Google Wallet for Digital Goods will [close March 2nd, 2015](https://support.google.com/wallet/business/answer/6107573).499 - (s2Member/s2Member) **bbPress Bug Fix:** This release resolves a security issue when running a Multisite Network with bbPress + s2Member. Level 0 access was being granted by the bbPress plugin across all sites in a network. That behavior is fine for bbPress, but is unexpected when s2Member is running in a Network environment. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/465) if you'd like additional details. **IMPORTANT TIP:** If you experienced this issue, please read through [these important comments](https://github.com/websharks/s2member/issues/465#issuecomment-76039842) about bbPress Participants needing to be removed from child blogs in order to fully rid yourself of this problem; i.e., once you complete the update of s2Member, you should [also read this please](https://github.com/websharks/s2member/issues/465#issuecomment-76039842).500 - (s2Member/s2Member Pro) **404 / Alt. Views Bug Fix:** This release of s2Member corrects a rare issue where the Membership Options Page (or other pages) can produce random 404 errors whenever s2Member's Alt. View Restrictions are enabled, and there is another plugin installed which runs a DB query using the `WP_Query` class _before_ the Main WP Query has been run. Resolved through the use of `->is_main_query()` instead of tracking it statically via `$initial_query`. See also [this GitHub issue](https://github.com/websharks/s2member/issues/481) if you'd like additional technical details.501 502 = v150203 =503 504 - (s2Member Pro) **Gift/Redemption Codes:** This release adds a powerful new shortcode: `[s2Member-Gift-Codes /]`. This makes it easy to generate and sell access to gift codes (i.e., gift certificates) and/or to a list of redemption codes. For instance, where a single team leader might like to purchase multiple accounts they can distribute to others on a team, or in a group. Video demo here: http://s2member.com/r/giftredemption-codes-video/ ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/386) for additional technical details.505 - (s2Member Pro) **User-Specific Coupon Codes:** This release of s2Member makes it possible to configure Pro-Form Coupon Codes that are connected (i.e., only valid) when entered by specific Users/Members who are logged into the site. See: `Dashboard → s2Member → Pro Coupon Codes`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/403) for additional technical details.506 - (s2Member Pro) **Coupon Code Max Uses:** This release of s2Member Pro adds the ability to set a maximum number of times that a Coupon Code can be used. This makes it easy to create Coupon Codes that are designed to be used only one time, for instance; or for X number of times. After a Coupon Code is used X number of times, it will expire automatically. See: `Dashboard → s2Member → Pro Coupon Codes`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/285) for technical details.507 - (s2Member Pro) **Coupon Code Usage Tracking:** This release of s2Member Pro adds the ability to track the number of times that each of your Coupon Codes have been used. It is also possible to alter the number of uses, and/or set a maximum number of uses. See: `Dashboard → s2Member → Pro Coupon Codes`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/285) for technical details.508 - (s2Member Pro) **Coupon Code Active/Expires Dates:** This release of s2Member Pro makes it possible to establish both a start and end time for each of your Pro Coupon Codes. In previous versions of s2Member, it was only possible to set an expiration date. You can now create Coupon Codes that will become active at some point in the future automatically. See: `Dashboard → s2Member → Pro Coupon Codes`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/285) for technical details.509 - (s2Member Pro) **Coupon Code UI Enhancements:** This release of s2Member Pro comes with an updated UI that makes it easier to manage your Pro Coupon Codes. See: `Dashboard → s2Member → Pro Coupon Codes`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/285) for technical details.510 - (s2Member Pro) **Store Coupon Codes for Each User:** s2Member Pro now stores a list of all coupon codes that a customer has used on your site. See: `Dashboard → Users → Choose User [Edit]`. Scrolling down to the set of s2-related fields will reveal a new list of coupon codes. This list will be filled for new customers only; i.e., s2Member does not have this data for past purchases; only for new customers that you acquire after updating to the latest release. See also [this GitHub issue](https://github.com/websharks/s2member/issues/462) if you'd additional details.511 - (s2Member/s2Member Pro) **EOT Custom Value:** In this release of s2Member, the `get_user_option('s2member_custom')` value is preserved after an EOT has taken place, making it possible for site owners to continue to read this value (along with any custom pipe-delimited values they have injected there), even after an EOT has taken place. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/449).512 - (s2Member/s2Member Pro) **JW Player Broken Links:** This release corrects some broken links referenced by the inline documentation for s2Member in the WordPress Dashboard. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/448) if you'd like further details.513 - (s2Member/s2Member Pro) **Security:** This release of s2Member checks for the existence of the WordPress PHP Constant: `WPINC` instead of looking for the less reliable `$_SERVER['SCRIPT_FILENAME']`. Some site owners reported this was causing trouble in a localhost environment during testing, or when running s2Member on some hosts that are missing the `SCRIPT_FILENAME` environment variable; e.g., some Windows servers. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/454) if you'd like additional details.514 - (s2Member Pro) **Advanced Import/Export Compat:** This release of s2Member Pro includes compatibility and a bug fix when running on WordPress v4.1+. Three PHP notices during importation, along with some quirky behavior associated with the `role` CSV column have been corrected. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/455) for technical details.515 - (s2Member Pro) **`[s2Member-List /]` Bug Fix:** This release resolves an issue with pagination in the `[s2Member-List /]` shortcode after recent improvements to the search functionality. See [this GitHub issue](https://github.com/websharks/s2member/issues/155#issuecomment-69403120) if you'd like additional details.516 - (s2Member Pro) **`[s2Member-List /]` Enhancement:** This release improves search functionality in the `[s2Member-List /]` shortcode, making it so that all searches default to `*[query]*`; i.e., are automatically wrapped by wildcards. If a user enters a wildcard explicitly (or a double quote), this default behavior is overridden and the search query is taken as given in such a scenario. This makes the search functionality easier for end-users to work with, since it no longer requires an exact match. Default behavior is now a fuzzy match. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/394) if you'd like further details.517 - (s2Member/s2Member Pro) **AWS v4 Authentication:** This release of s2Member adds AWS v4 Authentication support for Amazon Web Service Regions that only accept the AWS v4 authentication scheme. If you had trouble in the recent past when attempting to integrate s2Member with S3 Buckets (or with CloudFront) in regions outside the USA, this release should resolve those issues for you. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/440) if you'd like additional technical details.518 - (s2Member Pro) **Bug Fix:** Pro-Form Checkout Options not working in all cases whenever they are used together with Free Registration Forms. Resolved in this release.519 520 = v150102 =521 522 - (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.523 - (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.524 - (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!525 - (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.526 - (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.527 - (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).528 - (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.529 - (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.530 - (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.531 - (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.532 - (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.533 534 _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._535 - (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.536 - (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.537 - (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.538 - (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.539 - (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.540 541 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).542 - (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.543 - (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.544 - (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.545 - (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.546 547 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.548 549 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.550 551 - (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.552 553 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.554 555 - (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`.556 557 - (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.558 559 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.560 - (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.561 562 = v141007 =563 564 - (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).565 - (s2Member/s2Member Pro) **AWeber API Integration:** This release of s2Member adds a new option for site owners using AWeber. It is now possible to integrate with the new [s2Member App](http://www.s2member.com/r/aweber-api-key) for AWeber; i.e., via the AWeber API instead of via email-based communication. For further details, please see: `Dashboard → s2Member → API / List Servers → AWeber Integration`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/303) if you'd like additional details.566 - (s2Member/s2Member Pro) **Bug Fix:** The EOT Behavior option for `refunds,partial_refunds,reversals` was not being accepted by s2Member. Fixed in this release. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/345) if you'd like further details.567 - (s2Member/s2Member Pro) **MailChimp API Wrapper:** This release of s2Member comes with an updated API wrapper class for MailChimp integration. No change in functionality, just a smoother, slightly faster, and more bug-free interaction with the MailChimp API. Please see [this GitHub issue](https://github.com/websharks/s2member/issues/303) if you'd like further details regarding this improvement. See also: [the official MailChimp API class](https://bitbucket.org/mailchimp/mailchimp-api-php); i.e., what s2Member has been updated to in this release.568 - (s2Member/s2Member Pro) **URI Restrictions caSe-insensitive (Security Fix)** This release of s2Member changes the way URI Restrictions work. All URI Restrictions are now caSe-insensitive (i.e., `/some-path/` is now the same as `/some-Path/`), allowing s2Member to automatically pick up different variations used in attempts to exploit the behavior of certain slugs within the WordPress core. You can also change this new default behavior, if you prefer. Please see: `Dashboard → s2Member → Restriction Options → URI Restrictions`. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/354) for the details about why this was changed in the most recent copy of s2Member.569 - (s2Member/s2Member) **AWeber Role-Based Emails:** In this release we're adding a note in the s2Member UI regarding role-based email addresses being rejected by AWeber. AWeber does not allow role-based emails like: `admin@` or `webmaster@` to be subscribed. It is suggested that you enable s2Member's config. option: "Force Personal Emails" if you intend to integrate with AWeber. Please see: `Dashboard → s2Member → General Options → Registration/Profile Fields`; where you can tell s2Member for force personal email addresses when someone registers on-site. This will prevent a potential subscriber from entering something like `[email protected]` as their email address.570 571 278 For older Changelog entries, please see the [changelog.md](https://github.com/websharks/s2member/blob/master/s2member/changelog.md) file. -
s2member/trunk/s2member.php
r1409975 r1465539 20 20 /* -- This section for WordPress parsing. ------------------------------------------------------------------------------ 21 21 22 Version: 160 50323 Stable tag: 160 50322 Version: 160801 23 Stable tag: 160801 24 24 25 25 SSL Compatible: yes … … 36 36 ClickBank Compatible: yes w/s2Member Pro 37 37 38 Tested up to: 4. 5-alpha38 Tested up to: 4.6 39 39 Requires at least: 4.2 40 40 41 41 Requires PHP: 5.2+ 42 Tested up to PHP: 7.0 42 Tested up to PHP: 7.0.8 43 43 44 44 Copyright: © 2009 WebSharks, Inc. … … 82 82 */ 83 83 if(!defined('WS_PLUGIN__S2MEMBER_VERSION')) 84 define('WS_PLUGIN__S2MEMBER_VERSION', '160 503' /* !#distro-version#! */);84 define('WS_PLUGIN__S2MEMBER_VERSION', '160801' /* !#distro-version#! */); 85 85 /** 86 86 * Minimum PHP version required to run s2Member. … … 112 112 */ 113 113 if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION')) 114 define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '160 503' /* !#distro-version#! */);114 define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '160801' /* !#distro-version#! */); 115 115 /* 116 116 Several compatibility checks.
Note: See TracChangeset
for help on using the changeset viewer.