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

Version Description

= v130816 = (Maintenance Release) Upgrade immediately.

Download this release

Release Info

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

Code changes from version 130802 to 130816

checksum.txt CHANGED
@@ -1 +1 @@
1
- 9dc191cd407f459b07792c5e24abdea1
1
+ a1483e3b04ff24591ddc65fac0e7b361
includes/classes/login-customizations.inc.php CHANGED
@@ -134,7 +134,10 @@ if(!class_exists("c_ws_plugin__s2member_login_customizations"))
134
  $a[] = 'div#login form#registerform p#reg_passmail { font-style:italic'.$i.'; }';
135
 
136
  if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"])
137
- $a[] = 'p#reg_passmail { display:none'.$i.'; }';
 
 
 
138
 
139
  $a = apply_filters("ws_plugin__s2member_login_header_styles_array_before_close", $a, get_defined_vars());
140
  $a[] = /* Now close style tag. There are other Filters below. */ '</style>';
134
  $a[] = 'div#login form#registerform p#reg_passmail { font-style:italic'.$i.'; }';
135
 
136
  if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"])
137
+ $a[] = 'div#login form#registerform p#reg_passmail { display:none'.$i.'; }';
138
+
139
+ if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_footer_backtoblog"])
140
+ $a[] = 'div#login p#backtoblog { display:none'.$i.'; }';
141
 
142
  $a = apply_filters("ws_plugin__s2member_login_header_styles_array_before_close", $a, get_defined_vars());
143
  $a[] = /* Now close style tag. There are other Filters below. */ '</style>';
includes/classes/login-redirects.inc.php CHANGED
@@ -27,7 +27,7 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
27
  */
28
  class c_ws_plugin__s2member_login_redirects
29
  {
30
-
31
  /**
32
  * Assists in multisite User authentication.
33
  *
@@ -46,7 +46,7 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
46
  foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
47
  do_action ("ws_plugin__s2member_before_ms_wp_authenticate_user", get_defined_vars ());
48
  unset /* Unset defined __refs, __v. */ ($__refs, $__v);
49
-
50
  if(is_a($user_or_wp_error, "WP_User") && ($user = $user_or_wp_error) && $user->ID && !is_super_admin($user->ID) && !in_array(get_current_blog_id(), array_keys(get_blogs_of_user($user->ID)), TRUE))
51
  $user_or_wp_error = new WP_Error("invalid_username", _x("<strong>ERROR</strong>: Invalid username for this site.", "s2member-front", "s2member"));
52
 
@@ -98,16 +98,18 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
98
  do_action ("ws_plugin__s2member_during_login_redirect", get_defined_vars ());
99
  unset /* Unset defined __refs, __v. */ ($__refs, $__v);
100
 
101
- if /* Is this a string? */ ($redirect && is_string ($redirect))
102
- wp_redirect /* Dynamic URL introduced by a Filter? */ ($redirect);
103
 
104
  else if ($redirection_url = c_ws_plugin__s2member_login_redirects::login_redirection_url ($user))
105
- wp_redirect /* Special Redirection URL configured with s2Member. */ ($redirection_url);
106
 
107
  else // Else we use the Login Welcome Page configured for s2Member.
108
- wp_redirect (get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]));
 
 
 
109
 
110
- exit /* Clean exit. */ ();
111
  }
112
  }
113
  }
27
  */
28
  class c_ws_plugin__s2member_login_redirects
29
  {
30
+
31
  /**
32
  * Assists in multisite User authentication.
33
  *
46
  foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
47
  do_action ("ws_plugin__s2member_before_ms_wp_authenticate_user", get_defined_vars ());
48
  unset /* Unset defined __refs, __v. */ ($__refs, $__v);
49
+
50
  if(is_a($user_or_wp_error, "WP_User") && ($user = $user_or_wp_error) && $user->ID && !is_super_admin($user->ID) && !in_array(get_current_blog_id(), array_keys(get_blogs_of_user($user->ID)), TRUE))
51
  $user_or_wp_error = new WP_Error("invalid_username", _x("<strong>ERROR</strong>: Invalid username for this site.", "s2member-front", "s2member"));
52
 
98
  do_action ("ws_plugin__s2member_during_login_redirect", get_defined_vars ());
99
  unset /* Unset defined __refs, __v. */ ($__refs, $__v);
100
 
101
+ if($redirect && is_string ($redirect)) $redirect = $redirect; // Custom?
 
102
 
103
  else if ($redirection_url = c_ws_plugin__s2member_login_redirects::login_redirection_url ($user))
104
+ $redirect = $redirection_url; // Special redirection URL (overrides LWP).
105
 
106
  else // Else we use the Login Welcome Page configured for s2Member.
107
+ $redirect = get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]);
108
+
109
+ if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"])
110
+ $redirect = preg_replace("/^https\:\/\//i", "http://", $redirect);
111
 
112
+ wp_redirect($redirect).exit();
113
  }
114
  }
115
  }
includes/classes/users-list.inc.php CHANGED
@@ -89,15 +89,15 @@ if (!class_exists ("c_ws_plugin__s2member_users_list"))
89
  $query->query_where .= " AND (" . apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_before", "", get_defined_vars ());
90
  $query->query_where .= " (`" . $wpdb->users . "`.`user_login` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_nicename` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`display_name` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_email` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_url` LIKE '" . $s . "')";
91
  $query->query_where .= " OR ((`" . $wpdb->usermeta . "`.`meta_key` = 'first_name' OR `" . $wpdb->usermeta . "`.`meta_key` = 'last_name') AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
92
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
93
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->prefix . "s2member_custom' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
94
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->prefix . "s2member_custom_fields' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
95
  if(apply_filters("ws_plugin__s2member_users_list_search_admin_notes", false, get_defined_vars())) // Off by default; this can get very slow on large sites.
96
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->prefix . "s2member_notes' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
97
  $query->query_where .= apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_after", "", get_defined_vars ()) . ")"; // Leaving room for additional searches here.
98
 
99
  if(is_multisite()) // On a Multisite Network we need to make sure we're searching only users w/ capabilities on this blog.
100
- $query->query_where .= " AND `" . $wpdb->users . "`.`ID` IN(SELECT DISTINCT(`user_id`) FROM `" . $wpdb->usermeta . "` WHERE `meta_key` = '" . $wpdb->prefix . "capabilities'";
101
 
102
  $query->query_from = apply_filters ("ws_plugin__s2member_before_users_list_search_from", $query->query_from, get_defined_vars ());
103
  $query->query_where = apply_filters ("ws_plugin__s2member_before_users_list_search_where", $query->query_where, get_defined_vars ());
89
  $query->query_where .= " AND (" . apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_before", "", get_defined_vars ());
90
  $query->query_where .= " (`" . $wpdb->users . "`.`user_login` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_nicename` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`display_name` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_email` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_url` LIKE '" . $s . "')";
