s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) - Version 2.8.5

Version Description

  • Bug fix. A bug was causing the First & Last Name of a new User to be excluded whenever a new User was created manually through the WordPress Dashboard by an Administrator. This bug was first introduced in v2.8.2 and has now been resolved in v2.8.5.
  • Internal references to ?s2AC and ?s2ABC have been removed. These have been deprecated since v1.6 anyway. They have now been removed completely in favor of qcAC and qcABC. These two variables are ONLY used internally, in order to provide compatibility with the Quick Cache plugin for WordPress. This will have no impact on existing installations of s2Member; UNLESS you're using the Quick Cache plugin. If you ARE using the Quick Cache plugin, you should make sure that you're using Quick Cache 2.1.4+ for the highest level of compatibility with s2Member.
Download this release

Release Info

Developer PriMoThemes
Plugin Icon 128x128 s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members)
Version 2.8.5
Comparing to
See all releases

Code changes from version 2.8.4 to 2.8.5

images/promos/shots/00_preview-590x300.jpg ADDED
Binary file
images/promos/shots/00_preview-900x285.jpg ADDED
Binary file
images/promos/shots/00_preview-900x385.jpg ADDED
Binary file
images/promos/shots/01_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/02_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/03_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/04_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/05_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/06_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/07_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/08_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/09_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/10_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/11_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/12_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/13_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/14_screenshot-1200x.jpg ADDED
Binary file
images/promos/shots/index.php ADDED
File without changes
includes/functions/js-globals.inc.php CHANGED
@@ -36,11 +36,11 @@ function ws_plugin__s2member_add_js_w_globals ()
36
  $md5 = md5 (serialize ($s2member)); /* This is a hash based on the global key => values. */
37
  /* The md5 hash allows the script to be cached in the browser until the globals happen to change. */
38
  /* For instance, the global variables may change when a user who is logged-in changes their profile. */
39
- wp_enqueue_script ("ws-plugin--s2member", get_bloginfo ("url") . "/?ws_plugin__s2member_js_w_globals=1&s2ABC=1&qcABC=1&" . $md5, array ("jquery"), $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_version"] . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["filemtime"]);
40
  }
41
  else /* Else if they are not logged in, we distinguish the script by not including the md5 hash. */
42
  { /* This essentially creates 2 versions of the script. One while logged in & another when not. */
43
- wp_enqueue_script ("ws-plugin--s2member", get_bloginfo ("url") . "/?ws_plugin__s2member_js_w_globals=1&s2ABC=1&qcABC=1", array ("jquery"), $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_version"] . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["filemtime"]);
44
  }
45
  }
46
  /**/
36
  $md5 = md5 (serialize ($s2member)); /* This is a hash based on the global key => values. */
37
  /* The md5 hash allows the script to be cached in the browser until the globals happen to change. */
38
  /* For instance, the global variables may change when a user who is logged-in changes their profile. */
39
+ wp_enqueue_script ("ws-plugin--s2member", get_bloginfo ("url") . "/?ws_plugin__s2member_js_w_globals=1&qcABC=1&" . $md5, array ("jquery"), $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_version"] . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["filemtime"]);
40
  }
41
  else /* Else if they are not logged in, we distinguish the script by not including the md5 hash. */
42
  { /* This essentially creates 2 versions of the script. One while logged in & another when not. */
43
+ wp_enqueue_script ("ws-plugin--s2member", get_bloginfo ("url") . "/?ws_plugin__s2member_js_w_globals=1&qcABC=1", array ("jquery"), $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_version"] . $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["filemtime"]);
44
  }
45
  }
46
  /**/
includes/functions/nocache.inc.php CHANGED
@@ -33,7 +33,7 @@ Actually, Quick Cache is compatible with either of these defined constants.
33
  Always disallow caching for logged in users and GET requests with /?s2member systematic use.
34
  For clarity on the systematic use with s2member in the request, see: is-systematic.inc.php.
35
  - Also disallow caching if the $nocache param is passed in as true by other routines.
36
- * BUT, always obey s2AC and qcAC params that specifically allow caching.
37
 
38
  This function is also called upon by other routines that protect members-only content areas.
39
  Members-only content areas should never be cached. In other words, there are some important supplemental
