== Changelog for s2Member v3.0 ==
- Naming convention change. s2Member's Single-Page Access, is now referred to as "Specific Post/Page Access". The reason for this will become obvious after reading through some of the other changes in this version. Among other things, "Posts" are now supported, instead of just Pages. Custom "Post-Types" are also supported now. Custom Post-Types are coming in WordPress® 3.0+. WordPress® 3.0 is scheduled for official release in May 2010.
- Specific Post/Page Access. s2Member now supports "Specific Post/Page Packages" too ( optional ). You can choose a "Leading" Post/Page, and also include "Additional" Posts/Pages. Customers will still land on your Leading Post/Page; BUT, they'll ALSO have access to any Additional Posts/Pages you've packaged together into one transaction. See: `s2Member -> PayPal® Buttons -> Specific Post/Page Buttons` for further details.
- Fixed-Term Buy Now Access. s2Member now supports Buy Now Access with fixed term lengths. In previous versions of s2Member, it was possible to create a Buy Now Button for Lifetime Membership Access, but now you can create Buy Now Buttons for specific time periods. Anything from 1 day, up to 5 years. The Lifetime option is also still available.
- Improvement. Registration Configuration routines have been re-organized for a higher level of compatibility across a wide array of s2Member configurations. No functionality changes here, just smarter configuration routines in `ws_plugin__s2member_configure_user_registration()`. This will make s2Member even more compatible with other plugins.
- Tracking Codes. s2Member has improved the way in which Tracking Codes are injected after returning from PayPal®. For full details, see: `s2Member -> API Tracking -> Signup Tracking Codes`. s2Member also supports Tracking Codes for Specific Post/Page Access now. Some additional replacement codes are also available through s2Member's Tracking API.
- AWeber® integration. s2Member now sends AWeber® some additional details, including: `EMail Address, First Name, Last Name, Full Name, IP Address, and Membership Level`. You can map these fields using a Custom Email Parser for AWeber® - if you wish to. Otherwise, the default "PayPal® Parser" for AWeber® will do fine. Please see: `s2Member -> API List Servers -> AWeber®` for full details.
- Security fix. Although unlikely, it was possible for a Site Administrator, testing extensively in the Sandbox; to perform a Subscription Modification while logged in as an Administrator; or an (Editor/Author/Contributor). The result was that their account could have been upgraded to an s2Member Role, depending on Button Configuration. This ran the risk of a built-in WP Role being locked out of their account. If this happended to you in a previous version of s2Member, please read [this article](http://codex.wordpress.org/Resetting_Your_Password) for assistance. Additional security routines have been added to prevent s2Member from EVER being able to modify an account belonging to any Administrator/Editor/Author/Contributor, under ANY circumstance.
- Typo auto-correction. A typo in the default Email Confirmation template for Specific Post/Page Access, which was first introduced in v2.8.7, and later corrected in v2.8.8 ( `%%sp_access_url%%` ). The incorrect value ( `%%access_url%%` ) was lingering if v2.8.7 was installed at some point in the past. s2Member v3.0 auto-corrects this typo ( should be `%%sp_access_url%%` ), just in case it still exists from a prior installation of s2Member v2.8.7.
- PayPal® Buttons. The Shortcode format for PayPal® Buttons, now supports a new attribute: `image="default"`. This can be changed to a full URL, pointing to a custom image of your own; instead of the default PayPal® image. This works for all types of PayPal® Buttons, including Member Levels 1-4, Cancellations, Modifications; and even Specific Post/Page Access Buttons.
- Registration Form. s2Member now makes the Registration Form available to any Site Administrator who is logged-in, even when `Allow Free Subscribers` is set to `false`. This makes the Registration Form easier to test during configuration; and it prevents confusion for site owners that are new to the s2Member plugin. This will NOT affect the functionality of s2Member otherwise, and should have NO impact on existing installations of s2Member.
- Specific Post/Page Access. s2Member now uses Specific Post/Page sessions ( i.e. cookies ). After clicking through to a Specific Post/Page, using a Specific Post/Page Access Link ( `%%sp_access_url%%` ) via email; the Customer is now authenticated for that specific Post/Page, using cookies. This allows the Customer to navigate through other areas of your site, and later return to the Specific Post/Page they paid for, without being forced to re-enter the Specific Post/Page with an encrypted link all over again. This does NOT change Specific Post/Page functionality, it just makes your site more user-friendly to Customers. They won't have to keep going back to their email to find their Access Link all the time. They click an Access Link once, then they're authenticated by cookies until their access expires ( based on your configuration ).
- References to the WordPress® function `human_time_diff()` have been replaced with an improved function: `ws_plugin__s2member_approx_time_difference()`; supporting human time differences in minutes, hours, days, weeks, months, years.
- References to s2Member's `append_query` function have been removed in favor of the WordPress® native function `add_query_arg()`. This was a redundant function, because WordPress® already provides this capability in its core.
- Bug fix. Missing admin APIs in `paypal-notify.inc.php`. This was causing an unknown function error `wp_delete_user()` on some s2Member installations; depending on the configuration. This has been corrected in v3.0.
- Optimized Post, Page, Tag, Category, and URI Level Access routines. Stress testing s2Member revealed some minor performance issues. Nothing major, but s2Member v3.0 has been further optimized to reduce CPU time.
- Custom Post-Types are now supported by s2Member Post Level Access Restrictions. Custom Post-Types are coming in WordPress® 3.0+. WordPress® 3.0 is scheduled for official release in May 2010.
- Notes field. s2Member now has a Notes field available for each account. See: `WordPress® -> Users -> Edit User`. This allows you to keep a list of Notations related to specific accounts.
- IP Access Restrictions. As with any membership system, it is possible for one Member to signup, and then share their Username or Access Links with someone else. s2Member now provides protection against this. See: `s2Member -> General Options -> IP Access Restrictions` for full details and configuration options.
- EOT demotions. Whenever s2Member demotes a Member to a Free Subscriber in response to an EOT event, s2Member now leaves a Note on the account, indicating the date/time the demotion occurred.
- EOT bug fix & improvements. ( 2010 PayPal® accounts ). EOT = End Of Term. s2Member has been updated to support newer PayPal® accounts ( those opened after Oct 15th, 2009 ). Newer PayPal® accounts do NOT send an IPN/`subscr_eot` in all cases. This has been reported to PayPal® by several developers. At any rate, s2Member can deal with this gracefully now, by keeping a record of payments/periods/changes, and monitoring other signals sent by PayPal®. This allows s2Member to take control of the situation, at the appropriate time, using s2Member's built-in Auto-EOT System ( new ).
The communication from PayPal® -> s2Member is seamless ( once again ); even in PayPal® accounts created after October 15th, 2009. These changes will NOT negatively effect existing installations of s2Member. If anything, it will improve your experience. More importantly, if your PayPal® account was established in 2010, you will definitely want to upgrade to s2Member v3.0+.