91
  $query->query_where .= " OR ((`" . $wpdb->usermeta . "`.`meta_key` = 'first_name' OR `" . $wpdb->usermeta . "`.`meta_key` = 'last_name') AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
92
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_subscr_id' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
93
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
94
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom_fields' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
95
  if(apply_filters("ws_plugin__s2member_users_list_search_admin_notes", false, get_defined_vars())) // Off by default; this can get very slow on large sites.
96
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_notes' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
97
  $query->query_where .= apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_after", "", get_defined_vars ()) . ")"; // Leaving room for additional searches here.
98
 
99
  if(is_multisite()) // On a Multisite Network we need to make sure we're searching only users w/ capabilities on this blog.
100
+ $query->query_where .= " AND `" . $wpdb->users . "`.`ID` IN(SELECT DISTINCT(`user_id`) FROM `" . $wpdb->usermeta . "` WHERE `meta_key` = '" . $wpdb->prefix . "capabilities')";
101
 
102
  $query->query_from = apply_filters ("ws_plugin__s2member_before_users_list_search_from", $query->query_from, get_defined_vars ());
103
  $query->query_where = apply_filters ("ws_plugin__s2member_before_users_list_search_where", $query->query_where, get_defined_vars ());
includes/menu-pages/down-ops.inc.php CHANGED
@@ -721,6 +721,42 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
721
  do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_gzip_conflicts", get_defined_vars());
722
  }
723
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
724
  do_action("ws_plugin__s2member_during_down_ops_page_after_left_sections", get_defined_vars());
725
 
726
  echo '<div class="ws-menu-page-hr"></div>'."\n";
721
  do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_gzip_conflicts", get_defined_vars());
722
  }
723
 
724
+ if (apply_filters ("ws_plugin__s2member_during_down_ops_page_during_left_sections_display_custom_capability_files", (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()), get_defined_vars ()))
725
+ {
726
+ do_action ("ws_plugin__s2member_during_down_ops_page_during_left_sections_before_custom_capability_files", get_defined_vars ());
727
+
728
+ echo '<div class="ws-menu-page-group" title="Custom Capability &amp; Member Level Files">' . "\n";
729
+
730
+ echo '<div class="ws-menu-page-section ws-plugin--s2member-custom-capability-files-section">' . "\n";
731
+ echo '<h3>Restricting Files, Based On Custom Capabilities</h3>' . "\n";
732
+ echo '<p>If you\'re NOT familiar with Custom Capabilities yet, please read: <code>Dashboard -› s2Member® -› API Scripting -› Custom Capability Packages</code>. Once you understand the basic concept of Custom Capabilities &amp; Protected File Downloads, you\'ll see that (by default) s2Member does NOT handle File Download Protection with respect to Custom Capabilities. That\'s where Custom Capability Sub-directories come in.</p>' . "\n";
733
+ echo '<p>You can create Custom Capability Sub-directories under: <code>' . esc_html (c_ws_plugin__s2member_utils_dirs::doc_root_path ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '</code>. For instance, if you have a Custom Capability <code>music</code>, you can place protected files that should ONLY be accessible to Members with <code>access_s2member_ccap_music</code>, inside: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-ccap-music/</code>. Some examples are provided below.</p>' . "\n";
734
+ do_action ("ws_plugin__s2member_during_down_ops_page_during_left_sections_during_custom_capability_files", get_defined_vars ());
735
+
736
+ echo '<div class="ws-menu-page-hr"></div>' . "\n";
737
+
738
+ echo '<p><strong>Custom Capabilities:</strong> (music,videos)</p>' . "\n";
739
+ echo '<p>Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-ccap-music</code><br />Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-ccap-videos</code></p>' . "\n";
740
+ echo '<p>Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-ccap-music/file.mp3</code><br />Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-ccap-videos/file.avi</code></p>' . "\n";
741
+ echo '<p>Now, here are some link examples, using Custom Capability Sub-directories:</p>' . "\n";
742
+ echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/ccap-file-downloads.x-php")) . '</p>' . "\n";
743
+ echo '<p><em>These links will ONLY work for Members who are logged-in, with the proper Capabilities.</em></p>' . "\n";
744
+
745
+ echo '<div class="ws-menu-page-hr"></div>' . "\n";
746
+
747
+ echo '<p><strong>Membership Levels:</strong> (this also works fine)</p>' . "\n";
748
+ echo '<p>Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level0</code><br />Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level1</code><br />Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level2</code><br />Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level3</code><br />Sub-Directory: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level4</code></p>' . "\n";
749
+ echo '<p>Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level0/tiger.doc</code><br />Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level1/zebra.pdf</code><br />Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level2/elephant.doc</code><br />Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level3/rhino.pdf</code><br />Protected File: <code>/' . esc_html (c_ws_plugin__s2member_utils_dirs::basename_dir_app_data ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"])) . '/access-s2member-level4/lion.doc</code></p>' . "\n";
750
+ echo '<p>Now, here are some link examples, using Member Level Sub-directories:</p>' . "\n";
751
+ echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/level-file-downloads.x-php")) . '</p>' . "\n";
752
+ echo '<p><em>These links will ONLY work for Members who are logged-in, with an adequate Membership Level.</em></p>' . "\n";
753
+ echo '</div>' . "\n";
754
+
755
+ echo '</div>' . "\n";
756
+
757
+ do_action ("ws_plugin__s2member_during_down_ops_page_during_left_sections_after_custom_capability_files", get_defined_vars ());
758
+ }
759
+
760
  do_action("ws_plugin__s2member_during_down_ops_page_after_left_sections", get_defined_vars());
761
 
762
  echo '<div class="ws-menu-page-hr"></div>'."\n";
includes/menu-pages/gen-ops.inc.php CHANGED
@@ -963,6 +963,25 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_gen_ops"))
963
  echo '<tbody>' . "\n";
964
  echo '<tr>' . "\n";
965
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
966
  echo '<td>' . "\n";
967
  echo '<h3 style="margin:0;">Footer Design (i.e. Bottom)</h3>' . "\n";
968
  echo '<p style="margin:0;">This field accepts raw HTML' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? ' (and/or PHP)' : '') . ' code.</p>' . "\n";
@@ -1183,9 +1202,51 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_gen_ops"))
1183
  foreach (($ws_plugin__s2member_temp_a = array_merge ((array)get_pages ())) as $ws_plugin__s2member_temp_o)
1184
  echo '<option value="' . esc_attr ($ws_plugin__s2member_temp_o->ID) . '"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_override"] && $ws_plugin__s2member_temp_o->ID == $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]) ? ' selected="selected"' : '') . '>' . esc_html ($ws_plugin__s2member_temp_o->post_title) . '</option>' . "\n";
1185
  echo '</select><br />' . "\n";
1186
- echo 'Please choose a Page to be used as the first page Members will see after logging in. This Page can contain anything you like. We recommend the following title: <code>Welcome To Our Members Area</code>.<br /><br />' . "\n";
1187
- echo '&darr; Or, you may configure a Special Redirection URL, if you prefer. You\'ll need to type in the full URL, starting with: <code>http://</code>. <em>A few <a href="#" onclick="alert(\'Replacement Codes:\\n\\n%%current_user_login%% = The current User\\\'s Username, lowercase.\\n%%current_user_id%% = The current User\\\'s ID.\\n%%current_user_level%% = The current User\\\'s s2Member Level.\\n%%current_user_role%% = The current User\\\'s WordPress® Role.' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '\\n%%current_user_ccaps%% = The current User\\\'s Custom Capabilities.' : '') . '\\n%%current_user_logins%% = Number of times the current User has logged in.\\n\\nFor example, if you\\\'re using BuddyPress, and you want to redirect Members to their BuddyPress Profile page after logging in, you would setup a Special Redirection URL, like this: ' . site_url ("/members/%%current_user_login%%/profile/") . '\\n\\nOr ... using %%current_user_level%%, you could have a separate Login Welcome Page for each Membership Level that you plan to offer. BuddyPress not required.\'); return false;">Replacement Codes</a> are also supported here.</em>' . "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188
  echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_login_redirection_override" id="ws-plugin--s2member-login-redirection-override" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_override"]) . '" /><br />' . "\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1189
  echo '</td>' . "\n";
