Changelog for s2Member v3.2 ( the free version )-
New Feature. s2Member now provides a small panel ( aka: `
meta box` ) inside your Post/Page editing stations. This
new panel makes it possible for you to restrict access to a Post/Page, or even a Custom Post Type (
on-the-fly ) without having to go back to your General Options panel all the time. Starting with s2Member v3.2+, you can also tell s2Member to require Custom Capabilities on a per Post/Page basis. So now, s2Member ( if you prefer ) can handle Custom Capabilities for you! Whenever you edit a Post/Page, you can tell s2Member to require certain Custom Capabilities that you type in, using comma delimited format. In other words, you will need to type in some of the trigger words that you used whenever you created your PayPal® Pro Forms and/or Standard PayPal® Buttons. This way your Members will have the proper Capabilities to view different kinds of content that you offer. All of this is optional.
-
Compatibility. s2Member, and also the s2Member Pro Module; have both been tested under WordPress® 3.0.1. Everything looks good - no conflicts.
-
Multisite Networking. s2Member, and also the s2Member Pro Module; are now compatible with WordPress® 3.0+ Multisite Networking, formerly known as
WPMU. In addition, preliminary ( experimental ) support for Multisite Blog Farms has also been implemented. If you\'re running a Multisite Blog Farm ( i.e. you offer Blogs ), please contact s2Member.com for further details.
-
A new panel is made available under `
s2Member -> Multisite ( Config )`, whenever
Multisite Networking is enabled. This is where a Super Administrator ( operating on the Main Site ) can decide to offer Membership only, or Membership with Blog creation as well. In other words, your site could ALSO offer a Customer access to create a Blog of their own, where a Customer becomes a "Member" of your ( Main Site ), and also a Blog Owner/Administrator. With s2Member installed ( network wide ), each of your Customers could offer Membership too, using a single installation of the s2Member plugin ( which is a great selling point! ). We refer to this as a Multisite Blog Farm.
-
Bug fix. The s2Member Framework has been updated to fully support installations of WordPress® that have two different URLs configured in their `
WP Settings -> General` section. This bug was related to `
bloginfo("url")` vs. `
bloginfo("wpurl")`. In previous versions of s2Member, a major symptom of this bug was an unexpected redirection to the Home Page after checkout, instead of a formal response to the Customer. This bug was only affecting installations of WordPress® that were using a different Site Address URL, inside their `
Settings -> General` panel. This has been resolved in s2Member v3.2+.
-
Bug fix. An issue related to protected File Downloads, where a site owner was using sub-directories to guard specific files from specific Levels, was sometimes resulting in an invalid redirection to the Membership Options Page, with a query string indicating `21`, ( i.e. `
s2member_level_req=21` ). This bug has been corrected in s2Member v3.2+.
-
Videos. Over six hours of detailed
Video Tutorials are now available for s2Member. Additional videos will be released over the coming days and weeks ahead; covering more advanced topics, marketing tips, and an in-depth look at the
s2Member Pro Module, plus Multisite Networking; which is also evolving rapidly.
-
API Behavior. s2Member's API Notification for EOT/Deletions, has been changed slightly. In previous versions, the EOT/Deletion notification was only processed for a ( paid ) Member, who reached the end of their term, OR ... if a ( paid ) Member was manually deleted by an Administrator through the Dashboard. Starting with s2Member v3.2+, an EOT/Deletion Notification will be processed, EVEN if the account is NOT currently associated with a ( paid ) Member. In other words, starting with s2Member v3.2, if you delete an account manually ( through your WP Dashboard ) this will ALWAYS trigger s2Member's EOT/Deletion Notification; no matter what. For further details, check your Dashboard: `
s2Member -> API Notifications -> EOT/Deletion`.
-
Bug fix. Login message filter ( `
login_messages` ) applied to registrations with a custom password entered during the registration process. `Registration complete. Please log in.` This Hook/Filter was renamed to just ( `
login_message` ) with the release of WordPress® 3.0.1. Very minor issue, but this has been corrected with s2Member v3.2+ - in support of WordPress® 3.0.1+.
-
Feature. Custom Registration Fields for s2Member, now support an Un-editable Mode ( in other words, if you want specific fields to be
un-editable after registration ), you can wrap those Custom Fields inside
^carets^. In your WP Dashboard, see: `
s2Member -> General Options -> Custom Fields` for additional documentation and examples.
-
Profile Editing Panel. The Stand-Alone Profile Modification Page ( provided by s2Member ); now includes a password confirmation field ( in other words, a NEW password must be typed in twice as a confirmation ).
-
BuddyPress/MailChimp. The first/last name fields were NOT being populated into the MailChimp® integration with BuddyPress installed. This has been resolved with s2Member v3.2+.
-
Logging routines. s2Member's logging routines have been updated to support Multisite Networking. When Multisite Networking is enabled, s2Member will keep separate log files for each domain/path.
-
Validation. The JavaScript validation routine for the `
wp-login.php` file, now includes the Username/Email Address to help Customers avoid confusion.
-
Feature. Integration of Custom Fields into the `
Users -> Add New` panel. An account can now be created manually, with all details included initially. As opposed to the old way, where you had to go back and Edit the account manually, after the initial creation.
-
Feature. s2Member now exposes its `
s2member_custom` field inside the admin panel. You can go to your `
Dashboard -> Users` panel, and click Edit next to a Member. The Custom String is now editable. You're NOT likely to need this, but s2Member makes it editable anyway. Possibly for advanced usage by a developer.
-
Feature. Integration of Custom Fields into `
/wp-signup.php` has been completed. This is only for Multisite Networking; where s2Member is being used in a Blog Farm environment.
-
PayPal®. In the admin panel, a few subtle references to "PayPal®" have been changed to just "Paid"; leaving room for additional gateway integration possibilities that are coming soon.
-
Feature. In the admin panel, there is now a shortcut link inside the s2Member menu panel; which leads a Site Administrator to `
Add A Member` using manual entry.
-
Compatibility. On a Multisite Network; s2Member is NOT compatible with configurations that use a different Dashboard Blog; other than the Main Site. This is NOT a good idea to try this with s2Member; it opens the door for all sorts of issues. s2Member now forces your Dashboard Blog to the Main Site for sanity/compatibility/security.
-
Compatibility. Added support for this Conditional Tag `
current_user_can_for_blog( $blog_id, $capability )` in support of Multisite Networking integration. As well as `
$user->for_blog( $blog_id )`.
-
Compatibility. Updated function calls with `
usermeta` to `
user_option`; including `
get_user_option()`, `
update_user_option()`, `
delete_user_option()`. The `
usermeta` functions were deprecated as of WP 3.0. The new `
get_user_option()` function is also Multisite compatible. If you're a developer, you can take a look at s2Member's source code for examples. Or read
this article.
-
Important Database Change. In previous versions of s2Member, data about each Member was stored inside the `
wp_usermeta` table automatically; and it STILL is. However, the `
meta_key` names are now prefixed with `
$wpdb->prefix`, which on most installations of WordPress® this translates to `
wp_` ( e.g. `
wp_s2member_subscr_id`, `
wp_s2member_custom`, etc, etc. ). s2Member will automatically update your database tables upon re-activation. However, if you're a developer, and you've been using `
get_usermeta($user_id, "s2member_subscr_id")`, you should now use `
get_user_option("s2member_subscr_id", $user_id)` instead. No need to specify the `
wp_` prefix in that function, it's handled internally by WordPress® through the `
get_user_option()` call. For more information, please read
this article.
-
Bug fix. s2Member's PayPal® IPN processor was logging `
Skipping Auto-EOT for now ...`, with Refund/reversal IPNs; when a particular Member already had an EOT-Time set. This was NOT the intended behavior in this scenario. In this release, s2Member has been updated to ignore existing Auto-EOT Times under this one special circumstance ( Refund/Reversal ). A Refund/Reversal will ALWAYS trigger an immediate EOT now.
-
IPN Proxy Keys. s2Member's implementation of the optional Proxy Key for simulated IPN responses, has been updated to support Multisite Networking; through a new PayPal® utility function `
ws_plugin__s2member_paypal_proxy_key_gen ()`. For further details, check your Dashboard under `
s2Member -> PayPal® Options -> IPN Integration -> Proxy Key`.
- UI Improvement. The tabindex property for
[?] icons in the admin panel have been set to `
tabindex="-1"` to prevent an annoyance.
-
Compatibility. On a Windows® server, the cURL extension is usually NOT compatible with SSL communications. s2Member now signals to the
WP_Http class, that it should temporarily disable the cURL transport when a remote URL is being processed with an `
https://` prefix. This allows the
WP_Http class to recover gracefully (automatically) and fall back on the FOPEN method. If you're running WordPress® on a Windows® server, you should make sure that you have this inside your
php.ini file. ( `
allow_url_fopen = on` ). A symptom of this bug, was to see an error in your paypal-ipn.log file, with something like: `
Unable to verify _POST vars...`.
-
Compatibility. s2Member's menu inside WordPress® now requires the `
create_users` capability, instead of the more restrictive `
edit_plugins`. This provides improved compatibility across various installations/configurations.
-
API Notifications. s2Member's API Notification for Refund/Reversals, now includes a negative `
%%-fee%%` Replacement Code; referencing the `
mc_fee` variable sent through PayPal® IPN responses.
-
General Maintenance. A full review of s2Member's source code was completed in this release. Including, but not limited to: general maintenance, code cleanup, optimizations.
-
Login/Registration Design. Inside the General Options panel for s2Member, under `
Login/Registration Design` there is a new option that allows you to configure the type of `
Background Tiling` you prefer.
-
Compatibility. The s2Member routine that responds to the `
delete_user` Hook for WordPress®, has been safeguarded against duplicate processing via plugins ( or even WordPress® itself ).
-
Improvement. s2Member now makes your Custom Fields available to a User/Member on the default Profile Editing Panel; the one inside WordPress®. Using this panel is still optional though; because s2Member includes a stand-alone panel as well ( see: `
Profile Modifications, inside your
s2Member -> General Options` ).
-
API Notifications. s2Member's API Notification for Registration events, now (ALSO) includes ANY type of account that is created inside your Dashboard, under the `
Users -> Add New` panel. In previous versions, the API Notification was NOT triggered for new accounts that were assigned a Role of Administrator/Editor/Author/Contributor in the Dashboard. Starting with s2Member v3.2+, they do! In conjunction with this change, comes a new Replacement Code `
%%role%%` indicating the Role ID ( e.g. `
subscriber, s2member_level[1-4], administrator, editor, author, contributor` ) associated with the new User. The Replacement Code `
%%level%%` has been deprecated, please use `
%%role%%` instead.
-
Security Relaxation. In previous versions, s2Member has always prevented its processing routines from running on accounts with an Administrator/Editor/Author/Contributor Role. However, starting with v3.2+, s2Member WILL now process its routines for
Editors/Authors/Contributors. Administrators will still NOT be processed under ANY circumstance though. The reason for this security relaxation, is to provide developers ( using Hooks/Filters ), with the ability to integrate s2Member in even more creative ways.
-
Function removed. The function `
ws_plugin__s2member_has_wp_role()` has been removed. It is no longer necessary. If you're a developer, and you've been using this function in previous versions... we suggest switching over to `
current_user_can("[role name or capability])` instead. For more information, you can read
this article.
-
Security hardening. s2Member's routines for analyzing and authenticating the validity of the three encrypted Cookies that it grants to a paying Customer - has been improved with s2Member v3.2.
-
Replacement Codes. The `
%%user_id%%` Replacement Code has been added to several other API Notifications now. Also, there are two new Replacement Codes for Payment Notifications ( `
%%subscr_payment%%`, `
%%subscr_payment_user_id%%` ). For further details, see: `
s2Member -> API Notifications` in your Dashboard.
-
Bug fix. The Default Password Nag that is built into WordPress® was not being suppressed whenever you allow Custom Passwords during registration. This has been resolved with s2Member v3.2+.