Version Description
= v151218 =
(Maintenance Release) Upgrade immediately.
Download this release
Release Info
Developer | JasWSInc |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 151218 |
Comparing to | |
See all releases |
Code changes from version 151210 to 151218
- changelog.md +10 -0
- checksum.txt +1 -1
- includes/classes/menu-pages.inc.php +18 -0
- includes/classes/mms-patches.inc.php +3 -3
- includes/classes/sc-paypal-button-e.inc.php +6 -1
- includes/classes/user-deletions.inc.php +1 -0
- includes/classes/users-list-in.inc.php +16 -0
- includes/menu-pages/code-samples/mms-patch-load.x-php +3 -3
- includes/menu-pages/help.inc.php +135 -0
- includes/menu-pages/logs.inc.php +0 -34
- includes/menu-pages/start.inc.php +0 -35
- includes/translations/s2member.pot +5 -5
- readme.txt +14 -4
- s2member.php +4 -4
changelog.md
CHANGED
@@ -1,3 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= v151210 =
|
2 |
|
3 |
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
1 |
+
= v151218 =
|
2 |
+
|
3 |
+
- (s2Member Pro) **Reminder Email Notification Exclusions:** It is now possible to enable/disable EOT Renewal/Reminder Email notifications on a per-user basis. You can edit a user's profile in the WP Dashboard and check "_No (exclude)_" to prevent specific users from receiving any reminder emails that you configured. Props at @patdumond @luisrock. See also [this GitHub issue](https://github.com/websharks/s2member/issues/816).
|
4 |
+
|
5 |
+
- (s2Member) **PHP v7 Compat.:** This release addresses one remaining issue with the `preg_replace` `/e` modifier as reported in [this GitHub issue](https://github.com/websharks/s2member/issues/811). Props @nerdworker for reporting. Thanks!
|
6 |
+
|
7 |
+
- (s2Member/s2Member Pro) **WP v4.4 Compat.:** This release corrects an issue that impacted sites attempting to run s2Member on a Multisite Network; i.e., it corrects a problem with the `load.php` patch against the latest release of WordPress. Props @crazycoolcam for reporting! See also [this GitHub issue](https://github.com/websharks/s2member/issues/812).
|
8 |
+
|
9 |
+
- (s2Member/s2Member Pro) **Getting Help:** This release adds a new menu page titled, "Getting Help w/ s2Member". This new section of your Dashboard provides quick & easy access to s2Member KB articles, suggestions, and our tech support department (for pro customers). Props @patdumond @raamdev. See also [this GitHub issue](https://github.com/websharks/s2member/issues/814).
|
10 |
+
|
11 |
= v151210 =
|
12 |
|
13 |
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
checksum.txt
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
1 |
+
35a15209842402cdccb9dd5222d6bd47
|
includes/classes/menu-pages.inc.php
CHANGED
@@ -154,6 +154,9 @@ if(!class_exists('c_ws_plugin__s2member_menu_pages'))
|
|
154 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_start_page', TRUE, get_defined_vars()))
|
155 |
add_submenu_page($menu, 'Getting Started w/ s2Member', 'Getting Started', 'create_users', 'ws-plugin--s2member-start', 'c_ws_plugin__s2member_menu_pages::start_page');
|
156 |
|
|
|
|
|
|
|
157 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_divider_1', TRUE, get_defined_vars()))
|
158 |
add_submenu_page($menu, '', '<span style="display:block; margin:1px 0 1px -5px; padding:0; height:1px; line-height:1px; background:#CCCCCC;"></span>', 'create_users', '#');
|
159 |
|
@@ -510,6 +513,21 @@ if(!class_exists('c_ws_plugin__s2member_menu_pages'))
|
|
510 |
do_action('ws_plugin__s2member_after_start_page', get_defined_vars());
|
511 |
}
|
512 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
/**
|
514 |
* Builds and handles the Main Multisite Options page.
|
515 |
*
|
154 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_start_page', TRUE, get_defined_vars()))
|
155 |
add_submenu_page($menu, 'Getting Started w/ s2Member', 'Getting Started', 'create_users', 'ws-plugin--s2member-start', 'c_ws_plugin__s2member_menu_pages::start_page');
|
156 |
|
157 |
+
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_help_page', !is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site (), get_defined_vars()))
|
158 |
+
add_submenu_page($menu, 'Getting Help w/ s2Member', 'Getting Help', 'create_users', 'ws-plugin--s2member-help', 'c_ws_plugin__s2member_menu_pages::help_page');
|
159 |
+
|
160 |
if(apply_filters('ws_plugin__s2member_during_add_admin_options_add_divider_1', TRUE, get_defined_vars()))
|
161 |
add_submenu_page($menu, '', '<span style="display:block; margin:1px 0 1px -5px; padding:0; height:1px; line-height:1px; background:#CCCCCC;"></span>', 'create_users', '#');
|
162 |
|
513 |
do_action('ws_plugin__s2member_after_start_page', get_defined_vars());
|
514 |
}
|
515 |
|
516 |
+
/**
|
517 |
+
* Builds and handles the Getting Help page.
|
518 |
+
*
|
519 |
+
* @package s2Member\Menu_Pages
|
520 |
+
* @since 151218
|
521 |
+
*/
|
522 |
+
public static function help_page()
|
523 |
+
{
|
524 |
+
do_action('ws_plugin__s2member_before_help_page', get_defined_vars());
|
525 |
+
|
526 |
+
include_once dirname(dirname(__FILE__)).'/menu-pages/help.inc.php';
|
527 |
+
|
528 |
+
do_action('ws_plugin__s2member_after_help_page', get_defined_vars());
|
529 |
+
}
|
530 |
+
|
531 |
/**
|
532 |
* Builds and handles the Main Multisite Options page.
|
533 |
*
|
includes/classes/mms-patches.inc.php
CHANGED
@@ -88,9 +88,9 @@ if (!class_exists ("c_ws_plugin__s2member_mms_patches"))
|
|
88 |
else // Otherwise, we need to report that /wp-login.php could NOT be updated. Possibly a permissions error.
|
89 |
($display_notices) ? c_ws_plugin__s2member_admin_notices::display_admin_notice ('Your <code>/wp-login.php</code> file could NOT be patched. File NOT writable.', true) : null;
|
90 |
|
91 |
-
$load_file = ABSPATH . WPINC . "/load.php";
|
92 |
-
$load_section = "/([\r\n\t\s ]+)(if( *?)\(( *?)empty( *?)\(( *?)\\\$active_plugins( *?)\)( *?)\|\|( *?)defined( *?)\(( *?)['\"]WP_INSTALLING['\"]( *?)\)( *?)\))/";
|
93 |
-
$load_replace = "\n\n\t// Modified for full plugin compatiblity.\n\t//if ( empty( \$active_plugins ) ||
|
94 |
|
95 |
if (file_exists ($load_file) && ($load = file_get_contents ($load_file)) && is_writable ($load_file))
|
96 |
{
|
88 |
else // Otherwise, we need to report that /wp-login.php could NOT be updated. Possibly a permissions error.
|
89 |
($display_notices) ? c_ws_plugin__s2member_admin_notices::display_admin_notice ('Your <code>/wp-login.php</code> file could NOT be patched. File NOT writable.', true) : null;
|
90 |
|
91 |
+
$load_file = ABSPATH . WPINC . "/load.php"; // WordPress v4.4 uses `wp_installing()` instead of `defined( 'WP_INSTALLING' )`
|
92 |
+
$load_section = "/([\r\n\t\s ]+)(if( *?)\(( *?)empty( *?)\(( *?)\\\$active_plugins( *?)\)( *?)\|\|( *?)(wp_installing\s*\(\s*\)|defined( *?)\(( *?)['\"]WP_INSTALLING['\"]( *?)\))( *?)\))/";
|
93 |
+
$load_replace = "\n\n\t// Modified for full plugin compatiblity.\n\t//if ( empty( \$active_plugins ) || wp_installing() )\n\tif ( empty( \$active_plugins ) || ( wp_installing() && !preg_match(\"/\/wp-activate\.php/\", \$_SERVER[\"REQUEST_URI\"]) ) )";
|
94 |
|
95 |
if (file_exists ($load_file) && ($load = file_get_contents ($load_file)) && is_writable ($load_file))
|
96 |
{
|
includes/classes/sc-paypal-button-e.inc.php
CHANGED
@@ -77,7 +77,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_e"))
|
|
77 |
$default_image = "https://www.paypal.com/" . (($attr["lang"]) ? $attr["lang"] : _x ("en_US", "s2member-front paypal-button-lang-code", "s2member")) . "/i/btn/btn_xpressCheckout.gif";
|
78 |
|
79 |
$code = preg_replace ("/\<img[^\>]+\>/i", "", $code); // Remove 1x1 pixel tracking image that PayPal sticks in there.
|
80 |
-
$code =
|
81 |
|
82 |
$code = ($attr["image"] && $attr["image"] !== "default") ? preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_refs (esc_attr ($attr["image"])) . '"', $code) : preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_refs (esc_attr ($default_image)) . '"', $code);
|
83 |
|
@@ -92,5 +92,10 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_e"))
|
|
92 |
// Instead, use: `ws_plugin__s2member_sc_paypal_button`.
|
93 |
return $code; // Button Code. Possibly w/ API encryption now.
|
94 |
}
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
96 |
}
|
77 |
$default_image = "https://www.paypal.com/" . (($attr["lang"]) ? $attr["lang"] : _x ("en_US", "s2member-front paypal-button-lang-code", "s2member")) . "/i/btn/btn_xpressCheckout.gif";
|
78 |
|
79 |
$code = preg_replace ("/\<img[^\>]+\>/i", "", $code); // Remove 1x1 pixel tracking image that PayPal sticks in there.
|
80 |
+
$code = preg_replace_callback ("/(\<input)([^\>]+)(\>)/i", "c_ws_plugin__s2member_sc_paypal_button_e::_sc_paypal_button_encryption_preg_replace_xhtml_callback", $code);
|
81 |
|
82 |
$code = ($attr["image"] && $attr["image"] !== "default") ? preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_refs (esc_attr ($attr["image"])) . '"', $code) : preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_refs (esc_attr ($default_image)) . '"', $code);
|
83 |
|
92 |
// Instead, use: `ws_plugin__s2member_sc_paypal_button`.
|
93 |
return $code; // Button Code. Possibly w/ API encryption now.
|
94 |
}
|
95 |
+
|
96 |
+
public static function _sc_paypal_button_encryption_preg_replace_xhtml_callback($m)
|
97 |
+
{
|
98 |
+
return $m[1].rtrim($m[2], " /\t\n\r\0\x0B").' /'.$m[3];
|
99 |
+
}
|
100 |
}
|
101 |
}
|
includes/classes/user-deletions.inc.php
CHANGED
@@ -125,6 +125,7 @@ if(!class_exists('c_ws_plugin__s2member_user_deletions'))
|
|
125 |
delete_user_option($user_id, 's2member_first_payment_txn_id');
|
126 |
delete_user_option($user_id, 's2member_last_payment_time');
|
127 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
|
|
128 |
|
129 |
delete_user_option($user_id, 's2member_file_download_access_arc');
|
130 |
delete_user_option($user_id, 's2member_file_download_access_log');
|
125 |
delete_user_option($user_id, 's2member_first_payment_txn_id');
|
126 |
delete_user_option($user_id, 's2member_last_payment_time');
|
127 |
delete_user_option($user_id, 's2member_auto_eot_time');
|
128 |
+
delete_user_option($user_id, 's2member_reminders_enable');
|
129 |
|
130 |
delete_user_option($user_id, 's2member_file_download_access_arc');
|
131 |
delete_user_option($user_id, 's2member_file_download_access_log');
|
includes/classes/users-list-in.inc.php
CHANGED
@@ -205,6 +205,19 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
|
|
205 |
|
206 |
if(c_ws_plugin__s2member_utils_conds::pro_is_installed())
|
207 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
209 |
do_action("ws_plugin__s2member_during_users_list_edit_cols_before_reset_pass_resend", get_defined_vars());
|
210 |
unset($__refs, $__v);
|
@@ -478,6 +491,9 @@ if(!class_exists("c_ws_plugin__s2member_users_list_in"))
|
|
478 |
if(isset($_p["ws_plugin__s2member_profile_s2member_auto_eot_time"]) && isset($auto_eot_time))
|
479 |
update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
480 |
|
|
|
|
|
|
|
481 |
if(isset($_p["ws_plugin__s2member_profile_s2member_ccaps"]))
|
482 |
{
|
483 |
foreach($user->allcaps as $cap => $cap_enabled)
|
205 |
|
206 |
if(c_ws_plugin__s2member_utils_conds::pro_is_installed())
|
207 |
{
|
208 |
+
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
209 |
+
do_action("ws_plugin__s2member_during_users_list_edit_cols_before_reminders_enable", get_defined_vars());
|
210 |
+
unset($__refs, $__v);
|
211 |
+
|
212 |
+
echo '<tr>'."\n";
|
213 |
+
echo '<th><label for="ws-plugin--s2member-profile-s2member-reminders-enable-yes">Enable Reminder Emails?</label> <a href="#" onclick="alert(\'This setting applies only if you have configured reminder email notifications in s2Member; e.g., EOT Renewal/Reminder Emails or NPT Renewal/Reminder Emails.\'); return false;" tabindex="-1">[?]</a></th>'."\n";
|
214 |
+
echo '<td><label><input type="radio" name="ws_plugin__s2member_profile_s2member_reminders_enable" id="ws-plugin--s2member-profile-s2member-reminders-enable-yes" value="1"'.((string)get_user_option('s2member_reminders_enable', $user_id) !== '0' ? ' checked' : '').' /> Yes</label> <label><input type="radio" name="ws_plugin__s2member_profile_s2member_reminders_enable" id="ws-plugin--s2member-profile-s2member-reminders-enable-no" value="0"'.((string)get_user_option('s2member_reminders_enable', $user_id) === '0' ? ' checked' : '').' /> No (exclude)</label></td>'."\n";
|
215 |
+
echo '</tr>'."\n";
|
216 |
+
|
217 |
+
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
218 |
+
do_action("ws_plugin__s2member_during_users_list_edit_cols_after_reminders_enable", get_defined_vars());
|
219 |
+
unset($__refs, $__v);
|
220 |
+
|
221 |
foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
|
222 |
do_action("ws_plugin__s2member_during_users_list_edit_cols_before_reset_pass_resend", get_defined_vars());
|
223 |
unset($__refs, $__v);
|
491 |
if(isset($_p["ws_plugin__s2member_profile_s2member_auto_eot_time"]) && isset($auto_eot_time))
|
492 |
update_user_option($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
493 |
|
494 |
+
if(isset($_p["ws_plugin__s2member_profile_s2member_reminders_enable"]))
|
495 |
+
update_user_option($user_id, "s2member_reminders_enable", (string)(int)$_p["ws_plugin__s2member_profile_s2member_reminders_enable"]);
|
496 |
+
|
497 |
if(isset($_p["ws_plugin__s2member_profile_s2member_ccaps"]))
|
498 |
{
|
499 |
foreach($user->allcaps as $cap => $cap_enabled)
|
includes/menu-pages/code-samples/mms-patch-load.x-php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
// Modified for full plugin compatiblity.
|
2 |
-
//if ( empty( $active_plugins ) ||
|
3 |
-
if ( empty( $active_plugins ) || (
|
4 |
-
return $plugins;
|
1 |
// Modified for full plugin compatiblity.
|
2 |
+
//if ( empty( $active_plugins ) || wp_installing() )
|
3 |
+
if ( empty( $active_plugins ) || ( wp_installing() && !preg_match("/\/wp-activate\.php/", $_SERVER["REQUEST_URI"]) ) )
|
4 |
+
return $plugins;
|
includes/menu-pages/help.inc.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Getting Help.
|
4 |
+
*
|
5 |
+
* Copyright: © 2009-2011
|
6 |
+
* {@link http://websharks-inc.com/ WebSharks, Inc.}
|
7 |
+
* (coded in the USA)
|
8 |
+
*
|
9 |
+
* Released under the terms of the GNU General Public License.
|
10 |
+
* You should have received a copy of the GNU General Public License,
|
11 |
+
* along with this software. In the main directory, see: /licensing/
|
12 |
+
* If not, see: {@link http://www.gnu.org/licenses/}.
|
13 |
+
*
|
14 |
+
* @package s2Member\Menu_Pages
|
15 |
+
* @since 151218
|
16 |
+
*/
|
17 |
+
if(!defined('WPINC')) // MUST have WordPress.
|
18 |
+
exit ("Do not access this file directly.");
|
19 |
+
|
20 |
+
if (!class_exists ("c_ws_plugin__s2member_menu_page_help"))
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Getting Help.
|
24 |
+
*
|
25 |
+
* @package s2Member\Menu_Pages
|
26 |
+
* @since 151218
|
27 |
+
*/
|
28 |
+
class c_ws_plugin__s2member_menu_page_help
|
29 |
+
{
|
30 |
+
public function __construct ()
|
31 |
+
{
|
32 |
+
echo '<div class="wrap ws-menu-page">' . "\n";
|
33 |
+
|
34 |
+
echo '<div class="ws-menu-page-toolbox">'."\n";
|
35 |
+
c_ws_plugin__s2member_menu_pages_tb::display ();
|
36 |
+
echo '</div>'."\n";
|
37 |
+
|
38 |
+
echo '<h2>Getting Help w/ s2Member®</h2>' . "\n";
|
39 |
+
|
40 |
+
echo '<table class="ws-menu-page-table">' . "\n";
|
41 |
+
echo '<tbody class="ws-menu-page-table-tbody">' . "\n";
|
42 |
+
echo '<tr class="ws-menu-page-table-tr">' . "\n";
|
43 |
+
echo '<td class="ws-menu-page-table-l">' . "\n";
|
44 |
+
|
45 |
+
do_action("ws_plugin__s2member_during_help_page_before_left_sections", get_defined_vars ());
|
46 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_before_help", get_defined_vars ());
|
47 |
+
|
48 |
+
echo '<div class="ws-menu-page-group" title="Getting Help w/ s2Member" default-state="open">' . "\n";
|
49 |
+
|
50 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">' . "\n";
|
51 |
+
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://s2member.com/kb/" target="_blank" rel="external">s2Member Knowledge Base</a>, <a href="http://s2member.com/videos/" target="_blank" rel="external">Video Tutorials</a>, <a href="http://s2member.com/forums/" target="_blank" rel="external">Forums</a> and <a href="http://s2member.com/r/codex/" target="_blank" rel="external">Codex</a>. If you are planning to do something creative with s2Member, you might want to <a href="http://jobs.wordpress.net" target="_blank" rel="external">hire a freelance developer</a> to assist you.</p>' . "\n";
|
52 |
+
echo '<p><strong>See also:</strong> <a href="http://s2member.com/r/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
53 |
+
|
54 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
55 |
+
|
56 |
+
echo '<h3 style="margin-bottom:0;">Testing Server Compatibility</h3>'."\n";
|
57 |
+
echo '<p>Please download the <a href="http://s2member.com/r/server-scanner-info/">s2Member Server Scanner</a>. Unzip, upload via FTP; then open in a browser for a full report.</p>'."\n";
|
58 |
+
|
59 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
60 |
+
|
61 |
+
echo '<h3 style="margin-bottom:0;">Troubleshooting Payment Gateway Integrations</h3>'."\n";
|
62 |
+
echo '<p>Please use s2Member\'s <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Viewer</a>. Log files can be very helpful.</p>'."\n";
|
63 |
+
|
64 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
65 |
+
|
66 |
+
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles<em>!</em></h3>'."\n";
|
67 |
+
echo '<form method="get" action="http://s2member.com/kb/" target="_blank" onsubmit="if(this.q.value === \'enter search terms...\') this.q.value = \'\';" autocomplete="off">'."\n";
|
68 |
+
echo '<p><input type="text" name="kb_q" value="enter search terms..." style="width:60%;" onfocus="if(this.value === \'enter search terms...\') this.value = \'\';" onblur="if(this.value === \'\') this.value = \'enter search terms...\';" /> <input type="submit" value="Search" style="font-size:120%; font-weight:normal;" /></p>'."\n";
|
69 |
+
echo '</form>'."\n";
|
70 |
+
|
71 |
+
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_help", get_defined_vars ());
|
72 |
+
|
73 |
+
echo '</div>' . "\n";
|
74 |
+
|
75 |
+
echo '</div>' . "\n";
|
76 |
+
|
77 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_after_help", get_defined_vars ());
|
78 |
+
|
79 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_before_support", get_defined_vars ());
|
80 |
+
|
81 |
+
echo '<div class="ws-menu-page-group" title="s2Member Tech. Support (for Pro Customers)" default-state="open">' . "\n";
|
82 |
+
|
83 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-support">' . "\n";
|
84 |
+
echo '<p style="max-width:900px;">Support for s2Member® is provided by WebSharks, Inc. Our customer support representatives are available Monday through Friday, excluding all major holidays. Or, you can discuss problems/solutions with others in our <a href="https://wordpress.org/support/plugin/s2member" target="_blank" rel="external">public community forum</a>.</p>'."\n";
|
85 |
+
|
86 |
+
echo '<ul>'."\n";
|
87 |
+
echo '<li>For pre-sale questions please see: <a href="http://s2member.com/kb/kb-tag/pre-sale-faqs/" target="_blank" rel="external">Pre-Sale FAQs</a>.</li>'."\n";
|
88 |
+
echo '<li>For installation instructions, please see: <a href="http://s2member.com/installation/" target="_blank" rel="external">Installing/Updating s2Member & s2Member Pro</a>.</li>'."\n";
|
89 |
+
echo '<li>For troubleshooting (and documentation) please <a href="http://s2member.com/kb/" target="_blank" rel="external">search our Knowledge Base</a>.</li>'."\n";
|
90 |
+
echo '<li>Paying customers in need of assistance may <a href="http://s2member.com/r/new-trouble-ticket/" target="_blank" rel="external">submit a trouble ticket</a>.</li>'."\n";
|
91 |
+
echo '<li>If you have other questions, please <a href="http://s2member.com/r/new-pre-sale-inquiry/" target="_blank" rel="external">contact our sales dept</a>.</li>'."\n";
|
92 |
+
echo '</ul>'."\n";
|
93 |
+
|
94 |
+
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_support", get_defined_vars ());
|
95 |
+
|
96 |
+
echo '</div>' . "\n";
|
97 |
+
|
98 |
+
echo '</div>' . "\n";
|
99 |
+
|
100 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_after_support", get_defined_vars ());
|
101 |
+
|
102 |
+
if (apply_filters("ws_plugin__s2member_during_help_page_during_left_sections_display_pro", !c_ws_plugin__s2member_utils_conds::pro_is_installed(), get_defined_vars ()))
|
103 |
+
{
|
104 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_before_pro", get_defined_vars ());
|
105 |
+
|
106 |
+
echo '<div class="ws-menu-page-group" title="Upgrading to s2Member Pro<em>!</em>" default-state="open">' . "\n";
|
107 |
+
|
108 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-pro">' . "\n";
|
109 |
+
echo '<p>Among many other features/enhancements, <a href="http://s2member.com/" target="_blank" rel="external">s2Member Pro</a> comes pre-integrated with additional payment gateways that work with s2Member Pro-Forms (a powerful s2Member Pro feature). For instance, Stripe (most popular; also supports Bitcoin), PayPal Payments Pro, and Authorize.Net. Each of these payment gateways allow you to accept most major credit cards on-site; i.e., customers never leave your site! s2Member Pro-Forms also support PayPal Express Checkout (if you integrate with PayPal Pro); for customers who actually prefer to pay with PayPal.</p>' . "\n";
|
110 |
+
echo '<p><strong>Learn more here:</strong> <a href="http://s2member.com/features/" target="_blank" rel="external">s2Member Pro Features</a></p>'."\n";
|
111 |
+
do_action("ws_plugin__s2member_during_help_page_during_left_sections_during_pro", get_defined_vars ());
|
112 |
+
echo '</div>' . "\n";
|
113 |
+
|
114 |
+
echo '</div>' . "\n";
|
115 |
+
|
116 |
+
do_action("ws_plugin__s2member_during_start_page_during_left_sections_after_pro", get_defined_vars ());
|
117 |
+
}
|
118 |
+
do_action("ws_plugin__s2member_during_help_page_after_left_sections", get_defined_vars ());
|
119 |
+
|
120 |
+
echo '</td>' . "\n";
|
121 |
+
|
122 |
+
echo '<td class="ws-menu-page-table-r">' . "\n";
|
123 |
+
c_ws_plugin__s2member_menu_pages_rs::display ();
|
124 |
+
echo '</td>' . "\n";
|
125 |
+
|
126 |
+
echo '</tr>' . "\n";
|
127 |
+
echo '</tbody>' . "\n";
|
128 |
+
echo '</table>' . "\n";
|
129 |
+
|
130 |
+
echo '</div>' . "\n";
|
131 |
+
}
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
new c_ws_plugin__s2member_menu_page_help ();
|
includes/menu-pages/logs.inc.php
CHANGED
@@ -44,40 +44,6 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_logs"))
|
|
44 |
|
45 |
do_action("ws_plugin__s2member_during_logs_page_before_left_sections", get_defined_vars());
|
46 |
|
47 |
-
if(apply_filters("ws_plugin__s2member_during_logs_page_during_left_sections_display_help", TRUE, get_defined_vars()))
|
48 |
-
{
|
49 |
-
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_before_help", get_defined_vars());
|
50 |
-
|
51 |
-
echo '<div class="ws-menu-page-group" title="Getting Help">'."\n";
|
52 |
-
|
53 |
-
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">'."\n";
|
54 |
-
echo '<h3>Getting Help w/ s2Member (Troubleshooting)</h3>'."\n";
|
55 |
-
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://s2member.com/kb/" target="_blank" rel="external">s2Member Knowledge Base</a>, <a href="http://www.s2member.com/videos/" target="_blank" rel="external">Video Tutorials</a>, <a href="http://www.s2member.com/forums/" target="_blank" rel="external">Forums</a> and <a href="http://www.s2member.com/codex/" target="_blank" rel="external">Codex</a>. If you are planning to do something creative with s2Member, you might want to <a href="http://jobs.wordpress.net" target="_blank" rel="external">hire a freelance developer</a> to assist you.</p>'."\n";
|
56 |
-
echo '<p><strong>See also:</strong> <a href="http://www.s2member.com/kb/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
57 |
-
|
58 |
-
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
59 |
-
|
60 |
-
echo '<h3 style="margin-bottom:0;">Testing Server Compatibility</h3>'."\n";
|
61 |
-
echo '<p>Please download the <a href="http://www.s2member.com/r/server-check-tool/">s2Member Server Scanner</a>. Unzip, upload via FTP; then open in a browser for a full report.</p>'."\n";
|
62 |
-
|
63 |
-
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
64 |
-
|
65 |
-
echo '<h3 style="margin-bottom:0;">Troubleshooting Payment Gateway Integrations</h3>'."\n";
|
66 |
-
echo '<p>Please use the s2Member Log Viewer (below). Log files can be very helpful.</p>'."\n";
|
67 |
-
|
68 |
-
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
69 |
-
|
70 |
-
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles<em>!</em></h3>'."\n";
|
71 |
-
echo '<form method="get" action="http://s2member.com/kb/" target="_blank" onsubmit="if(this.q.value === \'enter search terms...\') this.q.value = \'\';" autocomplete="off">'."\n";
|
72 |
-
echo '<p><input type="text" name="kb_q" value="enter search terms..." style="width:60%;" onfocus="if(this.value === \'enter search terms...\') this.value = \'\';" onblur="if(this.value === \'\') this.value = \'enter search terms...\';" /> <input type="submit" value="Search" style="font-size:120%; font-weight:normal;" /></p>'."\n";
|
73 |
-
echo '</form>'."\n";
|
74 |
-
|
75 |
-
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_during_help", get_defined_vars());
|
76 |
-
echo '</div>'."\n";
|
77 |
-
echo '</div>'."\n";
|
78 |
-
|
79 |
-
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_after_help", get_defined_vars());
|
80 |
-
}
|
81 |
if(apply_filters("ws_plugin__s2member_during_logs_page_during_left_sections_display_log_settings", TRUE, get_defined_vars()))
|
82 |
{
|
83 |
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_before_log_settings", get_defined_vars());
|
44 |
|
45 |
do_action("ws_plugin__s2member_during_logs_page_before_left_sections", get_defined_vars());
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
if(apply_filters("ws_plugin__s2member_during_logs_page_during_left_sections_display_log_settings", TRUE, get_defined_vars()))
|
48 |
{
|
49 |
do_action("ws_plugin__s2member_during_logs_page_during_left_sections_before_log_settings", get_defined_vars());
|
includes/menu-pages/start.inc.php
CHANGED
@@ -246,7 +246,6 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
246 |
echo '<div class="ws-menu-page-group" title="Upgrading to s2Member Pro<em>!</em>" default-state="open">' . "\n";
|
247 |
|
248 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-pro">' . "\n";
|
249 |
-
echo '<h3>s2Member Pro—A Recommended Upgrade</h3>' . "\n";
|
250 |
echo '<p>Among many other features/enhancements, <a href="http://s2member.com/" target="_blank" rel="external">s2Member Pro</a> comes pre-integrated with additional payment gateways that work with s2Member Pro-Forms (a powerful s2Member Pro feature). For instance, Stripe (most popular; also supports Bitcoin), PayPal Payments Pro, and Authorize.Net. Each of these payment gateways allow you to accept most major credit cards on-site; i.e., customers never leave your site! s2Member Pro-Forms also support PayPal Express Checkout (if you integrate with PayPal Pro); for customers who actually prefer to pay with PayPal.</p>' . "\n";
|
251 |
echo '<p><strong>Learn more here:</strong> <a href="http://s2member.com/features/" target="_blank" rel="external">s2Member Pro Features</a></p>'."\n";
|
252 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_pro", get_defined_vars ());
|
@@ -257,40 +256,6 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_start"))
|
|
257 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_after_pro", get_defined_vars ());
|
258 |
}
|
259 |
|
260 |
-
if (apply_filters("ws_plugin__s2member_during_start_page_during_left_sections_display_help", (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()), get_defined_vars ()))
|
261 |
-
{
|
262 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_before_help", get_defined_vars ());
|
263 |
-
|
264 |
-
echo '<div class="ws-menu-page-group" title="Getting Help w/ s2Member" default-state="open">' . "\n";
|
265 |
-
|
266 |
-
echo '<div class="ws-menu-page-section ws-plugin--s2member-help">' . "\n";
|
267 |
-
echo '<p>s2Member is pretty easy to setup and install initially. Most of the official documentation is right here in your Dashboard (i.e., there is a lot of inline documentation built into the software). That being said, it can take some time to master everything there is to know about s2Member\'s advanced features. If you need assistance with s2Member, please search the <a href="http://s2member.com/kb/" target="_blank" rel="external">s2Member Knowledge Base</a>, <a href="http://s2member.com/videos/" target="_blank" rel="external">Video Tutorials</a>, <a href="http://s2member.com/forums/" target="_blank" rel="external">Forums</a> and <a href="http://s2member.com/r/codex/" target="_blank" rel="external">Codex</a>. If you are planning to do something creative with s2Member, you might want to <a href="http://jobs.wordpress.net" target="_blank" rel="external">hire a freelance developer</a> to assist you.</p>' . "\n";
|
268 |
-
echo '<p><strong>See also:</strong> <a href="http://s2member.com/r/common-troubleshooting-tips/" target="_blank" rel="external">s2Member Troubleshooting Guide</a> (please read this first if you\'re having trouble).</p>'."\n";
|
269 |
-
|
270 |
-
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
271 |
-
|
272 |
-
echo '<h3 style="margin-bottom:0;">Testing Server Compatibility</h3>'."\n";
|
273 |
-
echo '<p>Please download the <a href="http://s2member.com/r/server-scanner-info/">s2Member Server Scanner</a>. Unzip, upload via FTP; then open in a browser for a full report.</p>'."\n";
|
274 |
-
|
275 |
-
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
276 |
-
|
277 |
-
echo '<h3 style="margin-bottom:0;">Troubleshooting Payment Gateway Integrations</h3>'."\n";
|
278 |
-
echo '<p>Please use s2Member\'s <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Viewer</a>. Log files can be very helpful.</p>'."\n";
|
279 |
-
|
280 |
-
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
281 |
-
|
282 |
-
echo '<h3 style="margin-bottom:0;">Search s2Member KB Articles<em>!</em></h3>'."\n";
|
283 |
-
echo '<form method="get" action="http://s2member.com/kb/" target="_blank" onsubmit="if(this.q.value === \'enter search terms...\') this.q.value = \'\';" autocomplete="off">'."\n";
|
284 |
-
echo '<p><input type="text" name="kb_q" value="enter search terms..." style="width:60%;" onfocus="if(this.value === \'enter search terms...\') this.value = \'\';" onblur="if(this.value === \'\') this.value = \'enter search terms...\';" /> <input type="submit" value="Search" style="font-size:120%; font-weight:normal;" /></p>'."\n";
|
285 |
-
echo '</form>'."\n";
|
286 |
-
|
287 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_help", get_defined_vars ());
|
288 |
-
echo '</div>' . "\n";
|
289 |
-
echo '</div>' . "\n";
|
290 |
-
|
291 |
-
do_action("ws_plugin__s2member_during_start_page_during_left_sections_after_help", get_defined_vars ());
|
292 |
-
}
|
293 |
-
|
294 |
do_action("ws_plugin__s2member_during_start_page_after_left_sections", get_defined_vars ());
|
295 |
|
296 |
echo '</td>' . "\n";
|
246 |
echo '<div class="ws-menu-page-group" title="Upgrading to s2Member Pro<em>!</em>" default-state="open">' . "\n";
|
247 |
|
248 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-pro">' . "\n";
|
|
|
249 |
echo '<p>Among many other features/enhancements, <a href="http://s2member.com/" target="_blank" rel="external">s2Member Pro</a> comes pre-integrated with additional payment gateways that work with s2Member Pro-Forms (a powerful s2Member Pro feature). For instance, Stripe (most popular; also supports Bitcoin), PayPal Payments Pro, and Authorize.Net. Each of these payment gateways allow you to accept most major credit cards on-site; i.e., customers never leave your site! s2Member Pro-Forms also support PayPal Express Checkout (if you integrate with PayPal Pro); for customers who actually prefer to pay with PayPal.</p>' . "\n";
|
250 |
echo '<p><strong>Learn more here:</strong> <a href="http://s2member.com/features/" target="_blank" rel="external">s2Member Pro Features</a></p>'."\n";
|
251 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_during_pro", get_defined_vars ());
|
256 |
do_action("ws_plugin__s2member_during_start_page_during_left_sections_after_pro", get_defined_vars ());
|
257 |
}
|
258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
do_action("ws_plugin__s2member_during_start_page_after_left_sections", get_defined_vars ());
|
260 |
|
261 |
echo '</td>' . "\n";
|
includes/translations/s2member.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version:
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
-
"POT-Creation-Date: 2015-12-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -1128,12 +1128,12 @@ msgctxt "s2member-front"
|
|
1128 |
msgid "`strong` (i.e., use numbers, letters, mixed caSe, and punctuation)"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: s2member/includes/classes/users-list-in.inc.php:
|
1132 |
msgctxt "s2member-front"
|
1133 |
msgid "Additional Profile Fields"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: s2member/includes/classes/users-list-in.inc.php:
|
1137 |
msgctxt "s2member-front"
|
1138 |
msgid "(for this site)"
|
1139 |
msgstr ""
|
@@ -4265,7 +4265,7 @@ msgctxt "s2member-front"
|
|
4265 |
msgid "My Profile Summary"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
-
#: s2member-pro/s2member-pro/includes/classes/reminders.inc.php:
|
4269 |
msgid "0 / non-recurring"
|
4270 |
msgstr ""
|
4271 |
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: 151218\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
+
"POT-Creation-Date: 2015-12-18 16:43:20+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
1128 |
msgid "`strong` (i.e., use numbers, letters, mixed caSe, and punctuation)"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: s2member/includes/classes/users-list-in.inc.php:362
|
1132 |
msgctxt "s2member-front"
|
1133 |
msgid "Additional Profile Fields"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
+
#: s2member/includes/classes/users-list-in.inc.php:362
|
1137 |
msgctxt "s2member-front"
|
1138 |
msgid "(for this site)"
|
1139 |
msgstr ""
|
4265 |
msgid "My Profile Summary"
|
4266 |
msgstr ""
|
4267 |
|
4268 |
+
#: s2member-pro/s2member-pro/includes/classes/reminders.inc.php:239
|
4269 |
msgid "0 / non-recurring"
|
4270 |
msgstr ""
|
4271 |
|
readme.txt
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
-
Version:
|
4 |
-
Stable tag:
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
@@ -25,7 +25,7 @@ Tested up to PHP: 7.0
|
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License v2 or later.
|
28 |
-
Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek,
|
29 |
|
30 |
Author: s2Member® / WebSharks, Inc.
|
31 |
Author URI: http://s2member.com/
|
@@ -169,12 +169,22 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
|
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
-
=
|
173 |
|
174 |
(Maintenance Release) Upgrade immediately.
|
175 |
|
176 |
== Changelog ==
|
177 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
= v151210 =
|
179 |
|
180 |
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
+
Version: 151218
|
4 |
+
Stable tag: 151218
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
25 |
|
26 |
Copyright: © 2009 WebSharks, Inc.
|
27 |
License: GNU General Public License v2 or later.
|
28 |
+
Contributors: WebSharks, JasWSInc, anguz, raamdev, sitegeek, KristineDS
|
29 |
|
30 |
Author: s2Member® / WebSharks, Inc.
|
31 |
Author URI: http://s2member.com/
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
+
= v151218 =
|
173 |
|
174 |
(Maintenance Release) Upgrade immediately.
|
175 |
|
176 |
== Changelog ==
|
177 |
|
178 |
+
= v151218 =
|
179 |
+
|
180 |
+
- (s2Member Pro) **Reminder Email Notification Exclusions:** It is now possible to enable/disable EOT Renewal/Reminder Email notifications on a per-user basis. You can edit a user's profile in the WP Dashboard and check "_No (exclude)_" to prevent specific users from receiving any reminder emails that you configured. Props at @patdumond @luisrock. See also [this GitHub issue](https://github.com/websharks/s2member/issues/816).
|
181 |
+
|
182 |
+
- (s2Member) **PHP v7 Compat.:** This release addresses one remaining issue with the `preg_replace` `/e` modifier as reported in [this GitHub issue](https://github.com/websharks/s2member/issues/811). Props @nerdworker for reporting. Thanks!
|
183 |
+
|
184 |
+
- (s2Member/s2Member Pro) **WP v4.4 Compat.:** This release corrects an issue that impacted sites attempting to run s2Member on a Multisite Network; i.e., it corrects a problem with the `load.php` patch against the latest release of WordPress. Props @crazycoolcam for reporting! See also [this GitHub issue](https://github.com/websharks/s2member/issues/812).
|
185 |
+
|
186 |
+
- (s2Member/s2Member Pro) **Getting Help:** This release adds a new menu page titled, "Getting Help w/ s2Member". This new section of your Dashboard provides quick & easy access to s2Member KB articles, suggestions, and our tech support department (for pro customers). Props @patdumond @raamdev. See also [this GitHub issue](https://github.com/websharks/s2member/issues/814).
|
187 |
+
|
188 |
= v151210 =
|
189 |
|
190 |
- (s2Member/s2Member Pro) **WP/PHP Compat:** Updated for compatibility with WordPress 4.4 and PHP v7.0. Note that s2Member and s2Member Pro also remain compatible with WordPress 4.3 and PHP 5.2. However, PHP 5.5+ is strongly recommended.
|
s2member.php
CHANGED
@@ -19,8 +19,8 @@
|
|
19 |
*/
|
20 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
-
Version:
|
23 |
-
Stable tag:
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
@@ -81,7 +81,7 @@ if(!defined('WPINC')) // MUST have WordPress.
|
|
81 |
* @var string
|
82 |
*/
|
83 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
84 |
-
define('WS_PLUGIN__S2MEMBER_VERSION', '
|
85 |
/**
|
86 |
* Minimum PHP version required to run s2Member.
|
87 |
*
|
@@ -111,7 +111,7 @@ if(!defined('WS_PLUGIN__S2MEMBER_MIN_WP_VERSION'))
|
|
111 |
* @var string
|
112 |
*/
|
113 |
if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
|
114 |
-
define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '
|
115 |
/*
|
116 |
Several compatibility checks.
|
117 |
If all pass, load the s2Member plugin.
|
19 |
*/
|
20 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
+
Version: 151218
|
23 |
+
Stable tag: 151218
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
81 |
* @var string
|
82 |
*/
|
83 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
84 |
+
define('WS_PLUGIN__S2MEMBER_VERSION', '151218' /* !#distro-version#! */);
|
85 |
/**
|
86 |
* Minimum PHP version required to run s2Member.
|
87 |
*
|
111 |
* @var string
|
112 |
*/
|
113 |
if(!defined('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION'))
|
114 |
+
define('WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION', '151218' /* !#distro-version#! */);
|
115 |
/*
|
116 |
Several compatibility checks.
|
117 |
If all pass, load the s2Member plugin.
|