1190
 
1191
  echo '</tr>' . "\n";
963
  echo '<tbody>' . "\n";
964
  echo '<tr>' . "\n";
965
 
966
+ echo '<th>' . "\n";
967
+ echo '<label for="ws-plugin--s2member-login-reg-footer-backtoblog">' . "\n";
968
+ echo 'Display [Back to Home Page] Link At Bottom?' . "\n";
969
+ echo '</label>' . "\n";
970
+ echo '</th>' . "\n";
971
+
972
+ echo '</tr>' . "\n";
973
+ echo '<tr>' . "\n";
974
+
975
+ echo '<td>' . "\n";
976
+ echo '<select name="ws_plugin__s2member_login_reg_footer_backtoblog" id="ws-plugin--s2member-login-reg-footer-backtoblog">' . "\n";
977
+ echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_footer_backtoblog"]) ? ' selected="selected"' : '') . '>Yes, display link at bottom pointing visitors back to the home page</option>' . "\n";
978
+ echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_footer_backtoblog"]) ? ' selected="selected"' : '') . '>No, hide this link (I\'ll create my own custom footer w/ the details I prefer)</option>' . "\n";
979
+ echo '</select>' . "\n";
980
+ echo '</td>' . "\n";
981
+
982
+ echo '</tr>' . "\n";
983
+ echo '<tr>' . "\n";
984
+
985
  echo '<td>' . "\n";
986
  echo '<h3 style="margin:0;">Footer Design (i.e. Bottom)</h3>' . "\n";
987
  echo '<p style="margin:0;">This field accepts raw HTML' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? ' (and/or PHP)' : '') . ' code.</p>' . "\n";
1202
  foreach (($ws_plugin__s2member_temp_a = array_merge ((array)get_pages ())) as $ws_plugin__s2member_temp_o)
1203
  echo '<option value="' . esc_attr ($ws_plugin__s2member_temp_o->ID) . '"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_override"] && $ws_plugin__s2member_temp_o->ID == $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]) ? ' selected="selected"' : '') . '>' . esc_html ($ws_plugin__s2member_temp_o->post_title) . '</option>' . "\n";
1204
  echo '</select><br />' . "\n";
1205
+ echo 'Please choose a Page to be used as the first page Members will see after logging in. This Page can contain anything you like. We recommend the following title: <code>Welcome To Our Members Area</code>.' . "\n";
1206
+ echo '</td>' . "\n";
1207
+
1208
+ echo '</tr>' . "\n";
1209
+ echo '<tr>' . "\n";
1210
+
1211
+ echo '<th>' . "\n";
1212
+ echo '<label for="ws-plugin--s2member-login-redirection-override">' . "\n";
1213
+ echo 'Or, a Special Redirection URL?' . "\n";
1214
+ echo '</label>' . "\n";
1215
+ echo '</th>' . "\n";
1216
+
1217
+ echo '</tr>' . "\n";
1218
+ echo '<tr>' . "\n";
1219
+
1220
+ echo '<td>' . "\n";
1221
  echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_login_redirection_override" id="ws-plugin--s2member-login-redirection-override" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_override"]) . '" /><br />' . "\n";
1222
+ echo 'Or, you may configure a Special Redirection URL, if you prefer. You\'ll need to type in the full URL, starting with: <code>http://</code>. <em>A few <a href="#" onclick="alert(\'Replacement Codes:\\n\\n%%current_user_login%% = The current User\\\'s Username, lowercase.\\n%%current_user_id%% = The current User\\\'s ID.\\n%%current_user_level%% = The current User\\\'s s2Member Level.\\n%%current_user_role%% = The current User\\\'s WordPress® Role.' . ((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) ? '\\n%%current_user_ccaps%% = The current User\\\'s Custom Capabilities.' : '') . '\\n%%current_user_logins%% = Number of times the current User has logged in.\\n\\nFor example, if you\\\'re using BuddyPress, and you want to redirect Members to their BuddyPress Profile page after logging in, you would setup a Special Redirection URL, like this: ' . site_url ("/members/%%current_user_login%%/profile/") . '\\n\\nOr ... using %%current_user_level%%, you could have a separate Login Welcome Page for each Membership Level that you plan to offer. BuddyPress not required.\'); return false;">Replacement Codes</a> are also supported here.</em>' . "\n";
1223
+ echo '</td>' . "\n";
1224
+
1225
+ echo '</tr>' . "\n";
1226
+ echo '</tbody>' . "\n";
1227
+ echo '</table>' . "\n";
1228
+
1229
+ echo '<div class="ws-menu-page-hr"></div>' . "\n";
1230
+
1231
+ echo '<table class="form-table" style="margin-top:0;">' . "\n";
1232
+ echo '<tbody>' . "\n";
1233
+ echo '<tr>' . "\n";
1234
+
1235
+ echo '<th>' . "\n";
1236
+ echo '<label for="ws-plugin--s2member-login-redirection-always-http">' . "\n";
1237
+ echo 'Always Redirect non-Administrative Users (after login) using HTTP?' . "\n";
1238
+ echo '</label>' . "\n";
1239
+ echo '</th>' . "\n";
1240
+
1241
+ echo '</tr>' . "\n";
1242
+ echo '<tr>' . "\n";
1243
+
1244
+ echo '<td>' . "\n";
1245
+ echo '<select name="ws_plugin__s2member_login_redirection_always_http" id="ws-plugin--s2member-login-redirection-always-http">' . "\n";
1246
+ echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"]) ? ' selected="selected"' : '') . '>No, do NOT modify (use WordPress® default behavior; e.g. detect URL scheme automatically)</option>' . "\n";
1247
+ echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"]) ? ' selected="selected"' : '') . '>Yes, always redirect non-administrative users to non-SSL version (e.g. always use http://)</option>' . "\n";
1248
+ echo '</select><br />' . "\n";
1249
+ echo 'Recommended setting: <code>Yes</code>. This is compatible w/ <a href="http://codex.wordpress.org/Administration_Over_SSL" target="_blank" rel="external"><code>FORCE_SSL_LOGIN</code></a> and/or <a href="http://codex.wordpress.org/Administration_Over_SSL" target="_blank" rel="external"><code>FORCE_SSL_ADMIN</code></a>.' . "\n";
1250
  echo '</td>' . "\n";