@@ -47,9 +47,9 @@ These additional supplemental routines, include:
47
  - ws_plugin__s2member_check_post_level_access()
48
  - ws_plugin__s2member_check_page_level_access()
49
  */
50
- function ws_plugin__s2member_nocache_constants ($nocache = FALSE) /* Always obey the s2AC & qcAC params. */
51
  {
52
- if (!$_GET["s2AC"] && !$_GET["qcAC"] && ($nocache || is_user_logged_in () || (preg_match ("/^s2member/", $_SERVER["QUERY_STRING"]) && ($_SERVER["REQUEST_URI"] === "/" || strtolower (rtrim (get_bloginfo ("url"), "/")) === rtrim (strtolower ("http://" . $_SERVER["HTTP_HOST"]) . $_SERVER["REQUEST_URI"], "/")))))
53
  {
54
  define ("QUICK_CACHE_ALLOWED", false) . define ("DONOTCACHEPAGE", true);
55
  }
@@ -60,11 +60,11 @@ function ws_plugin__s2member_nocache_constants ($nocache = FALSE) /* Always obey
60
  Sends Cache-Control ( no-cache ) headers.
61
  This uses the nocache_headers() function provided by WordPress®.
62
  This is compatible with the Quick Cache parameter ?qcABC=1 as well.
63
- * Always obey s2ABC & qcABC params that specifically allow browser caching.
64
  */
65
  function ws_plugin__s2member_nocache_headers () /* Cache-Control header. */
66
  {
67
- if (!$_GET["s2ABC"] && !$_GET["qcABC"]) /* Always obey. */
68
  {
69
  if (is_array ($headers = headers_list ()))
70
  foreach ($headers as $k => $header)
33
  Always disallow caching for logged in users and GET requests with /?s2member systematic use.
34
  For clarity on the systematic use with s2member in the request, see: is-systematic.inc.php.
35
  - Also disallow caching if the $nocache param is passed in as true by other routines.
36
+ * BUT, always obey the qcAC param that specifically allows caching.
37
 
38
  This function is also called upon by other routines that protect members-only content areas.
39
  Members-only content areas should never be cached. In other words, there are some important supplemental
47
  - ws_plugin__s2member_check_post_level_access()
48
  - ws_plugin__s2member_check_page_level_access()
49
  */
50
+ function ws_plugin__s2member_nocache_constants ($nocache = FALSE) /* Always obey the Quick Cache plugin. */
51
  {
52
+ if (!$_GET["qcAC"] && ($nocache || is_user_logged_in () || (preg_match ("/^s2member/", $_SERVER["QUERY_STRING"]) && ($_SERVER["REQUEST_URI"] === "/" || strtolower (rtrim (get_bloginfo ("url"), "/")) === rtrim (strtolower ("http://" . $_SERVER["HTTP_HOST"]) . $_SERVER["REQUEST_URI"], "/")))))
53
  {
54
  define ("QUICK_CACHE_ALLOWED", false) . define ("DONOTCACHEPAGE", true);
55
  }
60
  Sends Cache-Control ( no-cache ) headers.
61
  This uses the nocache_headers() function provided by WordPress®.
62
  This is compatible with the Quick Cache parameter ?qcABC=1 as well.
63
+ * Always obey the qcABC param that specifically allows browser caching.
64
  */
65
  function ws_plugin__s2member_nocache_headers () /* Cache-Control header. */
66
  {
67
+ if (!$_GET["qcABC"]) /* Always obey the Quick Cache plugin. */
68
  {
69
  if (is_array ($headers = headers_list ()))
70
  foreach ($headers as $k => $header)
includes/functions/register-access.inc.php CHANGED
@@ -148,10 +148,12 @@ function ws_plugin__s2member_configure_user_registration ($user_id = FALSE)
148
  /**/
149
  if (!defined ("BP_VERSION")) /* Custom fields are not compatible when running together with BuddyPress. */
150
  {
151
- update_usermeta ($user_id, "first_name", ($first_name = trim ($_POST["ws_plugin__s2member_custom_reg_field_first_name"])));
152
- update_usermeta ($user_id, "last_name", ($last_name = trim ($_POST["ws_plugin__s2member_custom_reg_field_last_name"])));
 
153
  /**/
154
- wp_update_user (array ("ID" => $user_id, "display_name" => $first_name));
 
155
  /**/
156
  foreach (preg_split ("/[\r\n\t,;]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) as $field)
157
  {
148
  /**/
149
  if (!defined ("BP_VERSION")) /* Custom fields are not compatible when running together with BuddyPress. */
150
  {
151
+ if ($first_name = trim ($_POST["ws_plugin__s2member_custom_reg_field_first_name"]))
152
+ update_usermeta ($user_id, "first_name", $first_name) . /* And display name. */
153
+ wp_update_user (array ("ID" => $user_id, "display_name" => $first_name));
154
  /**/
155
+ if ($last_name = trim ($_POST["ws_plugin__s2member_custom_reg_field_last_name"]))
156
+ update_usermeta ($user_id, "last_name", $last_name);
157
  /**/
158
  foreach (preg_split ("/[\r\n\t,;]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) as $field)
159
  {
readme.txt CHANGED
@@ -1,8 +1,8 @@
1
  === s2Member ( Membership w/ PayPal Integration ) also works w/ BuddyPress ===
2
 
3
- Version: 2.8.4
4
- Framework: P-2.1
5
- Stable tag: 2.8.4
6
 
7
  WordPress Compatible: yes
8
  BuddyPress Compatible: yes
@@ -20,8 +20,6 @@ Author URI: http://www.primothemes.com/
20
  Author: PriMoThemes.com / WebSharks, Inc.
21
  Donate link: http://www.primothemes.com/donate/
22
 
23
- ZipId: s2member
24
- FolderId: s2member
25
  Plugin Name: s2Member
26
  Plugin URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/
27
  Customization URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/#comments
@@ -99,6 +97,10 @@ Yes. In the form of comments on [this page](http://www.primothemes.com/post/s2me
99
 
100
  == Changelog ==
101
 
 
 
 
 
102
  = 2.8.4 =
103
  * A new option was added under `s2Member -> General Options -> De-Activation Safeguards`. This new option allows you to disable the de-activation routines for the s2Member plugin, so that s2Member Roles, Capabilities, and your Configuration Options will be preserved in case s2Member is de-activated inadvertently. We recommend that you Safeguard all s2Member data on your system; so please have a look at this new option.
104
  * A bug was found in the Shortcode processor, related specifically to Buy Now buttons for Lifetime access. This bug has been corrected in s2Member v2.8.4.
@@ -106,7 +108,7 @@ Yes. In the form of comments on [this page](http://www.primothemes.com/post/s2me
106
 
107
  = 2.8.3 =
108
  * A bug was found in the PayPal Button Generator, including the Shortcode processor. This has been resolved in v2.8.3. It was related to regex parsing. More specifically, it was related to Unix-style newlines vs. Windows-style newlines. For some site owners ( depending on how certain files were uploaded to their server ), this was resulting in an error at checkout that read "A1, P1, T1"; Invalid Trial. This bug has been corrected by modifying the regex parsing routines so that they're no longer dependent on multiline mode /m. The file `/button.html` has also been converted to Unix format to match the rest of the s2Member files.
109
- * The action priority has been raised to (1) for `template_redirect` hooks inside `hooks.inc.php`. These hooks are reponsible for access control routines that protect Pages, Posts, Tags, Categories, and URIs. This increase in the action priority gives s2Member greater compatibility with BuddyPress and other plugins that attempt to use `template_redirect` as a hook into their application. A plugin such as s2Member should always be given top priority in this chain of events, because it is protecting content from public access.
110
 
111
  = 2.8.2 =
112
  * Bug fix. A bug was found & resolved in the activation/de-activation routines for s2Member. This bug was first introduced in the initial release of s2Member v2.8.0, and has been resolved in this release ( v2.8.2 ). This bug was preventing the s2Member Roles from being created properly on some WordPress® installations.
1
  === s2Member ( Membership w/ PayPal Integration ) also works w/ BuddyPress ===
2
 
3
+ Version: 2.8.5
4
+ Stable tag: 2.8.5
5
+ Framework: WS-P-2.1
6
 
7
  WordPress Compatible: yes
8
  BuddyPress Compatible: yes
20
  Author: PriMoThemes.com / WebSharks, Inc.
21
  Donate link: http://www.primothemes.com/donate/
22
 
 
 
23
  Plugin Name: s2Member
24
  Plugin URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/
25
  Customization URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/#comments
97
 
98
  == Changelog ==
99
 
100
+ = 2.8.5 =
101
+ * Bug fix. A bug was causing the First & Last Name of a new User to be excluded whenever a new User was created manually through the WordPress® Dashboard by an Administrator. This bug was first introduced in v2.8.2 and has now been resolved in v2.8.5.
102
+ * Internal references to `?s2AC` and `?s2ABC` have been removed. These have been deprecated since v1.6 anyway. They have now been removed completely in favor of `qcAC` and `qcABC`. These two variables are ONLY used internally, in order to provide compatibility with the Quick Cache plugin for WordPress®. This will have no impact on existing installations of s2Member; UNLESS you're using the Quick Cache plugin. If you ARE using the Quick Cache plugin, you should make sure that you're using Quick Cache 2.1.4+ for the highest level of compatibility with s2Member.
103
+
104
  = 2.8.4 =
105
  * A new option was added under `s2Member -> General Options -> De-Activation Safeguards`. This new option allows you to disable the de-activation routines for the s2Member plugin, so that s2Member Roles, Capabilities, and your Configuration Options will be preserved in case s2Member is de-activated inadvertently. We recommend that you Safeguard all s2Member data on your system; so please have a look at this new option.
106
  * A bug was found in the Shortcode processor, related specifically to Buy Now buttons for Lifetime access. This bug has been corrected in s2Member v2.8.4.
108
 
109
  = 2.8.3 =
110
  * A bug was found in the PayPal Button Generator, including the Shortcode processor. This has been resolved in v2.8.3. It was related to regex parsing. More specifically, it was related to Unix-style newlines vs. Windows-style newlines. For some site owners ( depending on how certain files were uploaded to their server ), this was resulting in an error at checkout that read "A1, P1, T1"; Invalid Trial. This bug has been corrected by modifying the regex parsing routines so that they're no longer dependent on multiline mode /m. The file `/button.html` has also been converted to Unix format to match the rest of the s2Member files.
111
+ * The action priority has been raised to (1) for `template_redirect` hooks inside `hooks.inc.php`. These hooks are responsible for access control routines that protect Pages, Posts, Tags, Categories, and URIs. This increase in the action priority gives s2Member greater compatibility with BuddyPress and other plugins that attempt to use `template_redirect` as a hook into their application. A plugin such as s2Member should always be given top priority in this chain of events, because it is protecting content from public access.
112
 
113
  = 2.8.2 =
114
  * Bug fix. A bug was found & resolved in the activation/de-activation routines for s2Member. This bug was first introduced in the initial release of s2Member v2.8.0, and has been resolved in this release ( v2.8.2 ). This bug was preventing the s2Member Roles from being created properly on some WordPress® installations.
s2member.php CHANGED
@@ -9,9 +9,9 @@ along with this software. In the main directory, see: /licensing/
9
  If not, see: <http://www.gnu.org/licenses/>.
10
  */
11
  /*
12
- Version: 2.8.4
13
- Framework: P-2.1
14
- Stable tag: 2.8.4
15
 
16
  WordPress Compatible: yes
17
  BuddyPress Compatible: yes
@@ -29,8 +29,6 @@ Author URI: http://www.primothemes.com/
29
  Author: PriMoThemes.com / WebSharks, Inc.
30
  Donate link: http://www.primothemes.com/donate/
31
 
32
- ZipId: s2member
33
- FolderId: s2member
34
  Plugin Name: s2Member
35
  Plugin URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/
36
  Customization URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/#comments
9
  If not, see: <http://www.gnu.org/licenses/>.
10
  */
11
  /*
12
+ Version: 2.8.5
13
+ Stable tag: 2.8.5
14
+ Framework: WS-P-2.1
15
 
16
  WordPress Compatible: yes
17
  BuddyPress Compatible: yes
29
  Author: PriMoThemes.com / WebSharks, Inc.
30
  Donate link: http://www.primothemes.com/donate/
31
 
 
 
32
  Plugin Name: s2Member
33
  Plugin URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/
34
  Customization URI: http://www.primothemes.com/post/s2member-membership-plugin-with-paypal/#comments