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

Version Description

  • (s2Member/s2Member Pro). Bug fix. A bug was found in the c_ws_plugin__s2member_systematics_sp class file. This bug was affecting s2Member's Security Gate for WordPress Pages under certain unique circumstances. One symptom of this bug ( seen with s2Member Pro installed ), was to experience a strange disappearance of (s2) Lock Icons in your list of Pages, whenever the first Page in your list was the Login Welcome Page that you configured for s2Member.
  • (s2Member Pro). Bug fix. On a Multisite Network, s2Member Pro Forms were generating an erroneous error Please enter a username during a Billing Modification under certain circumstances. This has been resolved in s2Member Pro v1.5.7+.
  • (s2Member Pro). Bug fix. s2Member Pro Export Files ( i.e. CSV export of Users/Members ) sometimes contained Custom Registration Fields ( e.g. at the end of each CSV line ) in a different order for each User/Member. This was NOT causing any negative effects with s2Member Pro during import/export. However, it was causing some confusion and extra work for site owners that use s2Member's export files for other operations. This has been corrected in the release of s2Member Pro v1.5.7. For more information, please see this thread.
Download this release

Release Info

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

Code changes from version 3.5.6 to 3.5.7

includes/classes/menu-pages.inc.php CHANGED
@@ -106,7 +106,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_pages"))
106
  /**/
107
  if (apply_filters ("ws_plugin__s2member_during_add_admin_options_create_menu_items", true, get_defined_vars ()))
108
  {
109
- if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ())
110
  foreach ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] as &$right_side)
111
  $right_side = false; /* Clear right side. */
112
  /**/