1251
 
1252
  echo '</tr>' . "\n";
includes/menu-pages/logs.inc.php CHANGED
@@ -80,19 +80,19 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_logs"))
80
  {
81
  do_action("ws_plugin__s2member_during_logs_page_during_left_sections_before_log_settings", get_defined_vars());
82
 
83
- echo '<div class="ws-menu-page-group" title="s2Member® Logging Configuration (for Debugging Purposes)">'."\n";
84
  echo '<div class="ws-menu-page-section ws-plugin--s2member-log-settings-section">'."\n";
85
 
86
  echo '<h3>s2Member® Logging Configuration (for Debugging Purposes)</h3>'."\n";
87
-
88
  echo '<div class="ws-menu-page-hilite" style="border-radius:3px; padding:5px;">'."\n";
89
  echo '<p style="font-size:110%; margin-top:0;"><span>We HIGHLY recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems that occur during processing. Enable logging here, and then view your log files below; in the s2Member® Log Viewer.</span></p>'."\n";
90
  echo '<p style="font-size:110%; margin-bottom:0;"><span class="ws-menu-page-error">However, it is VERY IMPORTANT to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We STRONGLY suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
91
  echo '<p style="font-size:110%; margin-bottom:0;"><span>Regarding s2Member® Security Badges. If debug logging is enabled, your site will NOT qualify for an s2Member® Security Badge until you disable logging (and you must ALSO download, and then delete any existing log files). For further details, please see KB Article: <a href="http://www.s2member.com/kb/security-badges/" target="_blank" rel="external">s2Member® Security Badges</a>.</span></p>'."\n";
92
  echo '</div>'."\n";
93
-
94
  echo '<div class="ws-menu-page-hr"></div>'."\n";
95
-
96
  do_action("ws_plugin__s2member_during_logs_page_during_left_sections_during_log_settings", get_defined_vars());
97
 
98
  echo '<form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form">' . "\n";
80
  {
81
  do_action("ws_plugin__s2member_during_logs_page_during_left_sections_before_log_settings", get_defined_vars());
82
 
83
+ echo '<div class="ws-menu-page-group" title="Logging Configuration (for Debugging)">'."\n";
84
  echo '<div class="ws-menu-page-section ws-plugin--s2member-log-settings-section">'."\n";
85
 
86
  echo '<h3>s2Member® Logging Configuration (for Debugging Purposes)</h3>'."\n";
87
+
88
  echo '<div class="ws-menu-page-hilite" style="border-radius:3px; padding:5px;">'."\n";
89
  echo '<p style="font-size:110%; margin-top:0;"><span>We HIGHLY recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems that occur during processing. Enable logging here, and then view your log files below; in the s2Member® Log Viewer.</span></p>'."\n";
90
  echo '<p style="font-size:110%; margin-bottom:0;"><span class="ws-menu-page-error">However, it is VERY IMPORTANT to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We STRONGLY suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
91
  echo '<p style="font-size:110%; margin-bottom:0;"><span>Regarding s2Member® Security Badges. If debug logging is enabled, your site will NOT qualify for an s2Member® Security Badge until you disable logging (and you must ALSO download, and then delete any existing log files). For further details, please see KB Article: <a href="http://www.s2member.com/kb/security-badges/" target="_blank" rel="external">s2Member® Security Badges</a>.</span></p>'."\n";
92
  echo '</div>'."\n";
93
+
94
  echo '<div class="ws-menu-page-hr"></div>'."\n";
95
+
96
  do_action("ws_plugin__s2member_during_logs_page_during_left_sections_during_log_settings", get_defined_vars());
97
 
98
  echo '<form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form">' . "\n";
includes/menu-pages/menu-pages-min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(b){b("div#ws-menu-page-js-c-w").hide();b(window).resize(tb_position=function(){var c=(b(window).width()>720)?720:b(window).width(),e=b(window).height(),d=(b("body.admin-bar").length)?28:0;b("#TB_window").css({width:c-50+"px",height:e-45-d+"px",top:25+d+"px","margin-top":0,"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});b("#TB_ajaxContent").css({width:c-50+"px",height:e-75-d+"px",margin:0,padding:0})});var a=b("div.ws-menu-page-group");a.each(function(e){var g=b(this),d="<ins>+</ins>",f=g,h=b.trim(f.attr("title"));var c=b('<div class="ws-menu-page-group-header">'+d+h+"</div>");c.css({"z-index":100-e});c.insertBefore(f),f.hide(),c.click(function(){var k=b(this),j=b("ins",k),i=k.next();if(i.css("display")==="none"){k.addClass("open"),j.html("-"),i.show()}else{k.removeClass("open"),j.html("+"),i.hide()}return false});if(a.length>1&&e===0){b('<div class="ws-menu-page-groups-show">+</div>').insertBefore(c).click(function(){b("div.ws-menu-page-group-header").each(function(){var k=b(this),j=b("ins",k),i=k.next();k.addClass("open"),j.html("-"),i.show();return});return false});b('<div class="ws-menu-page-groups-hide">-</div>').insertBefore(c).click(function(){b("div.ws-menu-page-group-header").each(function(){var k=b(this),j=b("ins",k),i=k.next();k.removeClass("open"),j.html("+"),i.hide();return});return false})}if(f.attr("default-state")==="open"){c.trigger("click")}return});if(a.length>1){b("div.ws-menu-page-group-header:first").css({"margin-right":"140px"});b("div.ws-menu-page-group:first").css({"margin-right":"145px"})}b("div.ws-menu-page-r-group-header").click(function(){var d=b(this),c=d.next("div.ws-menu-page-r-group");if(c.css("display")==="none"){b("ins",d).html("-"),d.addClass("open"),c.show()}else{b("ins",d).html("+"),d.removeClass("open");c.hide()}return false});b("div.ws-menu-page-group-header:first, div.ws-menu-page-r-group-header:first").css({"margin-top":"0"});b("div.ws-menu-page-group > div.ws-menu-page-section:first-child > h3").css({"margin-top":"0"});b("div.ws-menu-page-readme > div.readme > div.section:last-child").css({"border-bottom-width":"0"});b("input.ws-menu-page-media-btn").filter(function(){return(b(this).attr("rel"))?true:false}).click(function(){var c=b(this);window.send_to_editor=function(g){var h,f,d=b.trim(c.attr("rel"));if(d&&(h=b("input#"+d)).length>0){var e=h.css("background-color"),i=b.trim(b(g).attr("src"));i=(!i)?b.trim(b("img",g).attr("src")):i;h.val(i),h.css({"background-color":"#FFFFCC"}),setTimeout(function(){h.css({"background-color":e})},2000);tb_remove();return}else{if(d&&(f=b("textarea#"+d)).length>0){var e=f.css("background-color"),i=b.trim(b(g).attr("src"));i=(!i)?b.trim(b("img",g).attr("src")):i;f.val(b.trim(f.val())+"\n"+i),f.css({"background-color":"#FFFFCC"}),setTimeout(function(){f.css({"background-color":e})},2000);tb_remove();return}}};tb_show("","./media-upload.php?type=image&TB_iframe=true");return false});b("form#ws-updates-form").submit(function(){var c="";if(!b.trim(b("input#ws-updates-fname").val())){c+="First Name missing, please try again.\n\n"}if(!b.trim(b("input#ws-updates-lname").val())){c+="Last Name missing, please try again.\n\n"}if(!b.trim(b("input#ws-updates-email").val())){c+="Email missing, please try again.\n\n"}else{if(!b("input#ws-updates-email").val().match(/^([a-z_~0-9\+\-]+)(((\.?)([a-z_~0-9\+\-]+))*)(@)([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,6})$/i)){c+="Invalid email address, please try again.\n\n"}}if(c=b.trim(c)){alert("— Oops, you missed something: —\n\n"+c);return false}return true})});
1
+ jQuery(document).ready(function(b){b("div#ws-menu-page-js-c-w").hide();b(window).resize(tb_position=function(){var c=(b(window).width()>720)?720:b(window).width(),e=b(window).height(),d=(b("body.admin-bar").length)?28:0;b("#TB_window").css({width:c-50+"px",height:e-45-d+"px",top:25+d+"px","margin-top":0,"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});b("#TB_ajaxContent").css({width:c-50+"px",height:e-75-d+"px",margin:0,padding:0})});var a=b("div.ws-menu-page-group");a.each(function(e){var g=b(this),d="<ins>+</ins>",f=g,h=b.trim(f.attr("title"));var c=b('<div class="ws-menu-page-group-header">'+d+h+"</div>");c.css({"z-index":1});c.insertBefore(f),f.hide(),c.click(function(){var k=b(this),j=b("ins",k),i=k.next();if(i.css("display")==="none"){k.addClass("open"),j.html("-"),i.show()}else{k.removeClass("open"),j.html("+"),i.hide()}return false});if(a.length>1&&e===0){b('<div class="ws-menu-page-groups-show">+</div>').insertBefore(c).click(function(){b("div.ws-menu-page-group-header").each(function(){var k=b(this),j=b("ins",k),i=k.next();k.addClass("open"),j.html("-"),i.show();return});return false});b('<div class="ws-menu-page-groups-hide">-</div>').insertBefore(c).click(function(){b("div.ws-menu-page-group-header").each(function(){var k=b(this),j=b("ins",k),i=k.next();k.removeClass("open"),j.html("+"),i.hide();return});return false})}if(f.attr("default-state")==="open"){c.trigger("click")}return});if(a.length>1){b("div.ws-menu-page-group-header:first").css({"margin-right":"140px"});b("div.ws-menu-page-group:first").css({"margin-right":"145px"})}b("div.ws-menu-page-r-group-header").click(function(){var d=b(this),c=d.next("div.ws-menu-page-r-group");if(c.css("display")==="none"){b("ins",d).html("-"),d.addClass("open"),c.show()}else{b("ins",d).html("+"),d.removeClass("open");c.hide()}return false});b("div.ws-menu-page-group-header:first, div.ws-menu-page-r-group-header:first").css({"margin-top":"0"});b("div.ws-menu-page-group > div.ws-menu-page-section:first-child > h3").css({"margin-top":"0"});b("div.ws-menu-page-readme > div.readme > div.section:last-child").css({"border-bottom-width":"0"});b("input.ws-menu-page-media-btn").filter(function(){return(b(this).attr("rel"))?true:false}).click(function(){var c=b(this);window.send_to_editor=function(g){var h,f,d=b.trim(c.attr("rel"));if(d&&(h=b("input#"+d)).length>0){var e=h.css("background-color"),i=b.trim(b(g).attr("src"));i=(!i)?b.trim(b("img",g).attr("src")):i;h.val(i),h.css({"background-color":"#FFFFCC"}),setTimeout(function(){h.css({"background-color":e})},2000);tb_remove();return}else{if(d&&(f=b("textarea#"+d)).length>0){var e=f.css("background-color"),i=b.trim(b(g).attr("src"));i=(!i)?b.trim(b("img",g).attr("src")):i;f.val(b.trim(f.val())+"\n"+i),f.css({"background-color":"#FFFFCC"}),setTimeout(function(){f.css({"background-color":e})},2000);tb_remove();return}}};tb_show("","./media-upload.php?type=image&TB_iframe=true");return false});b("form#ws-updates-form").submit(function(){var c="";if(!b.trim(b("input#ws-updates-fname").val())){c+="First Name missing, please try again.\n\n"}if(!b.trim(b("input#ws-updates-lname").val())){c+="Last Name missing, please try again.\n\n"}if(!b.trim(b("input#ws-updates-email").val())){c+="Email missing, please try again.\n\n"}else{if(!b("input#ws-updates-email").val().match(/^([a-z_~0-9\+\-]+)(((\.?)([a-z_~0-9\+\-]+))*)(@)([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,6})$/i)){c+="Invalid email address, please try again.\n\n"}}if(c=b.trim(c)){alert("— Oops, you missed something: —\n\n"+c);return false}return true})});
includes/menu-pages/menu-pages.js CHANGED
@@ -36,7 +36,7 @@ jQuery(document).ready (function($)
36
 
37
  var $header = $('<div class="ws-menu-page-group-header">' + ins + title + '</div>');
38
 
39
- $header.css /* Stack them sequentially, top to bottom. */ ({'z-index': 100 - index});
40
 
41
  $header.insertBefore ($group), $group.hide (), $header.click (function()
42
  {
36
 
37
  var $header = $('<div class="ws-menu-page-group-header">' + ins + title + '</div>');
38
 
39
+ $header.css /* Stack them sequentially, top to bottom. */ ({'z-index': 1});
40
 
41
  $header.insertBefore ($group), $group.hide (), $header.click (function()
42
  {
includes/menu-pages/start.inc.php CHANGED
@@ -48,7 +48,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
48
  echo '<div class="ws-menu-page-group" title="Video Tutorials" style="padding-top:5px;">' . "\n";
49
 
50
  echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
51
- echo '<p><embed type="application/x-shockwave-flash" src="//www.youtube.com/p/A40AFC154461862E?version=3&hd=1&fs=1&rel=0" width="100%" height="550" allowscriptaccess="always" allowfullscreen="true"></embed></p>' . "\n";
52
  do_action ("ws_plugin__s2member_during_start_page_during_left_sections_during_video_tutorials", get_defined_vars ());
53
  echo '</div>' . "\n";
54
 
48
  echo '<div class="ws-menu-page-group" title="Video Tutorials" style="padding-top:5px;">' . "\n";
49
 
50
  echo '<div class="ws-menu-page-section ws-plugin--s2member-registration-process-section">' . "\n";
51
+ echo '<p><iframe src="//www.youtube.com/embed/videoseries?list=PLA40AFC154461862E" width="100%" height="550" frameborder="0" allowfullscreen></iframe></p>' . "\n";
52
  do_action ("ws_plugin__s2member_during_start_page_during_left_sections_during_video_tutorials", get_defined_vars ());
53
  echo '</div>' . "\n";
54
 
includes/syscon.inc.php CHANGED
@@ -167,6 +167,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
167
 
168
  $default_options["login_welcome_page"] = "";
169
  $default_options["login_redirection_override"] = "";
 
170
  $default_options["membership_options_page"] = "";
171
 
172
  $default_options["login_reg_design_enabled"] = "1";
@@ -189,6 +190,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
189
  $default_options["login_reg_font_family"] = "'Verdana', 'Arial', sans-serif";
190
  $default_options["login_reg_font_field_size"] = "18px";
191
 
 
192
  $default_options["login_reg_footer_design"] = "";
193
 
194
  $default_options["reg_email_from_name"] = get_bloginfo("name");
@@ -426,6 +428,9 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
426
  else if($key === "login_redirection_override" && (!is_string($value) || !strlen($value)))
427
  $value = $default_options[$key];
428
 
 
 
 
429
  else if($key === "membership_options_page" && (!is_string($value) || !is_numeric($value)))
430
  $value = $default_options[$key];
431
 
@@ -441,6 +446,9 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
441
  else if(preg_match("/^login_reg_(?:background|logo|font|footer)_/", $key) && !preg_match("/background_image/", $key) && (!is_string($value) || !strlen($value)))
442
  $value = $default_options[$key];
443
 
 
 
 
444
  else if(preg_match("/^reg_email_(?:from_name|from_email|support_link)$/", $key) && (!is_string($value) || !strlen($value)))
445
  $value = $default_options[$key];
446
 
167
 
168
  $default_options["login_welcome_page"] = "";
169
  $default_options["login_redirection_override"] = "";
170
+ $default_options["login_redirection_always_http"] = "1";
171
  $default_options["membership_options_page"] = "";
172
 
173
  $default_options["login_reg_design_enabled"] = "1";
190
  $default_options["login_reg_font_family"] = "'Verdana', 'Arial', sans-serif";
191
  $default_options["login_reg_font_field_size"] = "18px";
192
 
193
+ $default_options["login_reg_footer_backtoblog"] = "0";
194
  $default_options["login_reg_footer_design"] = "";
195
 
196
  $default_options["reg_email_from_name"] = get_bloginfo("name");
428
  else if($key === "login_redirection_override" && (!is_string($value) || !strlen($value)))
429
  $value = $default_options[$key];
430
 
431
+ else if($key === "login_redirection_always_http" && (!is_string($value) || !is_numeric($value)))
432
+ $value = $default_options[$key];
433
+
434
  else if($key === "membership_options_page" && (!is_string($value) || !is_numeric($value)))
435
  $value = $default_options[$key];
436
 
446
  else if(preg_match("/^login_reg_(?:background|logo|font|footer)_/", $key) && !preg_match("/background_image/", $key) && (!is_string($value) || !strlen($value)))
447
  $value = $default_options[$key];
448
 
449
+ else if($key === "login_reg_footer_backtoblog" && (!is_string($value) || !is_numeric($value)))
450
+ $value = $default_options[$key];
451
+
452
  else if(preg_match("/^reg_email_(?:from_name|from_email|support_link)$/", $key) && (!is_string($value) || !strlen($value)))
453
  $value = $default_options[$key];
454
 
includes/translations/s2member.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the s2Member® Framework package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: s2Member® Framework 130801\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
- "POT-Creation-Date: 2013-08-02 09:54:27+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -1450,12 +1450,12 @@ msgctxt "s2member-front"
1450
  msgid "Yes, I want to receive updates via email."
1451
  msgstr ""
1452
 
1453
- #: s2member/includes/syscon.inc.php:200
1454
  msgctxt "s2member-front"
1455
  msgid "[%s] Username/Password"
1456
  msgstr ""
1457
 
1458
- #: s2member/includes/syscon.inc.php:201
1459
  msgctxt "s2member-front"
1460
  msgid ""
1461
  "Your Username/Password for:\n"
@@ -1466,12 +1466,12 @@ msgid ""
1466
  "%%%%wp_login_url%%%%"
1467
  msgstr ""
1468
 
1469
- #: s2member/includes/syscon.inc.php:204
1470
  msgctxt "s2member-front"
1471
  msgid "[%s] New User Registration"
1472
  msgstr ""
1473
 
1474
- #: s2member/includes/syscon.inc.php:205
1475
  msgctxt "s2member-front"
1476
  msgid ""
1477
  "New User Registration on your site:\n"
@@ -1483,12 +1483,12 @@ msgid ""
1483
  "IP Address: %%%%user_ip%%%%"
1484
  msgstr ""
1485
 
1486
- #: s2member/includes/syscon.inc.php:226 s2member-pro/includes/syscon.inc.php:94
1487
  msgctxt "s2member-front"
1488
  msgid "Congratulations! (your membership has been approved)"
1489
  msgstr ""
1490
 
1491
- #: s2member/includes/syscon.inc.php:227
1492
  msgctxt "s2member-front"
1493
  msgid ""
1494
  "Thanks %%%%first_name%%%%! Your membership has been approved.\n"
@@ -1504,12 +1504,12 @@ msgid ""
1504
  "%s"
1505
  msgstr ""
1506
 
1507
- #: s2member/includes/syscon.inc.php:230 s2member-pro/includes/syscon.inc.php:98
1508
  msgctxt "s2member-front"
1509
  msgid "Thank You! (instructions for access)"
1510
  msgstr ""
1511
 
1512
- #: s2member/includes/syscon.inc.php:231
1513
  msgctxt "s2member-front"
1514
  msgid ""
1515
  "Thanks %%%%first_name%%%%!\n"
@@ -1526,32 +1526,32 @@ msgid ""
1526
  "%s"
1527
  msgstr ""
1528
 
1529
- #: s2member/includes/syscon.inc.php:259
1530
  msgctxt "s2member-front"
1531
  msgid "Free Subscriber"
1532
  msgstr ""
1533
 
1534
- #: s2member/includes/syscon.inc.php:259
1535
  msgctxt "s2member-front"
1536
  msgid "Bronze Member"
1537
  msgstr ""
1538
 
1539
- #: s2member/includes/syscon.inc.php:259
1540
  msgctxt "s2member-front"
1541
  msgid "Silver Member"
1542
  msgstr ""
1543
 
1544
- #: s2member/includes/syscon.inc.php:259
1545
  msgctxt "s2member-front"
1546
  msgid "Gold Member"
1547
  msgstr ""
1548
 
1549
- #: s2member/includes/syscon.inc.php:259
1550
  msgctxt "s2member-front"
1551
  msgid "Platinum Member"
1552
  msgstr ""
1553
 
1554
- #: s2member/includes/syscon.inc.php:259
1555
  msgctxt "s2member-front"
1556
  msgid "Level %s Member"
1557
  msgstr ""
@@ -2484,8 +2484,8 @@ msgstr ""
2484
 
2485
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:288
2486
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:626
2487
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:330
2488
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:653
2489
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:388
2490
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:722
2491
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:469
@@ -2496,8 +2496,8 @@ msgstr ""
2496
 
2497
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
2498
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:743
2499
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:490
2500
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:806
2501
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:561
2502
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:874
2503
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:737
@@ -2512,10 +2512,10 @@ msgstr ""
2512
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:773
2513
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:125
2514
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:142
2515
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:499
2516
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:520
2517
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:815
2518
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:836
2519
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:570
2520
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:591
2521
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:883
@@ -2532,8 +2532,8 @@ msgstr ""
2532
 
2533
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
2534
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:764
2535
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:511
2536
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:827
2537
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:582
2538
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:895
2539
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:758
@@ -2543,7 +2543,7 @@ msgid "<strong>Thank you.</strong> Your account has been approved.<br />&mdash;
2543
  msgstr ""
2544
 
2545
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
2546
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:847
2547
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:915
2548
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1101
2549
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:137
@@ -3727,8 +3727,8 @@ msgctxt "s2member-front"
3727
  msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal®</a> to cancel your Subscription."
3728
  msgstr ""
3729
 
3730
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:342
3731
- #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:665
3732
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:486
3733
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:918
3734
  msgctxt "s2member-front"
2
  # This file is distributed under the same license as the s2Member® Framework package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: s2Member® Framework 130802\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
+ "POT-Creation-Date: 2013-08-16 07:10:15+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
1450
  msgid "Yes, I want to receive updates via email."
1451
  msgstr ""
1452
 
1453
+ #: s2member/includes/syscon.inc.php:202
1454
  msgctxt "s2member-front"
1455
  msgid "[%s] Username/Password"
1456
  msgstr ""
1457
 
1458
+ #: s2member/includes/syscon.inc.php:203
1459
  msgctxt "s2member-front"
1460
  msgid ""
1461
  "Your Username/Password for:\n"
1466
  "%%%%wp_login_url%%%%"
1467
  msgstr ""
1468
 
1469
+ #: s2member/includes/syscon.inc.php:206
1470
  msgctxt "s2member-front"
1471
  msgid "[%s] New User Registration"
1472
  msgstr ""
1473
 
1474
+ #: s2member/includes/syscon.inc.php:207
1475
  msgctxt "s2member-front"
1476
  msgid ""
1477
  "New User Registration on your site:\n"
1483
  "IP Address: %%%%user_ip%%%%"
1484
  msgstr ""
1485
 
1486
+ #: s2member/includes/syscon.inc.php:228 s2member-pro/includes/syscon.inc.php:94
1487
  msgctxt "s2member-front"
1488
  msgid "Congratulations! (your membership has been approved)"
1489
  msgstr ""
1490
 
1491
+ #: s2member/includes/syscon.inc.php:229
1492
  msgctxt "s2member-front"
1493
  msgid ""
1494
  "Thanks %%%%first_name%%%%! Your membership has been approved.\n"
1504
  "%s"
1505
  msgstr ""
1506
 
1507
+ #: s2member/includes/syscon.inc.php:232 s2member-pro/includes/syscon.inc.php:98
1508
  msgctxt "s2member-front"
1509
  msgid "Thank You! (instructions for access)"
1510
  msgstr ""
1511
 
1512
+ #: s2member/includes/syscon.inc.php:233
1513
  msgctxt "s2member-front"
1514
  msgid ""
1515
  "Thanks %%%%first_name%%%%!\n"
1526
  "%s"
1527
  msgstr ""
1528
 
1529
+ #: s2member/includes/syscon.inc.php:261
1530
  msgctxt "s2member-front"
1531
  msgid "Free Subscriber"
1532
  msgstr ""
1533
 
1534
+ #: s2member/includes/syscon.inc.php:261
1535
  msgctxt "s2member-front"
1536
  msgid "Bronze Member"
1537
  msgstr ""
1538
 
1539
+ #: s2member/includes/syscon.inc.php:261
1540
  msgctxt "s2member-front"
1541
  msgid "Silver Member"
1542
  msgstr ""
1543
 
1544
+ #: s2member/includes/syscon.inc.php:261
1545
  msgctxt "s2member-front"
1546
  msgid "Gold Member"
1547
  msgstr ""
1548
 
1549
+ #: s2member/includes/syscon.inc.php:261
1550
  msgctxt "s2member-front"
1551
  msgid "Platinum Member"
1552
  msgstr ""
1553
 
1554
+ #: s2member/includes/syscon.inc.php:261
1555
  msgctxt "s2member-front"
1556
  msgid "Level %s Member"
1557
  msgstr ""
2484
 
2485
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:288
2486
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:626
2487
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:332
2488
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:655
2489
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:388
2490
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:722
2491
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:469
2496
 
2497
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
2498
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:743
2499
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:492
2500
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:808
2501
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:561
2502
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:874
2503
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:737
2512
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:773
2513
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:125
2514
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:142
2515
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:501
2516
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:522
2517
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:817
2518
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:838
2519
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:570
2520
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:591
2521
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:883
2532
 
2533
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
2534
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:764
2535
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:513
2536
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:829
2537
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:582
2538
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:895
2539
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:758
2543
  msgstr ""
2544
 
2545
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
2546
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:849
2547
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:915
2548
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1101
2549
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:137
3727
  msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal®</a> to cancel your Subscription."
3728
  msgstr ""
3729
 
3730
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:344
3731
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:667
3732
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:486
3733
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:918
3734
  msgctxt "s2member-front"
readme.txt CHANGED
@@ -1,7 +1,7 @@
1
  === s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
- Version: 130802
4
- Stable tag: 130802
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
@@ -66,7 +66,7 @@ Yes. s2Member and s2Member Pro, are also both compatible with Multisite Networki
66
 
67
  **NOTE:** Please do NOT use the WordPress® forums to seek company support. Support for s2Member® is handled in [our own support forums](http://www.s2member.com/forums/).
68
 
69
- [youtube http://www.youtube.com/watch?v=neGsNjWhOBs /]
70
 
71
  The s2Member® Framework (free) integrates with PayPal® Website Payments Standard (also free), and fully supports recurring billing. s2Member supports custom Pages for registration (including Custom Registration/Profile Fields), account access, and a lot more. s2Member is compatible with Multisite Networking too, and even with BuddyPress and bbPress. With the s2Member® Pro add-on (an optional paid upgrade), you can add support for unlimited Membership Levels, PayPal® Website Payments Pro (w/ Pro Forms to facilitate on-site credit card processing), Authorize.Net® (also with Pro Forms), Google® Checkout, ClickBank®, advanced User Import/Export tools, the ability to use Coupon Codes, and many other enhancements. Videos available at: [s2Member.com / Videos](http://www.s2member.com/videos/).
72
 
@@ -92,11 +92,19 @@ Please see [this FAQ entry](http://www.s2member.com/faqs/#s2-faqs-translations)
92
 
93
  == Upgrade Notice ==
94
 
95
- = v130802 =
96
  (Maintenance Release) Upgrade immediately.
97
 
98
  == Changelog ==
99
 
 
 
 
 
 
 
 
 
100
  = v130802 =
101
  * (s2Member Pro) **Compatibility, WordPress® v3.6** Updating s2Member® Pro Form templates and their underlying CSS. This update improves their appearance against the Twenty Thirteen theme that comes with WordPress® v3.6. Specifically, some of the Pro Form buttons were a little out of place in this new default theme. Fixed in this release.
102
  * (s2Member Pro) **Compatibility, Checkout Options (#443)** Revision 3. Updating this feature to support a wider variety of WordPress® configurations and content filters. This update also resolves an empty `desc=""` attribute error reported by some site owners. Feature description... It is now possible to build dropdown menus offering your customers a variety of options using a Single Pro Form. This is accomplished quite easily using Shortcodes. For full details and examples, please check this section of your Dashboard in the latest release. See: `s2Member® -› PayPal® Pro Forms -› Wrapping Multiple Shortcodes as "Checkout Options"`. NOTE: this works for PayPal® Pro Forms, and ALSO for Authorize.Net Pro Forms.
1
  === s2Member® Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
+ Version: 130816
4
+ Stable tag: 130816
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
66
 
67
  **NOTE:** Please do NOT use the WordPress® forums to seek company support. Support for s2Member® is handled in [our own support forums](http://www.s2member.com/forums/).
68
 
69
+ [youtube http://www.youtube.com/watch?v=2C3Lan7vxw0 /]
70
 
71
  The s2Member® Framework (free) integrates with PayPal® Website Payments Standard (also free), and fully supports recurring billing. s2Member supports custom Pages for registration (including Custom Registration/Profile Fields), account access, and a lot more. s2Member is compatible with Multisite Networking too, and even with BuddyPress and bbPress. With the s2Member® Pro add-on (an optional paid upgrade), you can add support for unlimited Membership Levels, PayPal® Website Payments Pro (w/ Pro Forms to facilitate on-site credit card processing), Authorize.Net® (also with Pro Forms), Google® Checkout, ClickBank®, advanced User Import/Export tools, the ability to use Coupon Codes, and many other enhancements. Videos available at: [s2Member.com / Videos](http://www.s2member.com/videos/).
72
 
92
 
93
  == Upgrade Notice ==
94
 
95
+ = v130816 =
96
  (Maintenance Release) Upgrade immediately.
97
 
98
  == Changelog ==
99
 
100
+ = v130816 =
101
+ * (s2Member Pro) **Compatibility, ClickBank (#467)** Improving support for ClickBank PitchPlus Upsell Flows. Please see [this thread](http://www.s2member.com/forums/topic/clickbank-buttons-not-working/#post-55725) for further details.
102
+ * (s2Member/s2Member Pro) **User Search on Multisite Networks (#468)** User search functionality was partially broken for Child Blogs in a Multisite Network after some improvements were implemented in s2Member® v130731. The issue has now been corrected in this release for Multisite Networks. For further details, please see [this thread](http://www.s2member.com/forums/topic/user-search-no-longer-working/#post-55778).
103
+ * (s2Member/s2Member Pro) **Z-Index in Menu Pages (#461)** Stacking order against a WordPress® installation running a Dashboard with a collapsed sidebar menu (left side) was causing some UI problems. Fixed in this release.
104
+ * (s2Member/s2Member Pro) **SSL Compatibility (#437)** Adding a new option in the `s2Member® -› General Options -› Login Welcome Page` section. The default value for this new option is always `yes`. However, the default functionality can be turned off (if you prefer). This new option allows site owners to better integrate with a core WordPress® feature commonly referred to as `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`. This new feature can be used, or not. It is intended mainly for site owners running w/ `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`.
105
+ * (s2Member/s2Member Pro) **Login/Registration Design Option (#437)** Adding a new option in the `s2Member® -› General Options -› Login/Registration Design` section. This new option (found at the bottom of `s2Member® -› General Options -› Login/Registration Design`) allows a site owner to show/hide the `Back To Home Page` link at the bottom of the default WordPress® Login/Registration system. This can be useful for site owners running w/ `FORCE_SSL_LOGIN` and/or `FORCE_SSL_ADMIN`; where they would prefer NOT to link customers back to the main site under a default HTTPS link; but rather, create their own link and gain better control over this area of their site.
106
+ * (s2Member/s2Member Pro) **Videos (#467)** Updating internal documentation found in `Dashboard -› s2Member® -› Quick-Start`. Specifically, the video player here was integrated with an older version of the YouTube® API and was not working properly. Fixed in this release.
107
+
108
  = v130802 =
109
  * (s2Member Pro) **Compatibility, WordPress® v3.6** Updating s2Member® Pro Form templates and their underlying CSS. This update improves their appearance against the Twenty Thirteen theme that comes with WordPress® v3.6. Specifically, some of the Pro Form buttons were a little out of place in this new default theme. Fixed in this release.
110
  * (s2Member Pro) **Compatibility, Checkout Options (#443)** Revision 3. Updating this feature to support a wider variety of WordPress® configurations and content filters. This update also resolves an empty `desc=""` attribute error reported by some site owners. Feature description... It is now possible to build dropdown menus offering your customers a variety of options using a Single Pro Form. This is accomplished quite easily using Shortcodes. For full details and examples, please check this section of your Dashboard in the latest release. See: `s2Member® -› PayPal® Pro Forms -› Wrapping Multiple Shortcodes as "Checkout Options"`. NOTE: this works for PayPal® Pro Forms, and ALSO for Authorize.Net Pro Forms.
s2member.php CHANGED
@@ -19,8 +19,8 @@
19
  */
20
  /* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
21
 
22
- Version: 130802
23
- Stable tag: 130802
24
 
25
  SSL Compatible: yes
26
  bbPress® Compatible: yes
@@ -75,7 +75,7 @@ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
- define("WS_PLUGIN__S2MEMBER_VERSION", "130802" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
@@ -105,7 +105,7 @@ if(!defined("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION"))
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
- define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "130802" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.
19
  */
20
  /* -- This section for WordPress® parsing. ------------------------------------------------------------------------------
21
 
22
+ Version: 130816
23
+ Stable tag: 130816
24
 
25
  SSL Compatible: yes
26
  bbPress® Compatible: yes
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
+ define("WS_PLUGIN__S2MEMBER_VERSION", "130816" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
+ define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "130816" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.