s2Member®, a powerful (free) membership plugin for WordPress®. Protect/secure members only content with roles/capabilities.
maxlength="") adjusted in Pro Forms integrating with Authorize.Net. Transactions were sometimes failing due to character length restrictions imposed by the Authorize.Net® API. Fixed in this release. Please see this thread for further details.s2Member® -> PayPal® Options -> Payflow® Account Details.rrt="", is available for Authorize.Net® Pro Forms. For further details, please check your Dashboard under: s2Member® -> Authorize.Net® Forms -> Shortcode Attributes (Explained).ws_plugin__s2member_before_wp_remote_request.7 to 90, weeks remains at 52 max, months is up from 12 to 24 max; years increased from 1, up to 5 years max. This change impacts PayPal® Standard Buttons only, and does NOT affect Pro Forms, which operate on restrictions imposed by the PayPal® Pro API (and these are slightly different).s2Member® -> Download Options -> JW Player® Code Samples.s2Member -> ccBill Options -> DataLink Integration.400 Bad Request errors whenever s2Member's Amazon® CloudFront configuration routines for file downloads were processed. Fixed in this release.s2m-pro-extras.zip. Corrected in this release.http_build_query() related to arg_separator. This affected installations of PHP with something other than a default INI value for argument separators. Fixed in this release for better compatibility."file_storage" parameter to API Function s2member_file_download_url(). Fixed in this release..htaccess rules updated to also support older versions of the Apache 1.x series. However, we still recommend that you run s2Member® with Apache 2.0 or higher. Or, with another modern web server that's Apache-compatible, such as LiteSpeed.(s2Member) File downloads. GZIP conflicts can now been resolved for file downloads. s2Member now introduces an .htaccess rewrite rule, which is automatically installed during activation and/or a future upgrade of the s2Member® Framework plugin. These rewrite rules are installed into your root .htaccess file for WordPress (if it's writable). If your .htaccess file is not writable, you will get a warning in your s2Member -> Download Options panel.
For further details, please check your Dashboard under: s2Member -> Download Options -> Preventing GZIP Conflicts. Or see this KB article.
mod_rewrite tweaks were needed. Fixed in this release./wp-config.php using define("MEMBERSHIP_LEVELS", 1) or similar; s2Member was failing to cleanup all unused Capabilities in the wp_user_roles array, which may have been associated with previously used Membership Levels. This had no harmful side effects, but it was a bug nevertheless. Upgrading to the latest installation of s2Member automatically cleans up any Capabilities this bug left behind. New installations of s2Member will not be affected by this at all.s2Member -> General Options -> CAPTCHA Anti-Spam Security. Requires s2Member® Pro.%%response%% Replacement Code within URLs is now deprecated, in favor of the new %%s_response%%. For further details, please check your Dashboard here: s2Member -> PayPal/Authorize.Net Pro Forms -> Custom Return URLs On Success -> Replacement Codes.s2Member -> Pro Coupon Codes.COUPON-CODE-A:123; where COUPON-CODE is the valid Coupon Code that you've configured, and 123 is the affiliate's ID. If a Customer comes to your site, and they use a Coupon Code with an affiliate ID on the end of it; your affiliate will be tracked automatically by s2Member. If this Customer actually completes the sale, the referring affiliate will be credited with whatever commission your affiliate program offers. For further details, please check the examples in your Dashboard, here: s2Member -> Pro Coupon Codes -> Affiliate Coupon Codes.all Posts, but only of a specific Post Type. For further details, please check your Dashboard, under: s2Member -> Restriction Options -> Post Level Access Restrictions.%%previous%% Replacement Code for login redirections. For further details, please see this thread.s2Member -> API / Scripting -> Membership Options Page (Variables).c_ws_plugin__s2member_utils_gets::get_all_post_ids() was not properly excluding Post Type nav_menu_item. Fixed in this release.c_ws_plugin__s2member_utils_gets::get_all_child_category_ids() was not including empty terms. Fixed in this release.c_ws_plugin__s2member_utils_gets::get_all_tag_ids() was not including empty terms. Fixed in this release.direct. For further details, please see this thread.txn_type = recurring_payment_suspended_due_to_max_failed_payment to get bypassed inadvertently. Fixed in this release. For further details, please see this thread.could not find existing User ID. Fixed in this release. For further details, please see this thread.Transfer-Encoding: chunked is not possible. These improvements allow s2Member to remain compatible in edge cases. Such as when running on Litespeed and/or Windows servers; or on shared hosting platforms that have fewer resources available.copy command when running at HostGator. Fixed in this release./s2member-files/ directory (with newly updated Mod Rewrite rules in its .htaccess file) was allowing directory indexing inadvertently, on some servers. This was a low-level vulnerability, because although directory indexing was possible, protected file access was not. Fixed in this release. For further details, please see this thread.init() Hook firing an early call to c_ws_plugin__s2member_systematics::is_wp_systematic_use_page() was identified. Fixed in this release. One symptom of this bug was for Users/Members to have trouble accessing a BuddyPress registration form after having paid for Membership, under the right scenario.s2member_shorten_url(), s2member_user_downloads(), s2member_total_downloads_of(), and s2member_total_unique_downloads_of(). For further details, please check the s2Member Codex.parse_url() function. For further details, please see this PHP bug report.wp_mail() conformity, related to the reducton of "Name" <email> to just email. This release should work to further improve email deliverability in edge cases, particulary on sites running an SMTP mail plugin.unreserved chars, i.e. array ("-", ".", "_", "~") from being URL-encoded in file download URLs, maximizing compatibility with many media players, including JW Player®. In previous releases, JW Player® would randomly fail on some RTMP streams with error Stream Not Found. Fixed in this release. For further details, see RFC 3896.$bp->maintenance_mode, and other cases where bp_core_loaded is NOT fired at all./s2member-o.php file was failing to fallback on full WordPress®. Fixed in this release.mail() function in PHP 5.2 < 5.2.11 was preventing some email messages from being processed properly. Fixed in this release. For further details, see this thread and/or this PHP bug report please.mail_from values configured by other plugins, which may have resulted in delivery failures, particularly when/if a site was configured to use an external SMTP server, which MAY require that your From: header reference a specific address, one that is directly associated with your external SMTP account. Fixed in this release. In addition, please be advised that if you run an SMTP mail plugin with WordPress®, you should be sure to configure your s2Member -> General Options -> Email Configuration with a valid From: address ( i.e. one matching your SMTP configuration perhaps ). Most free SMTP servers, such as Gmail/Yahoo, require that your From: header match the email address associated with your account. Please check with your SMTP service provider before attempting to configure plugins like s2Member to use a different From: address when sending email messages. For further details, please check your Dashboad, under: s2Member -> General Options -> Email Configuration.s2Member -> API List Servers -> Automate Unsubscribe / Opt-Outs.s2Member -> General Options -> Membership Levels/Labels.eval() error inside: /includes/classes/no-cache.inc.php. Fixed in this release.template_redirect converted to wp at priority 2, giving s2Member the ability to integrate with BuddyPress v1.5 properly in all scenarios.Error#. Corrected in this release.s2Member -> General Options -> URL Shortening API (Preference)./s2member-o.php file, given limitations of the core WordPress® function plugin_basename(). A symptom of this bug was for s2Member to fail at loading its CSS/JS libraries. Fixed in this release..php files inside the /includes/menu-pages/code-samples/ directory. These files now have a .x-php extension. As an additional line of defense, a new .htaccess file with deny from all is automatically placed inside the main /s2member/includes/ directory. None of these files should be available pulicly anyway. s2Member's exsiting realpath() file scans remain in place too, which further prevents the direct execution of .php files.[s2File /] Shortcode, and for the new API Function s2member_file_download_url(). Please check your Dashboard, under: s2Member -> Download Options -> Shortcode Attributes / API Functions ( Explained ).%% for Replacement Codes were being reduced by s2Member's internationalization routines, to just single percent signs %, thereby nullifying them as valid Replacement Codes. Fixed in this release. If you installed s2Member and/or s2Member Pro v110912 - v110915 on a clean installation of WordPress®, it would be a good idea to have a quick look at your email customizations with s2Member, just to make sure your Replacement Codes have double percent signs around them ( for example, this is valid: %%registration_url%%, and this is NOT valid: %registration_url% ).stream/seek media files in the truest sense of the word over the RTMP protocol. For sites delivering protected FLV/MP4/OGG/WEBM and other streaming audio/video file types over the RTMP protocol, Amazon® CloudFront is our recommendation. Once you've successfully configured s2Member to use both Amazon® S3 and Amazon® CloudFront together, please review this section in your Dashboard: s2Member -> Download Options -> JW Player® & RTMP Protocol Examples. s2Member will automatically serve your protected files over the RTMP protocol, using an Amazon® CloudFront Streaming Distribution. In fact, s2Member can even configure all of your Amazon® S3/CloudFront Distros, ACLs, and Policies automatically; making it possible for just about anyone to stream media s2Member-protected files in real-time.[s2File /]. For further details, please check your Dashboard, under: s2Member -> Download Options -> Basic Download Restrictions.~ ) found in some encrypted data strings were triggering mod_security conflicts on sites powered by HostGator. This release corrects the problem on HostGator by stripping tildas from query strings processed by s2Member. In addition, HostGator has been very helpful in white-listing the s2Member application across its entire network to prevent interruption of service. For further details, please check this thread.s2Member -> Restriction Options -> Alternative View Protections.password input fields, anywhere/everywhere sensitive data is being configured. This helps to further safeguard various API and Payment Gateway credentials on your installation of WordPress®. In other words, some sensitive data that you configure for s2Member, will now appear with just x's xxxxxxxxxxxxxxx, instead of the actual data that you entered; ( e.g. password input fields secure this information from prying eyes ).(s2Member/s2Member Pro) Translation Support. s2Member and s2Member Pro are now equipped with support for front-end translation, using standardized WordPress® methodologies; i.e. we've implemented the use of _x(), and various other translation routines for many aspects of s2Member's front-end interfaces. For instance, things like Profile panels, Login/Registration Fields, and Pro Form integrations; as well as error messages displayed to Users/Members. Translation support for back-end admin panels provided by s2Member will come in a future release, along with more extensive translation support for front-end aspects.
Please note, this is but our first step toward internationalizing s2Member and s2Member Pro. Look for further updates/improvements to come in the future.
Like WordPress® itself, we chose to use the GNU gettext localization framework to provide localization infrastructure for s2Member®. GNU gettext is a mature, widely used framework for modular translation of software, and is the de facto standard for localization in the open source/free software realm. If you'd like to translate s2Member and/or s2Member Pro, please use the POT file found inside /s2member/includes/translations/s2member.pot, which contains all translation entries for both the s2Member Framework ( i.e. the free version ), and also for s2Member Pro.
The file: /s2member/includes/translations/s2member.pot will be updated with each new release of s2Member.
If this is your first translation of a WordPress® plugin, this article and/or this article, might be of some assistance. When you are finished translating the s2member.pot file, place your completed s2member-[locale].mo file into this directory: /wp-content/plugins/; and please feel free to share your translation with the rest of the s2Member® community.
Quick Tip: If you only need to translate the front-end of s2Member, please ignore entries in the s2member.pot file with a context matching s2member-admin. Those sections of s2Member are only seen by site Administrators; they are NOT used in s2Member's front-end integration with WordPress®. Skipping over translation entries with a context matching s2member-admin can save you time.
add_filter("c_ws_plugin__s2member_utils_tabindex_recaptcha_icons", "__return_true"); inside a /wp-content/mu-plugins/s2-hacks.php file.success="" Shortcode Attribute for s2Member Pro Forms. s2Member Pro has been improved in this regard ( i.e. s2Member Pro now makes better attempts to clear output buffers before returning plain text data with it's handlers ). In addition, calls to trim() have also been implemented as an additional line of defense against errors reported in the previous release; which were related to URLs with leading white space, returned by s2Member's core PayPal® IPN processor.status_header(xxx) ).tabindex conflicts whenever MANY Custom Registration/Profile Fields were configured together. Corrected in this release.display-disposition: PESSIMISTIC instead of OPTIMISTIC. This change prevents possible card declines from slipping through, and thereby granting a Customer access inadvertently. With the former OPTIMISTIC behavior, in rare cases when payment authorizaton at Google® Checkout took longer than 20 seconds, s2Member was giving a Customer access to the site, instead of waiting pessimistically for Google® Checkout to complete processing. The updated behavior, now set to PESSIMISTIC, prevents this from occurring. For technical details, see this article.POST vars could not be verified. This issue has been corrected in the latest release of s2Member Pro. In addition, a known bug with ClickBank® cutting off first/last names whenever special characters were part of either name, has now been side-stepped by s2Member Pro's integration with ClickBank®.Pending state during a Subscription Modification soon thereafter. This is rare, because Recurring Profiles are usually in a Pending state on the PayPal® side of things, for just a few seconds. However, in this test case, it was possible for s2Member to create a second Recurring Profile through the PayPal® Pro API, and the old one would NOT be terminated properly, because it was still in a Pending state, and unable to be terminated. This release of s2Member Pro resolves this issue and prevents this from occuring under any scenario. Customers and/or site owners testing s2Member Pro Forms will now see an error message related to pending changes, and the Customer would be asked to wait 15 minutes in this rare scenario.(s2Member) Protected Files. This version of s2Member updates the .htaccess file in your /s2member-files/ directory with mod_rewrite rules which provide additional flexibility in the way protected files are served to your Customers. With the new mod_rewrite rules, it is now possible to link directly to a protected file, avoiding the use of query string variables ( it's completely optional though ).
In other words, this update adds new functionality, it does NOT change anything that already existed. This new flexibility may come in handy for site owners serving files through media playback devices that have issues with query string variables. For further details, please check your Dashboard, under: s2Member -> Download Options -> Advanced Mod Rewrite Linkage.
Dev note. Any existing .htaccess file inside your /s2member-files/ directory will be overwritten by this release, as it should be. However, if you'd like s2Member to preserve a custom .htaccess file that you've written, please create this directory and file: /wp-content/mu-plugins/s2-hacks.php, and put this inside it: <?php add_filter("ws_plugin__s2member_preserve_files_dir_htaccess", "__return_true"); ?>. Please do this before you upgrade, if this is your intention.
(s2Member) Download Keys. There is now a Shortcode equivalent to s2Member's API function s2member_file_download_key($file, $directive). You can now do this in this WordPress® Visual Editor if you prefer: [s2Key file_download="example-file.zip" /] without needing a PHP Execution plugin.
For those of you that use the optional $directive parameter, you can do something like this: [s2Key file_download="example-file.zip" directive="ip-forever|universal" /]. For further details, please check your Dashboard, under: s2Member -> Download Options -> Advanced Download Restrictions. Or see this article in the s2Member Codex.
localhost environment, with WAMP/MAMP or something like EasyPHP. Instructions are now easier to find. For further details, please check your Dashboard, under: s2Member -> General Options -> Localhost WAMP/MAMP Developers./s2member-o.php, designed to increase the speed at which your installation of WordPress® can load these resources. The new optimized /s2member-o.php file loads only the core WordPress® framework and the s2Member JavaScript and/or CSS file, depending on which is being requested. This new file will eliminate a potential bottleneck on some WordPress® installations, which may have MANY other plugins running in concert with s2Member. It also works to further reduce CPU and memory consumption for all site owners. For further details about why this optimization is beneficial, please see this article.s2Member -> PayPal® Options -> Tax Calculations ).get_s2member_custom_fields(), designed to provide more information about Custom Registration/Profile Field configuration and values for a specific User. The API function get_user_field() remains available as well. For further details, please see this article in the s2Member Codex.%%automatic%% setting for the Signup URL in Pro Login Widgets. When/if a Customer has already paid for their Membership, the Signup URL presented in the Pro Login Widget will change dynamically, pointing a Customer to the Registration Form, instead of to your Membership Options Page. Of course, this behavior could be overridden by changing the Signup URL to something other than %%automatic%%, if you prefer.s2Member -> PayPal® Buttons -> Capability (Buy Now) Buttons. Independent Custom Capabilities are currently integrated with PayPal® Standard Buttons, PayPal® Pro Forms, and Authorize.Net® Pro Forms only. Integration with other Payment Gateways supported by s2Member Pro will come in a future release.Signup Tracking, Modification Tracking (new), and also for Capability Tracking (new). For further details, please check your Dashboard, under: s2Member -> API Tracking. These new methods are ( in addition to ) s2Member's API Notifications, which remain available. s2Member's API Notifications are intended for more advanced tracking integrations, such as a 3rd-party call through an HTTP request.current_user_is(), current_user_is_not() and the ..for_blog() alternatives, were not properly considering Super Administators on a Multisite Network installation. On a Multisite Network, the WordPress $user->has_cap() routine returns true for anything passed in on a Super Administrator account, causing s2Member's user_is API Functions to return true for Super Administrators in some cases, when it really should NOT have been. Fixed in this release. If you need to use current_user_is() against a Super Administrator, the user_is API Functions introduced by s2Member will only return true in these special cases: current_user_is("super_administrator") and/or current_user_is("administrator"). Super Administrators should always have the administrator Role, for all Blogs in the Network, and s2Member will also consider the fake Role super_administrator ( unique to s2Member ) for cases when you need to test explicity for a Super Administrator. Actually, you could also just use the WordPress core function for this: is_super_admin() ( recommended ).s2Member -> API Notifications -> Payment Notifications.COOKIEPATH, SITECOOKIEPATH, and COOKIE_DOMAIN constants from the WordPress® core, making s2Member more secure on Multisite Networks, and improving compatibility overall for sites that use one or more of these PHP Constants in their /wp-config.php file.+ sign, indicating that you wish to (Add) new Custom Capabilities instead of (Resetting) a User's Capbilities to the ones you list. Starting with this release, (Add) is now the default behavior. In other words, the + sign is no longer required, because s2Member will automatically (Add) Capabilities to any that already exist for a particular User/Member, even without the + sign (no longer required). In addition, there is now a new directive available: -all. You may now precede your list of Custom Capabilities with -all, but only if you wish to (Remove/Reset) all Custom Capabilities, and then (Add) new ones. For example: -all,music,videos, would remove any existing Custom Capabilities that may or may not already exist for a particular User/Member, and then add: music,videos. There are additional examples provided by the Payment Button/Form Generators that come with s2Member. Please check your Dashboard if you'd like to learn more.s2Member -> General Options -> Profile Modifications. The Redirection option in that section, has the side effect of manipulating the Admin Bar across the top of your site ( if enabled ), making WordPress® behave properly.s2Member -> Import/Export.CLKBANK*COM. This is mandatory for all ClickBank® integrations. ClickBank® will not approve your Products without this information on the Thank-You Page integrated with s2Member. In addition, s2Member now makes it possible to customize your Thank-You Page for ClickBank®. For further details, please check your Dashboard, und
Requires: 3.2 or higher
Compatible up to: 3.3.2
Last Updated: 2012-5-17
Downloads: 236,857
0 of 1 support threads in the last three weeks have been resolved.
Got something to say? Need help?