@@ -474,7 +474,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_pages"))
474
  {
475
  if (is_writable ($plugins_dir)) /* This directory MUST be writable. Otherwise, we cannot continue. */
476
  {
477
- if (preg_match ("/^Install/i",$_p["ws_plugin__s2member_bridge_bbpress_action"]))
478
  {
479
  $min = (string)$_p["ws_plugin__s2member_bridge_bbpress_min_level"];
480
  $ovg = (string)$_p["ws_plugin__s2member_bridge_bbpress_ovg"];
@@ -486,7 +486,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_pages"))
486
  c_ws_plugin__s2member_admin_notices::display_admin_notice ("Unknown error. Please try again, or install manually.", true);
487
  }
488
  /**/
489
- else if (preg_match ("/^Un-Install/i",$_p["ws_plugin__s2member_bridge_bbpress_action"]))
490
  {
491
  if (file_exists ($plugins_dir . "/_s2member-bbpress-bridge.php"))
492
  {
106
  /**/
107
  if (apply_filters ("ws_plugin__s2member_during_add_admin_options_create_menu_items", true, get_defined_vars ()))
108
  {
109
+ if ((is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ()) || apply_filters ("ws_plugin__s2member_during_add_admin_options_clear_right_side", false, get_defined_vars ()))
110
  foreach ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] as &$right_side)
111
  $right_side = false; /* Clear right side. */
112
  /**/
474
  {
475
  if (is_writable ($plugins_dir)) /* This directory MUST be writable. Otherwise, we cannot continue. */
476
  {
477
+ if (preg_match ("/^Install/i", $_p["ws_plugin__s2member_bridge_bbpress_action"]))
478
  {
479
  $min = (string)$_p["ws_plugin__s2member_bridge_bbpress_min_level"];
480
  $ovg = (string)$_p["ws_plugin__s2member_bridge_bbpress_ovg"];
486
  c_ws_plugin__s2member_admin_notices::display_admin_notice ("Unknown error. Please try again, or install manually.", true);
487
  }
488
  /**/
489
+ else if (preg_match ("/^Un-Install/i", $_p["ws_plugin__s2member_bridge_bbpress_action"]))
490
  {
491
  if (file_exists ($plugins_dir . "/_s2member-bbpress-bridge.php"))
492
  {
includes/classes/systematics-sp.inc.php CHANGED
@@ -19,17 +19,11 @@ if (!class_exists ("c_ws_plugin__s2member_systematics_sp"))
19
  class c_ws_plugin__s2member_systematics_sp
20
  {
21
  /*
22
- Function that determines whether a specific Page, is a Systematic Use Page.
23
  */
24
  public static function is_systematic_use_specific_page ($page_id = FALSE, $uri = FALSE)
25
  {
26
- static $is_systematic; /* For optimization. */
27
- /**/
28
- if (isset ($is_systematic)) /* Already cached? This saves time. */
29
- {
30
- return $is_systematic; /* Filters will have already been applied. */
31
- }
32
- else if ($uri && preg_match ("/\/wp-admin\//", $uri)) /* In the admin area? - All admin pages are considered Systematic. */
33
  {
34
  return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
35
  }
19
  class c_ws_plugin__s2member_systematics_sp
20
  {
21
  /*
22
+ Determines whether a specific Page, is a Systematic Use Page.
23
  */
24
  public static function is_systematic_use_specific_page ($page_id = FALSE, $uri = FALSE)
25
  {
26
+ if ($uri && preg_match ("/\/wp-admin\//", $uri)) /* In the admin area? - All admin pages are considered Systematic. */
 
 
 
 
 
 
27
  {
28
  return ($is_systematic = apply_filters ("ws_plugin__s2member_is_systematic_use_specific_page", true, get_defined_vars ()));
29
  }
includes/menu-pages/options.inc.php CHANGED
@@ -63,7 +63,7 @@ if (apply_filters ("ws_plugin__s2member_during_options_page_during_left_sections
63
  echo '<td>' . "\n";
64
  echo '<input type="text" name="ws_plugin__s2member_sec_encryption_key" id="ws-plugin--s2member-sec-encryption-key" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) . '" maxlength="256" autocomplete="off"' . ( ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) ? ' disabled="disabled"' : '') . ' />' . "\n";
65
  echo (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) ? '<br />This may contain letters, numbers, spaces; even punctuation. Up to 256 characters.<br /><em>Ex: <code>' . esc_html (strtoupper (c_ws_plugin__s2member_utils_strings::random_str_gen (56))) . '</code></em>' . "\n" : '';
66
- echo (count ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]) > 1) ? '<br /><a href="#" onclick="ws_plugin__s2member_securityKeyHistory();">Click here</a> for a history of your last 10 Encryption Keys.<div id="ws-plugin--s2member-sec-encryption-key-history" style="display:none;"><code>' . implode ('</code><br /><code>', $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]) . '</code></div>' . "\n" : '';
67
  echo '</td>' . "\n";
68
  /**/
69
  echo '</tr>' . "\n";
63
  echo '<td>' . "\n";
64
  echo '<input type="text" name="ws_plugin__s2member_sec_encryption_key" id="ws-plugin--s2member-sec-encryption-key" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) . '" maxlength="256" autocomplete="off"' . ( ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) ? ' disabled="disabled"' : '') . ' />' . "\n";
65
  echo (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key"]) ? '<br />This may contain letters, numbers, spaces; even punctuation. Up to 256 characters.<br /><em>Ex: <code>' . esc_html (strtoupper (c_ws_plugin__s2member_utils_strings::random_str_gen (56))) . '</code></em>' . "\n" : '';
66
+ echo (count ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]) > 1) ? '<br /><a href="#" onclick="ws_plugin__s2member_securityKeyHistory(); return false;">Click here</a> for a history of your last 10 Encryption Keys.<div id="ws-plugin--s2member-sec-encryption-key-history" style="display:none;"><code>' . implode ('</code><br /><code>', $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]) . '</code></div>' . "\n" : '';
67
  echo '</td>' . "\n";
68
  /**/
69
  echo '</tr>' . "\n";
includes/syscon.inc.php CHANGED
@@ -38,7 +38,7 @@ $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["recaptcha"] = array ("public_key" => "
38
  /*
39
  Configure the right menu options panel for this software.
40
  */
41
- $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] = array ("upsell-pro" => true, "installation" => false, "tools" => true, "support" => true, "donations" => true);
42
  /*
43
  Check if the plugin has been configured *should be set after the first config via options panel*.
44
  */
38
  /*
39
  Configure the right menu options panel for this software.
40
  */
41
+ $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] = array ("upsell-pro" => true, "installation" => true, "tools" => true, "support" => true, "donations" => true);
42
  /*
43
  Check if the plugin has been configured *should be set after the first config via options panel*.
44
  */
readme.txt CHANGED
@@ -1,7 +1,7 @@
1
  === s2Member ( Membership w/ PayPal® ) ===
2
 
3
- Version: 3.5.6
4
- Stable tag: 3.5.6
5
  Framework: WS-P-3.5
6
 
7
  SSL Compatible: yes
@@ -169,11 +169,16 @@ Yes and no. We've left this feature out of the plugin intentionally, because man
169
 
170
  == Upgrade Notice ==
171
 
172
- = 3.5.6+ =
173
  * Upgrade highly recommended. Many new features, WordPress® 3.1 compatible, speed optimizations, and several bug fixes.
174
 
175
  == Changelog ==
176
 
 
 
 
 
 
177
  = 3.5.6 =
178
  * **(s2Member). Bug fix.** s2Member's File Download routine was failing on some installations running WordPress® with Windows® IIS 7. This was related to the fact that Windows® IIS 7 does not like it when scripts use `Content-Length` in conjunction with `Transfer-Encoding: chunked`. This has been resolved in s2Member v3.5.6+.
179
  * **(s2Member/s2Member Pro). Bug fix.** s2Member's ability to force SSL by adding the Custom Field `s2member_force_ssl = yes`, was failing to achieve the desired result for links generated during some Pro Form submissions. A symptom of this bug was to see s2Member generate Specific Post/Page Access Links in SSL mode when running together with s2Member Pro Forms. This was related to the fact that s2Member's SSL Filters, which handle SSL conversions were applied on the `template_redirect` Hook instead of earlier in the routine ( i.e. on the `init` Hook ). In order to improve the reliability of this feature, s2Member now attaches itself to both `init` and `template_redirect`; checking in both cases, and only processing on one or the other. Another change, s2Member now forces a new query string parameter in all URLs that are forced to SSL mode by s2Member ( you will see: `?s2-ssl=yes` ). This improves clarity for site owners implementing Pro Forms, and it also makes this feature more compatible with other plugins running in concert with s2Member and s2Member Pro. For advanced site owners, it is possible to modify the name of this special query string variable using s2Member's Filter: `ws_plugin__s2member_check_force_ssl_get_var_name`. If you're interested in this and need assistance, please check the [s2Member forum](http://www.primothemes.com/forums/viewforum.php?f=4).
1
  === s2Member ( Membership w/ PayPal® ) ===
2
 
3
+ Version: 3.5.7
4
+ Stable tag: 3.5.7
5
  Framework: WS-P-3.5
6
 
7
  SSL Compatible: yes
169
 
170
  == Upgrade Notice ==
171
 
172
+ = 3.5.7+ =
173
  * Upgrade highly recommended. Many new features, WordPress® 3.1 compatible, speed optimizations, and several bug fixes.
174
 
175
  == Changelog ==
176
 
177
+ = 3.5.7 =
178
+ * **(s2Member/s2Member Pro). Bug fix.** A bug was found in the `c_ws_plugin__s2member_systematics_sp` class file. This bug was affecting s2Member's Security Gate for WordPress® `Pages` under certain unique circumstances. One symptom of this bug ( seen with s2Member Pro installed ), was to experience a strange disappearance of (s2) Lock Icons in your list of Pages, whenever the first Page in your list was the Login Welcome Page that you configured for s2Member.
179
+ * **(s2Member Pro). Bug fix.** On a Multisite Network, s2Member Pro Forms were generating an erroneous error `Please enter a username` during a Billing Modification under certain circumstances. This has been resolved in s2Member Pro v1.5.7+.
180
+ * **(s2Member Pro). Bug fix.** s2Member Pro Export Files ( i.e. CSV export of Users/Members ) sometimes contained Custom Registration Fields ( e.g. at the end of each CSV line ) in a different order for each User/Member. This was NOT causing any negative effects with s2Member Pro during import/export. However, it was causing some confusion and extra work for site owners that use s2Member's export files for other operations. This has been corrected in the release of s2Member Pro v1.5.7. For more information, please see [this thread](http://www.primothemes.com/forums/viewtopic.php?f=4&t=2783&p=8267#p8232).
181
+
182
  = 3.5.6 =
183
  * **(s2Member). Bug fix.** s2Member's File Download routine was failing on some installations running WordPress® with Windows® IIS 7. This was related to the fact that Windows® IIS 7 does not like it when scripts use `Content-Length` in conjunction with `Transfer-Encoding: chunked`. This has been resolved in s2Member v3.5.6+.
184
  * **(s2Member/s2Member Pro). Bug fix.** s2Member's ability to force SSL by adding the Custom Field `s2member_force_ssl = yes`, was failing to achieve the desired result for links generated during some Pro Form submissions. A symptom of this bug was to see s2Member generate Specific Post/Page Access Links in SSL mode when running together with s2Member Pro Forms. This was related to the fact that s2Member's SSL Filters, which handle SSL conversions were applied on the `template_redirect` Hook instead of earlier in the routine ( i.e. on the `init` Hook ). In order to improve the reliability of this feature, s2Member now attaches itself to both `init` and `template_redirect`; checking in both cases, and only processing on one or the other. Another change, s2Member now forces a new query string parameter in all URLs that are forced to SSL mode by s2Member ( you will see: `?s2-ssl=yes` ). This improves clarity for site owners implementing Pro Forms, and it also makes this feature more compatible with other plugins running in concert with s2Member and s2Member Pro. For advanced site owners, it is possible to modify the name of this special query string variable using s2Member's Filter: `ws_plugin__s2member_check_force_ssl_get_var_name`. If you're interested in this and need assistance, please check the [s2Member forum](http://www.primothemes.com/forums/viewforum.php?f=4).
s2member.php CHANGED
@@ -9,8 +9,8 @@ along with this software. In the main directory, see: /licensing/
9
  If not, see: <http://www.gnu.org/licenses/>.
10
  */
11
  /*
12
- Version: 3.5.6
13
- Stable tag: 3.5.6
14
  Framework: WS-P-3.5
15
 
16
  SSL Compatible: yes
@@ -54,10 +54,10 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
54
  /*
55
  Define versions.
56
  */
57
- @define ("WS_PLUGIN__S2MEMBER_VERSION", "3.5.6");
58
  @define ("WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION", "5.2");
59
  @define ("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION", "3.0");
60
- @define ("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "1.5.6");
61
  /*
62
  Compatibility checks.
63
  */
9
  If not, see: <http://www.gnu.org/licenses/>.
10
  */
11
  /*
12
+ Version: 3.5.7
13
+ Stable tag: 3.5.7
14
  Framework: WS-P-3.5
15
 
16
  SSL Compatible: yes
54
  /*
55
  Define versions.
56
  */
57
+ @define ("WS_PLUGIN__S2MEMBER_VERSION", "3.5.7");
58
  @define ("WS_PLUGIN__S2MEMBER_MIN_PHP_VERSION", "5.2");
59
  @define ("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION", "3.0");
60
+ @define ("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "1.5.7");
61
  /*
62
  Compatibility checks.
63
  */