Version Description
= v160303 =
(Maintenance Release) Upgrade immediately.
Download this release
Release Info
Developer | JasWSInc |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 160303 |
Comparing to | |
See all releases |
Code changes from version 160120 to 160303
- changelog.md +18 -0
- checksum.txt +1 -1
- includes/classes/files-in.inc.php +1 -2
- includes/classes/files.inc.php +12 -6
- includes/classes/no-cache.inc.php +15 -3
- includes/classes/sc-eots-in.inc.php +2 -3
- includes/menu-pages/down-ops.inc.php +25 -1
- includes/menu-pages/paypal-ops.inc.php +3 -2
- includes/syscon.inc.php +1 -0
- includes/translations/s2member.pot +63 -63
- readme.txt +22 -4
- s2member.php +5 -5
changelog.md
CHANGED
@@ -1,3 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= v160120 =
|
2 |
|
3 |
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
1 |
+
= v160303 =
|
2 |
+
|
3 |
+
- (s2Member/s2Member Pro) **Comet Cache Compat.:** This release improves compatibility with Comet Cache (formerly ZenCache), whenever you have it configured to cache logged-in users. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/888). Props @KTS915 for reporting!
|
4 |
+
|
5 |
+
- (s2Member Pro) **ClickBank IPN v6 Compat.:** Version 6 of the ClickBank IPN system was recently updated in a way that causes it to return `transactionType = CANCEL-TEST-REBILL` in test mode, instead of the previous value, which was: `TEST_CANCEL-REBILL`. s2Member Pro has been updated to understand either/or. See also [this GitHub issue](https://github.com/websharks/s2member/issues/882) for further details.
|
6 |
+
|
7 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release corrects a bug caused by typos in the source code that were preventing refunds from being processed as expected whenever Stripe was integrated. Props @YearOfBenj for reporting this important issue. Props @patdumond for relaying vital information. See also [this GitHub issue](https://github.com/websharks/s2member/issues/874) if you'd like additional details.
|
8 |
+
|
9 |
+
- (s2Member Pro) **PayPal Bug Fix:** Under some conditions, the EOT behavior in s2Member Pro (when integrated with PayPal Pro) would immediately terminate access whenever a customer's subscription naturally expires. Recent versions of the Payflow system set the status to `EXPIRED`, and this was handled as an immediate EOT instead of as a delayed EOT that is subject to date calculations to determine the correct date on which a customer should lose access; i.e., based on what they have already paid for. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/873) if you'd like additional details.
|
10 |
+
|
11 |
+
- (s2Member Pro) **One-Time Offer Bug Fix:** This release corrects some inconsistencies in the One-Time Offers system that comes with s2Member Pro. Symptoms included seemingly unpredictable behavior whenever redirections were configured without a specific Membership Level. Props @jacobposey for reporting. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/855) if you'd like additional details.
|
12 |
+
|
13 |
+
- (s2Member/s2Member Pro) **Bug Fix:** s2Member was not properly respecting `DISALLOW_FILE_MODS` in a specific scenario related to GZIP. Props @renzms @kristineds. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/832) for further details.
|
14 |
+
|
15 |
+
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
16 |
+
|
17 |
+
- (s2Member/s2Member Pro) **PayPal Sandbox:** This release updates the inline documentation under the PayPal Account Settings section of s2Member. We now suggest that instead of enabling PayPal Sandbox Mode (sometimes buggy at best), that site owners run tests with low-dollar amounts against a live PayPal account instead; e.g., $0.01 test transactions in live mode work great also. See [this GitHub issue](https://github.com/websharks/s2member/issues/891) if you'd like additional details. Props @raamdev for mentioning this again.
|
18 |
+
|
19 |
= v160120 =
|
20 |
|
21 |
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
checksum.txt
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
1 |
+
b155b61fde7bcce8dfd5e9eb3e002338
|
includes/classes/files-in.inc.php
CHANGED
@@ -997,8 +997,7 @@ if(!class_exists('c_ws_plugin__s2member_files_in'))
|
|
997 |
$cfc['expires'] = strtotime('+'.apply_filters('ws_plugin__s2member_amazon_cf_file_expires_time', '24 hours', get_defined_vars()));
|
998 |
|
999 |
$cf_extn = strtolower(substr($file, strrpos($file, '.') + 1)); // Parses the file extension out so we can scan it in some special scenarios.
|
1000 |
-
$cf_ip_res =
|
1001 |
-
$cf_stream_extn_resource_exclusions = array_unique((array)apply_filters('ws_plugin__s2member_amazon_cf_file_streaming_extension_resource_exclusions', array('mp3'), get_defined_vars())); // MP3 files should NOT include an extension in their resource reference.
|
1002 |
$cf_resource = ($stream) ? ((in_array($cf_extn, $cf_stream_extn_resource_exclusions)) ? substr($file, 0, strrpos($file, '.')) : $file) : 'http'.(($ssl) ? 's' : '').'://'.(($cfc['distro_downloads_cname']) ? $cfc['distro_downloads_cname'] : $cfc['distro_downloads_dname']).'/'.$url_e_file;
|
1003 |
$cf_url = ($stream) ? 'rtmp'.(($ssl) ? 'e' : '').'://'.(($cfc['distro_streaming_cname']) ? $cfc['distro_streaming_cname'] : $cfc['distro_streaming_dname']).'/cfx/st/'.$file : 'http'.(($ssl) ? 's' : '').'://'.(($cfc['distro_downloads_cname']) ? $cfc['distro_downloads_cname'] : $cfc['distro_downloads_dname']).'/'.$url_e_file;
|
1004 |
$cf_policy = '{"Statement":[{"Resource":"'.c_ws_plugin__s2member_utils_strings::esc_dq($cf_resource).'","Condition":{'.(($cf_ip_res) ? '"IpAddress":{"AWS:SourceIp":"'.c_ws_plugin__s2member_utils_strings::esc_dq($_SERVER['REMOTE_ADDR']).'/32"},' : '').'"DateLessThan":{"AWS:EpochTime":'.(int)$cfc['expires'].'}}}]}';
|
997 |
$cfc['expires'] = strtotime('+'.apply_filters('ws_plugin__s2member_amazon_cf_file_expires_time', '24 hours', get_defined_vars()));
|
998 |
|
999 |
$cf_extn = strtolower(substr($file, strrpos($file, '.') + 1)); // Parses the file extension out so we can scan it in some special scenarios.
|
1000 |
+
$cf_ip_res = c_ws_plugin__s2member_utils_conds::is_localhost() || ($stream && !$cfc['rtmp_policy_include_ip']) ? FALSE : TRUE;
|
|
|
1001 |
$cf_resource = ($stream) ? ((in_array($cf_extn, $cf_stream_extn_resource_exclusions)) ? substr($file, 0, strrpos($file, '.')) : $file) : 'http'.(($ssl) ? 's' : '').'://'.(($cfc['distro_downloads_cname']) ? $cfc['distro_downloads_cname'] : $cfc['distro_downloads_dname']).'/'.$url_e_file;
|
1002 |
$cf_url = ($stream) ? 'rtmp'.(($ssl) ? 'e' : '').'://'.(($cfc['distro_streaming_cname']) ? $cfc['distro_streaming_cname'] : $cfc['distro_streaming_dname']).'/cfx/st/'.$file : 'http'.(($ssl) ? 's' : '').'://'.(($cfc['distro_downloads_cname']) ? $cfc['distro_downloads_cname'] : $cfc['distro_downloads_dname']).'/'.$url_e_file;
|
1003 |
$cf_policy = '{"Statement":[{"Resource":"'.c_ws_plugin__s2member_utils_strings::esc_dq($cf_resource).'","Condition":{'.(($cf_ip_res) ? '"IpAddress":{"AWS:SourceIp":"'.c_ws_plugin__s2member_utils_strings::esc_dq($_SERVER['REMOTE_ADDR']).'/32"},' : '').'"DateLessThan":{"AWS:EpochTime":'.(int)$cfc['expires'].'}}}]}';
|
includes/classes/files.inc.php
CHANGED
@@ -326,7 +326,7 @@ if(!class_exists('c_ws_plugin__s2member_files'))
|
|
326 |
if(file_exists($htaccess) && is_readable($htaccess) && ($htaccess_contents = file_get_contents($htaccess)) !== FALSE && is_string($htaccess_contents = trim($htaccess_contents)))
|
327 |
return preg_match('/'.preg_quote($start_line, '/').'['."\r\n".']+.*?['."\r\n".']+'.preg_quote($end_line, '/').'['."\r\n".']{0,2}/is', $htaccess_contents);
|
328 |
|
329 |
-
return FALSE;
|
330 |
}
|
331 |
|
332 |
/**
|
@@ -339,7 +339,10 @@ if(!class_exists('c_ws_plugin__s2member_files'))
|
|
339 |
*/
|
340 |
public static function write_no_gzip_into_root_htaccess()
|
341 |
{
|
342 |
-
if(
|
|
|
|
|
|
|
343 |
{
|
344 |
$start_line = '# BEGIN s2Member GZIP exclusions'; // Beginning line for this entry.
|
345 |
$end_line = '# END s2Member GZIP exclusions'; // Identifying end line for this entry.
|
@@ -362,7 +365,7 @@ if(!class_exists('c_ws_plugin__s2member_files'))
|
|
362 |
return file_put_contents($htaccess, $no_gzip);
|
363 |
}
|
364 |
}
|
365 |
-
return FALSE;
|
366 |
}
|
367 |
|
368 |
/**
|
@@ -375,6 +378,9 @@ if(!class_exists('c_ws_plugin__s2member_files'))
|
|
375 |
*/
|
376 |
public static function remove_no_gzip_from_root_htaccess()
|
377 |
{
|
|
|
|
|
|
|
378 |
$start_line = '# BEGIN s2Member GZIP exclusions'; // Beginning line for this entry.
|
379 |
$end_line = '# END s2Member GZIP exclusions'; // Identifying end line for this entry.
|
380 |
$htaccess = ABSPATH.'.htaccess'; // Location of this `.htaccess` file we need to write in.
|
@@ -385,11 +391,11 @@ if(!class_exists('c_ws_plugin__s2member_files'))
|
|
385 |
|
386 |
return (file_put_contents($htaccess, $htaccess_contents) !== FALSE); // Check for `FALSE`, because this could return `0` if the file is now empty.
|
387 |
}
|
388 |
-
else if(!file_exists($htaccess)
|
389 |
{
|
390 |
return TRUE;
|
391 |
}
|
392 |
-
return FALSE;
|
393 |
}
|
394 |
}
|
395 |
-
}
|
326 |
if(file_exists($htaccess) && is_readable($htaccess) && ($htaccess_contents = file_get_contents($htaccess)) !== FALSE && is_string($htaccess_contents = trim($htaccess_contents)))
|
327 |
return preg_match('/'.preg_quote($start_line, '/').'['."\r\n".']+.*?['."\r\n".']+'.preg_quote($end_line, '/').'['."\r\n".']{0,2}/is', $htaccess_contents);
|
328 |
|
329 |
+
return FALSE;
|
330 |
}
|
331 |
|
332 |
/**
|
339 |
*/
|
340 |
public static function write_no_gzip_into_root_htaccess()
|
341 |
{
|
342 |
+
if(defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS) {
|
343 |
+
return FALSE; # No write access on this site.
|
344 |
+
}
|
345 |
+
if(c_ws_plugin__s2member_files::remove_no_gzip_from_root_htaccess())
|
346 |
{
|
347 |
$start_line = '# BEGIN s2Member GZIP exclusions'; // Beginning line for this entry.
|
348 |
$end_line = '# END s2Member GZIP exclusions'; // Identifying end line for this entry.
|
365 |
return file_put_contents($htaccess, $no_gzip);
|
366 |
}
|
367 |
}
|
368 |
+
return FALSE;
|
369 |
}
|
370 |
|
371 |
/**
|
378 |
*/
|
379 |
public static function remove_no_gzip_from_root_htaccess()
|
380 |
{
|
381 |
+
if(defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS) {
|
382 |
+
return FALSE; # No write access on this site.
|
383 |
+
}
|
384 |
$start_line = '# BEGIN s2Member GZIP exclusions'; // Beginning line for this entry.
|
385 |
$end_line = '# END s2Member GZIP exclusions'; // Identifying end line for this entry.
|
386 |
$htaccess = ABSPATH.'.htaccess'; // Location of this `.htaccess` file we need to write in.
|
391 |
|
392 |
return (file_put_contents($htaccess, $htaccess_contents) !== FALSE); // Check for `FALSE`, because this could return `0` if the file is now empty.
|
393 |
}
|
394 |
+
else if(!file_exists($htaccess))
|
395 |
{
|
396 |
return TRUE;
|
397 |
}
|
398 |
+
return FALSE;
|
399 |
}
|
400 |
}
|
401 |
+
}
|
includes/classes/no-cache.inc.php
CHANGED
@@ -95,8 +95,8 @@ if(!class_exists('c_ws_plugin__s2member_no_cache'))
|
|
95 |
if(!$once && (empty($_GET['qcAC']) || !filter_var($_GET['qcAC'], FILTER_VALIDATE_BOOLEAN))
|
96 |
&& (
|
97 |
$no_cache === TRUE // Forces no-cache constants; if `TRUE` explicitly.
|
98 |
-
|| ($no_cache === 'restricted' && (!defined('ZENCACHE_WHEN_LOGGED_IN') || !ZENCACHE_WHEN_LOGGED_IN) && (!defined('QUICK_CACHE_WHEN_LOGGED_IN') || !QUICK_CACHE_WHEN_LOGGED_IN))
|
99 |
-
|| (is_user_logged_in() && (!defined('ZENCACHE_WHEN_LOGGED_IN') || !ZENCACHE_WHEN_LOGGED_IN) && (!defined('QUICK_CACHE_WHEN_LOGGED_IN') || !QUICK_CACHE_WHEN_LOGGED_IN))
|
100 |
|| c_ws_plugin__s2member_systematics::is_s2_systematic_use_page()
|
101 |
)
|
102 |
)
|
@@ -134,6 +134,17 @@ if(!class_exists('c_ws_plugin__s2member_no_cache'))
|
|
134 |
if(!defined('DONOTCACHEOBJECT'))
|
135 |
define('DONOTCACHEOBJECT', TRUE);
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
/**
|
138 |
* No-cache anything for ZenCache plugin.
|
139 |
*
|
@@ -197,6 +208,7 @@ if(!class_exists('c_ws_plugin__s2member_no_cache'))
|
|
197 |
$using_selective_behavior = apply_filters('ws_plugin__s2member_no_cache_headers_selective', FALSE, get_defined_vars());
|
198 |
|
199 |
if(!$once && !headers_sent() // Only once, and only if possible.
|
|
|
200 |
&& (empty($_GET['zcABC']) || !filter_var($_GET['zcABC'], FILTER_VALIDATE_BOOLEAN))
|
201 |
&& (empty($_GET['qcABC']) || !filter_var($_GET['qcABC'], FILTER_VALIDATE_BOOLEAN))
|
202 |
&& ($no_cache || !$using_selective_behavior || c_ws_plugin__s2member_no_cache::$headers)
|
@@ -221,4 +233,4 @@ if(!class_exists('c_ws_plugin__s2member_no_cache'))
|
|
221 |
return TRUE; // Always return true.
|
222 |
}
|
223 |
}
|
224 |
-
}
|
95 |
if(!$once && (empty($_GET['qcAC']) || !filter_var($_GET['qcAC'], FILTER_VALIDATE_BOOLEAN))
|
96 |
&& (
|
97 |
$no_cache === TRUE // Forces no-cache constants; if `TRUE` explicitly.
|
98 |
+
|| ($no_cache === 'restricted' && (!defined('COMET_CACHE_WHEN_LOGGED_IN') || !COMET_CACHE_WHEN_LOGGED_IN) && (!defined('ZENCACHE_WHEN_LOGGED_IN') || !ZENCACHE_WHEN_LOGGED_IN) && (!defined('QUICK_CACHE_WHEN_LOGGED_IN') || !QUICK_CACHE_WHEN_LOGGED_IN))
|
99 |
+
|| (is_user_logged_in() && (!defined('COMET_CACHE_WHEN_LOGGED_IN') || !COMET_CACHE_WHEN_LOGGED_IN) && (!defined('ZENCACHE_WHEN_LOGGED_IN') || !ZENCACHE_WHEN_LOGGED_IN) && (!defined('QUICK_CACHE_WHEN_LOGGED_IN') || !QUICK_CACHE_WHEN_LOGGED_IN))
|
100 |
|| c_ws_plugin__s2member_systematics::is_s2_systematic_use_page()
|
101 |
)
|
102 |
)
|
134 |
if(!defined('DONOTCACHEOBJECT'))
|
135 |
define('DONOTCACHEOBJECT', TRUE);
|
136 |
|
137 |
+
/**
|
138 |
+
* No-cache anything for Comet Cache plugin.
|
139 |
+
*
|
140 |
+
* @package s2Member\No_Cache
|
141 |
+
* @since 160222
|
142 |
+
*
|
143 |
+
* @var bool
|
144 |
+
*/
|
145 |
+
if(!defined('COMET_CACHE_ALLOWED'))
|
146 |
+
define('COMET_CACHE_ALLOWED', FALSE);
|
147 |
+
|
148 |
/**
|
149 |
* No-cache anything for ZenCache plugin.
|
150 |
*
|
208 |
$using_selective_behavior = apply_filters('ws_plugin__s2member_no_cache_headers_selective', FALSE, get_defined_vars());
|
209 |
|
210 |
if(!$once && !headers_sent() // Only once, and only if possible.
|
211 |
+
&& (empty($_GET['ccABC']) || !filter_var($_GET['ccABC'], FILTER_VALIDATE_BOOLEAN))
|
212 |
&& (empty($_GET['zcABC']) || !filter_var($_GET['zcABC'], FILTER_VALIDATE_BOOLEAN))
|
213 |
&& (empty($_GET['qcABC']) || !filter_var($_GET['qcABC'], FILTER_VALIDATE_BOOLEAN))
|
214 |
&& ($no_cache || !$using_selective_behavior || c_ws_plugin__s2member_no_cache::$headers)
|
233 |
return TRUE; // Always return true.
|
234 |
}
|
235 |
}
|
236 |
+
}
|
includes/classes/sc-eots-in.inc.php
CHANGED
@@ -92,9 +92,6 @@ if(!class_exists('c_ws_plugin__s2member_sc_eots_in'))
|
|
92 |
$eot = c_ws_plugin__s2member_utils_users::get_user_eot($user_id, true, $mode);
|
93 |
set_transient($transient, $eot, DAY_IN_SECONDS / 2);
|
94 |
}
|
95 |
-
if($eot['time'] && $attr['round_to'])
|
96 |
-
$eot['time'] = strtotime($attr['round_to'], $eot['time']);
|
97 |
-
|
98 |
if($eot['time'] && (integer)$attr['offset'])
|
99 |
$eot['time'] = $eot['time'] + (integer)$attr['offset'];
|
100 |
|
@@ -119,6 +116,8 @@ if(!class_exists('c_ws_plugin__s2member_sc_eots_in'))
|
|
119 |
$time = new DateTime(date('Y-m-d H:i:s', $eot['time']));
|
120 |
if($attr['timezone'] && strtoupper($attr['timezone']) !== 'UTC')
|
121 |
$time->setTimezone(new DateTimeZone($attr['timezone']));
|
|
|
|
|
122 |
}
|
123 |
if($time && $attr['date_format'] === 'timestamp')
|
124 |
$date = (string)$time->getTimestamp();
|
92 |
$eot = c_ws_plugin__s2member_utils_users::get_user_eot($user_id, true, $mode);
|
93 |
set_transient($transient, $eot, DAY_IN_SECONDS / 2);
|
94 |
}
|
|
|
|
|
|
|
95 |
if($eot['time'] && (integer)$attr['offset'])
|
96 |
$eot['time'] = $eot['time'] + (integer)$attr['offset'];
|
97 |
|
116 |
$time = new DateTime(date('Y-m-d H:i:s', $eot['time']));
|
117 |
if($attr['timezone'] && strtoupper($attr['timezone']) !== 'UTC')
|
118 |
$time->setTimezone(new DateTimeZone($attr['timezone']));
|
119 |
+
if($attr['round_to'])
|
120 |
+
$time->modify($attr['round_to']);
|
121 |
}
|
122 |
if($time && $attr['date_format'] === 'timestamp')
|
123 |
$date = (string)$time->getTimestamp();
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -505,6 +505,30 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
505 |
echo '<tbody>'."\n";
|
506 |
echo '<tr>'."\n";
|
507 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
echo '<td>'."\n";
|
509 |
echo '<h3>Completely Reset CloudFront Configuration?</h3>'."\n";
|
510 |
echo '<div style="float:right; margin:0 0 0 25px;">'."\n";
|
@@ -903,4 +927,4 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
903 |
}
|
904 |
}
|
905 |
|
906 |
-
new c_ws_plugin__s2member_menu_page_down_ops();
|
505 |
echo '<tbody>'."\n";
|
506 |
echo '<tr>'."\n";
|
507 |
|
508 |
+
echo '<th>'."\n";
|
509 |
+
echo '<label for="ws-plugin--s2member-amazon-cf-files-rtmp-policy-include-ip">'."\n";
|
510 |
+
echo 'Exclude IPs from digitally signed links in CloudFront RTMP streams?'."\n";
|
511 |
+
echo '</label>'."\n";
|
512 |
+
echo '</th>'."\n";
|
513 |
+
|
514 |
+
echo '</tr>'."\n";
|
515 |
+
echo '<tr>'."\n";
|
516 |
+
|
517 |
+
echo '<td>'."\n";
|
518 |
+
echo '<input type="radio" name="ws_plugin__s2member_amazon_cf_files_rtmp_policy_include_ip" id="ws-plugin--s2member-amazon-cf-files-rtmp-policy-include-ip-1" value="1"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["amazon_cf_files_rtmp_policy_include_ip"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-amazon-cf-files-rtmp-policy-include-ip-1"><strong>Yes,</strong> include IPs for best security (default behavior).</label><br /><input type="radio" name="ws_plugin__s2member_amazon_cf_files_rtmp_policy_include_ip" id="ws-plugin--s2member-amazon-cf-files-rtmp-policy-include-ip-0" value="0"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["amazon_cf_files_rtmp_policy_include_ip"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-amazon-cf-files-rtmp-policy-include-ip-0"><strong>No</strong>, exclude IPs when streaming to improve compatibility.</label><br />'."\n";
|
519 |
+
echo '<p><em>Excluding IP addresses from digitally signed links when streaming over the RTMP protocol will improve compatibility, at the expense of loosening security just a little bit. It\'s a trade-off, and for that reason you should only exclude IPs if you care more about compatibility than you do security. For instance, if your content is not super-senstivite and secret, you might exclude IPs from digitally signed links; putting more focus on preventing issues in various devices. On the other hand, if your streaming audio/video files should be guarded with tight security at all times, you will want to leave this at the default setting (Yes), thereby requiring a matching IP address across both the HTTP and RTMP protocols at all times. Some mobile devices (depending on the mobile carrier) will be unable to pass IP validation though; i.e., some mobile devices assign different IPs for HTTP than they do for RTMP; which can lead to cross-protocol validation failures if you include IP addresses in digitally signed links.</em></p>'."\n";
|
520 |
+
echo '</td>'."\n";
|
521 |
+
|
522 |
+
echo '</tr>'."\n";
|
523 |
+
echo '</tbody>'."\n";
|
524 |
+
echo '</table>'."\n";
|
525 |
+
|
526 |
+
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
527 |
+
|
528 |
+
echo '<table class="form-table" style="margin-top:0;">'."\n";
|
529 |
+
echo '<tbody>'."\n";
|
530 |
+
echo '<tr>'."\n";
|
531 |
+
|
532 |
echo '<td>'."\n";
|
533 |
echo '<h3>Completely Reset CloudFront Configuration?</h3>'."\n";
|
534 |
echo '<div style="float:right; margin:0 0 0 25px;">'."\n";
|
927 |
}
|
928 |
}
|
929 |
|
930 |
+
new c_ws_plugin__s2member_menu_page_down_ops();
|
includes/menu-pages/paypal-ops.inc.php
CHANGED
@@ -177,7 +177,8 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
|
|
177 |
|
178 |
echo '<td>'."\n";
|
179 |
echo '<input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-0" value="0"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-paypal-sandbox-0">No</label> <input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-1" value="1"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-paypal-sandbox-1">Yes, enable support for Sandbox testing.</label><br />'."\n";
|
180 |
-
echo '<em>Only enable this if you\'ve provided Sandbox credentials above.<br />This puts the API, IPN, PDT and Form/Button Generators all into Sandbox mode
|
|
|
181 |
echo '</td>'."\n";
|
182 |
|
183 |
echo '</tr>'."\n";
|
@@ -1098,4 +1099,4 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
|
|
1098 |
}
|
1099 |
}
|
1100 |
|
1101 |
-
new c_ws_plugin__s2member_menu_page_paypal_ops();
|
177 |
|
178 |
echo '<td>'."\n";
|
179 |
echo '<input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-0" value="0"'.((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-paypal-sandbox-0">No</label> <input type="radio" name="ws_plugin__s2member_paypal_sandbox" id="ws-plugin--s2member-paypal-sandbox-1" value="1"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? ' checked="checked"' : '').' /> <label for="ws-plugin--s2member-paypal-sandbox-1">Yes, enable support for Sandbox testing.</label><br />'."\n";
|
180 |
+
echo '<em>Only enable this if you\'ve provided Sandbox credentials above.<br />This puts the API, IPN, PDT and Form/Button Generators all into Sandbox mode. See: <a href="http://s2member.com/r/paypal-developers/" target="_blank" rel="external">PayPal Developers</a></em><br />'."\n";
|
181 |
+
echo '<em><strong>Warning:</strong> The PayPal Sandbox doesn\'t always give you an accurate view of what will happen once you go live, and in fact it is sometimes buggy at best. For this reason, our strong recommendation is that instead of using Sandbox Mode to run tests, that you go live and run tests with low-dollar amounts; i.e., $0.01 transactions are possible with PayPal in live mode, and that is a better way to test your installation of s2Member.</em>'."\n";
|
182 |
echo '</td>'."\n";
|
183 |
|
184 |
echo '</tr>'."\n";
|
1099 |
}
|
1100 |
}
|
1101 |
|
1102 |
+
new c_ws_plugin__s2member_menu_page_paypal_ops();
|
includes/syscon.inc.php
CHANGED
@@ -321,6 +321,7 @@ if(!function_exists('ws_plugin__s2member_configure_options_and_their_defaults'))
|
|
321 |
$default_options['amazon_cf_files_distro_streaming_cname'] = '';
|
322 |
$default_options['amazon_cf_files_distro_streaming_dname'] = '';
|
323 |
$default_options['amazon_cf_files_distros_auto_config_status'] = '';
|
|
|
324 |
|
325 |
$default_options['ruris_case_sensitive'] = '0'; // No by default.
|
326 |
|
321 |
$default_options['amazon_cf_files_distro_streaming_cname'] = '';
|
322 |
$default_options['amazon_cf_files_distro_streaming_dname'] = '';
|
323 |
$default_options['amazon_cf_files_distros_auto_config_status'] = '';
|
324 |
+
$default_options['amazon_cf_files_rtmp_policy_include_ip'] = '1';
|
325 |
|
326 |
$default_options['ruris_case_sensitive'] = '0'; // No by default.
|
327 |
|
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: 2016-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -401,7 +401,7 @@ msgctxt "s2member-admin"
|
|
401 |
msgid "Unable to auto-configure existing Amazon S3 Bucket ACLs. Incomplete Amazon S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or Secret Key."
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: s2member/includes/classes/files-in.inc.php:
|
405 |
msgctxt "s2member-admin"
|
406 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
407 |
msgstr ""
|
@@ -409,12 +409,12 @@ msgstr ""
|
|
409 |
#. translators: In this translation, `%s` may be filled with an English
|
410 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
411 |
#. exclude `%s` if you like.
|
412 |
-
#: s2member/includes/classes/files-in.inc.php:
|
413 |
msgctxt "s2member-admin"
|
414 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. %s"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: s2member/includes/classes/files-in.inc.php:
|
418 |
msgctxt "s2member-admin"
|
419 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
420 |
msgstr ""
|
@@ -422,7 +422,7 @@ msgstr ""
|
|
422 |
#. translators: In this translation, `%s` may be filled with an English
|
423 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
424 |
#. exclude `%s` if you like.
|
425 |
-
#: s2member/includes/classes/files-in.inc.php:
|
426 |
msgctxt "s2member-admin"
|
427 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
|
428 |
msgstr ""
|
@@ -430,8 +430,8 @@ msgstr ""
|
|
430 |
#. translators: In this translation, `%s` may be filled with an English
|
431 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
432 |
#. exclude `%s` if you like.
|
433 |
-
#: s2member/includes/classes/files-in.inc.php:
|
434 |
-
#: s2member/includes/classes/files-in.inc.php:
|
435 |
msgctxt "s2member-admin"
|
436 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
|
437 |
msgstr ""
|
@@ -439,12 +439,12 @@ msgstr ""
|
|
439 |
#. translators: In this translation, `%s` may be filled with an English
|
440 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
441 |
#. if you like.
|
442 |
-
#: s2member/includes/classes/files-in.inc.php:
|
443 |
msgctxt "s2member-admin"
|
444 |
msgid "Unable to update existing Amazon S3 ACLs. %s"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: s2member/includes/classes/files-in.inc.php:
|
448 |
msgctxt "s2member-admin"
|
449 |
msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
|
450 |
msgstr ""
|
@@ -452,14 +452,14 @@ msgstr ""
|
|
452 |
#. translators: In this translation, `%s` may be filled with an English
|
453 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
454 |
#. exclude `%s` if you like.
|
455 |
-
#: s2member/includes/classes/files-in.inc.php:
|
456 |
-
#: s2member/includes/classes/files-in.inc.php:
|
457 |
msgctxt "s2member-admin"
|
458 |
msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: s2member/includes/classes/files-in.inc.php:
|
462 |
-
#: s2member/includes/classes/files-in.inc.php:
|
463 |
msgctxt "s2member-admin"
|
464 |
msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
|
465 |
msgstr ""
|
@@ -467,14 +467,14 @@ msgstr ""
|
|
467 |
#. translators: In this translation, `%s` may be filled with an English
|
468 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
469 |
#. exclude `%s` if you like.
|
470 |
-
#: s2member/includes/classes/files-in.inc.php:
|
471 |
-
#: s2member/includes/classes/files-in.inc.php:
|
472 |
msgctxt "s2member-admin"
|
473 |
msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: s2member/includes/classes/files-in.inc.php:
|
477 |
-
#: s2member/includes/classes/files-in.inc.php:
|
478 |
msgctxt "s2member-admin"
|
479 |
msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
|
480 |
msgstr ""
|
@@ -482,19 +482,19 @@ msgstr ""
|
|
482 |
#. translators: In this translation, `%s` may be filled with an English
|
483 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
484 |
#. exclude `%s` if you like.
|
485 |
-
#: s2member/includes/classes/files-in.inc.php:
|
486 |
-
#: s2member/includes/classes/files-in.inc.php:
|
487 |
msgctxt "s2member-admin"
|
488 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: s2member/includes/classes/files-in.inc.php:
|
492 |
-
#: s2member/includes/classes/files-in.inc.php:
|
493 |
msgctxt "s2member-admin"
|
494 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: s2member/includes/classes/files-in.inc.php:
|
498 |
msgctxt "s2member-admin"
|
499 |
msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
|
500 |
msgstr ""
|
@@ -502,19 +502,19 @@ msgstr ""
|
|
502 |
#. translators: In this translation, `%s` may be filled with an English
|
503 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
504 |
#. exclude `%s` if you like.
|
505 |
-
#: s2member/includes/classes/files-in.inc.php:
|
506 |
-
#: s2member/includes/classes/files-in.inc.php:
|
507 |
msgctxt "s2member-admin"
|
508 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: s2member/includes/classes/files-in.inc.php:
|
512 |
-
#: s2member/includes/classes/files-in.inc.php:
|
513 |
msgctxt "s2member-admin"
|
514 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Connection failed."
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: s2member/includes/classes/files-in.inc.php:
|
518 |
msgctxt "s2member-admin"
|
519 |
msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
|
520 |
msgstr ""
|
@@ -522,17 +522,17 @@ msgstr ""
|
|
522 |
#. translators: In this translation, `%s` may be filled with an English
|
523 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
524 |
#. exclude `%s` if you like.
|
525 |
-
#: s2member/includes/classes/files-in.inc.php:
|
526 |
msgctxt "s2member-admin"
|
527 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: s2member/includes/classes/files-in.inc.php:
|
531 |
msgctxt "s2member-admin"
|
532 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. Connection failed."
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: s2member/includes/classes/files-in.inc.php:
|
536 |
msgctxt "s2member-admin"
|
537 |
msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
|
538 |
msgstr ""
|
@@ -540,22 +540,22 @@ msgstr ""
|
|
540 |
#. translators: In this translation, `%s` may be filled with an English
|
541 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
542 |
#. exclude `%s` if you like.
|
543 |
-
#: s2member/includes/classes/files-in.inc.php:
|
544 |
msgctxt "s2member-admin"
|
545 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: s2member/includes/classes/files-in.inc.php:
|
549 |
msgctxt "s2member-admin"
|
550 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. Connection failed."
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: s2member/includes/classes/files-in.inc.php:
|
554 |
msgctxt "s2member-admin"
|
555 |
msgid "Unable to auto-configure Amazon CloudFront Distros. Incomplete Amazon CloudFront configuration options. Missing of one: Amazon CloudFront Private Key-Pair-ID, or Private Key file contents."
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: s2member/includes/classes/files-in.inc.php:
|
559 |
msgctxt "s2member-admin"
|
560 |
msgid "Unable to auto-configure Amazon S3/CloudFront Distros. Incomplete Amazon S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or Secret Key. You must provide s2Member with an Amazon S3 configuration before enabling CloudFront."
|
561 |
msgstr ""
|
@@ -563,34 +563,34 @@ msgstr ""
|
|
563 |
#. translators: In this translation, `%s` may be filled with an English
|
564 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
565 |
#. exclude `%s` if you like.
|
566 |
-
#: s2member/includes/classes/files-in.inc.php:
|
567 |
msgctxt "s2member-admin"
|
568 |
msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: s2member/includes/classes/files-in.inc.php:
|
572 |
msgctxt "s2member-admin"
|
573 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid Access ID."
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: s2member/includes/classes/files-in.inc.php:
|
577 |
msgctxt "s2member-admin"
|
578 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Connection failed."
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: s2member/includes/classes/files-in.inc.php:
|
582 |
msgctxt "s2member-admin"
|
583 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid Access ID, ETag, or XML config."
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: s2member/includes/classes/files-in.inc.php:
|
587 |
-
#: s2member/includes/classes/files-in.inc.php:
|
588 |
-
#: s2member/includes/classes/files-in.inc.php:
|
589 |
msgctxt "s2member-admin"
|
590 |
msgid "Created by s2Member, for S3 Bucket: %s."
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: s2member/includes/classes/files-in.inc.php:
|
594 |
msgctxt "s2member-admin"
|
595 |
msgid "Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected response."
|
596 |
msgstr ""
|
@@ -598,7 +598,7 @@ msgstr ""
|
|
598 |
#. translators: In this translation, `%s` may be filled with an English
|
599 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
600 |
#. exclude `%s` if you like.
|
601 |
-
#: s2member/includes/classes/files-in.inc.php:
|
602 |
msgctxt "s2member-admin"
|
603 |
msgid "Existing Amazon CloudFront Distro NOT found. %s"
|
604 |
msgstr ""
|
@@ -606,17 +606,17 @@ msgstr ""
|
|
606 |
#. translators: In this translation, `%s` may be filled with an English
|
607 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
608 |
#. exclude `%s` if you like.
|
609 |
-
#: s2member/includes/classes/files-in.inc.php:
|
610 |
msgctxt "s2member-admin"
|
611 |
msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: s2member/includes/classes/files-in.inc.php:
|
615 |
msgctxt "s2member-admin"
|
616 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: s2member/includes/classes/files-in.inc.php:
|
620 |
msgctxt "s2member-admin"
|
621 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/or Distro type."
|
622 |
msgstr ""
|
@@ -624,24 +624,24 @@ msgstr ""
|
|
624 |
#. translators: In this translation, `%s` may be filled with an English
|
625 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
626 |
#. exclude `%s` if you like.
|
627 |
-
#: s2member/includes/classes/files-in.inc.php:
|
628 |
-
#: s2member/includes/classes/files-in.inc.php:
|
629 |
msgctxt "s2member-admin"
|
630 |
msgid "Unable to disable existing Amazon CloudFront Distro. %s"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: s2member/includes/classes/files-in.inc.php:
|
634 |
-
#: s2member/includes/classes/files-in.inc.php:
|
635 |
msgctxt "s2member-admin"
|
636 |
msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: s2member/includes/classes/files-in.inc.php:
|
640 |
msgctxt "s2member-admin"
|
641 |
msgid "Existing Amazon CloudFront Distro cannot be disabled at this time. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: s2member/includes/classes/files-in.inc.php:
|
645 |
msgctxt "s2member-admin"
|
646 |
msgid "Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, ETag, or XML config."
|
647 |
msgstr ""
|
@@ -649,12 +649,12 @@ msgstr ""
|
|
649 |
#. translators: In this translation, `%s` may be filled with an English
|
650 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
651 |
#. exclude `%s` if you like.
|
652 |
-
#: s2member/includes/classes/files-in.inc.php:
|
653 |
msgctxt "s2member-admin"
|
654 |
msgid "Unable to delete existing Amazon CloudFront Distro. %s"
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: s2member/includes/classes/files-in.inc.php:
|
658 |
msgctxt "s2member-admin"
|
659 |
msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
|
660 |
msgstr ""
|
@@ -662,7 +662,7 @@ msgstr ""
|
|
662 |
#. translators: In this translation, `%s` may be filled with an English
|
663 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
664 |
#. exclude `%s` if you like.
|
665 |
-
#: s2member/includes/classes/files-in.inc.php:
|
666 |
msgctxt "s2member-admin"
|
667 |
msgid "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a `pending` state after having been disabled by s2Member. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
668 |
msgstr ""
|
@@ -670,37 +670,37 @@ msgstr ""
|
|
670 |
#. translators: In this translation, `%s` may be filled with an English
|
671 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
672 |
#. exclude `%s` if you like.
|
673 |
-
#: s2member/includes/classes/files-in.inc.php:
|
674 |
msgctxt "s2member-admin"
|
675 |
msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: s2member/includes/classes/files-in.inc.php:
|
679 |
msgctxt "s2member-admin"
|
680 |
msgid "Unable to check status of existing Amazon CloudFront Distro. Connection failed."
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: s2member/includes/classes/files-in.inc.php:
|
684 |
msgctxt "s2member-admin"
|
685 |
msgid "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: s2member/includes/classes/files-in.inc.php:
|
689 |
msgctxt "s2member-admin"
|
690 |
msgid "Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or ETag."
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: s2member/includes/classes/files-in.inc.php:
|
694 |
msgctxt "s2member-admin"
|
695 |
msgid "Unable to create/read Amazon CloudFront Downloads Distro. Unexpected response."
|
696 |
msgstr ""
|
697 |
|
698 |
-
#: s2member/includes/classes/files-in.inc.php:
|
699 |
msgctxt "s2member-admin"
|
700 |
msgid "Unable to create/read Amazon CloudFront Streaming Distro. Unexpected response."
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: s2member/includes/classes/files-in.inc.php:
|
704 |
msgctxt "s2member-admin"
|
705 |
msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
|
706 |
msgstr ""
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: 160303\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
+
"POT-Creation-Date: 2016-03-03 23:56:02+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
401 |
msgid "Unable to auto-configure existing Amazon S3 Bucket ACLs. Incomplete Amazon S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or Secret Key."
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: s2member/includes/classes/files-in.inc.php:1041
|
405 |
msgctxt "s2member-admin"
|
406 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
407 |
msgstr ""
|
409 |
#. translators: In this translation, `%s` may be filled with an English
|
410 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
411 |
#. exclude `%s` if you like.
|
412 |
+
#: s2member/includes/classes/files-in.inc.php:1048
|
413 |
msgctxt "s2member-admin"
|
414 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. %s"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: s2member/includes/classes/files-in.inc.php:1060
|
418 |
msgctxt "s2member-admin"
|
419 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
420 |
msgstr ""
|
422 |
#. translators: In this translation, `%s` may be filled with an English
|
423 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
424 |
#. exclude `%s` if you like.
|
425 |
+
#: s2member/includes/classes/files-in.inc.php:1067
|
426 |
msgctxt "s2member-admin"
|
427 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
|
428 |
msgstr ""
|
430 |
#. translators: In this translation, `%s` may be filled with an English
|
431 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
432 |
#. exclude `%s` if you like.
|
433 |
+
#: s2member/includes/classes/files-in.inc.php:1083
|
434 |
+
#: s2member/includes/classes/files-in.inc.php:1271
|
435 |
msgctxt "s2member-admin"
|
436 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
|
437 |
msgstr ""
|
439 |
#. translators: In this translation, `%s` may be filled with an English
|
440 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
441 |
#. if you like.
|
442 |
+
#: s2member/includes/classes/files-in.inc.php:1124
|
443 |
msgctxt "s2member-admin"
|
444 |
msgid "Unable to update existing Amazon S3 ACLs. %s"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: s2member/includes/classes/files-in.inc.php:1127
|
448 |
msgctxt "s2member-admin"
|
449 |
msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
|
450 |
msgstr ""
|
452 |
#. translators: In this translation, `%s` may be filled with an English
|
453 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
454 |
#. exclude `%s` if you like.
|
455 |
+
#: s2member/includes/classes/files-in.inc.php:1131
|
456 |
+
#: s2member/includes/classes/files-in.inc.php:1566
|
457 |
msgctxt "s2member-admin"
|
458 |
msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: s2member/includes/classes/files-in.inc.php:1134
|
462 |
+
#: s2member/includes/classes/files-in.inc.php:1569
|
463 |
msgctxt "s2member-admin"
|
464 |
msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
|
465 |
msgstr ""
|
467 |
#. translators: In this translation, `%s` may be filled with an English
|
468 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
469 |
#. exclude `%s` if you like.
|
470 |
+
#: s2member/includes/classes/files-in.inc.php:1138
|
471 |
+
#: s2member/includes/classes/files-in.inc.php:1544
|
472 |
msgctxt "s2member-admin"
|
473 |
msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: s2member/includes/classes/files-in.inc.php:1141
|
477 |
+
#: s2member/includes/classes/files-in.inc.php:1547
|
478 |
msgctxt "s2member-admin"
|
479 |
msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
|
480 |
msgstr ""
|
482 |
#. translators: In this translation, `%s` may be filled with an English
|
483 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
484 |
#. exclude `%s` if you like.
|
485 |
+
#: s2member/includes/classes/files-in.inc.php:1145
|
486 |
+
#: s2member/includes/classes/files-in.inc.php:1317
|
487 |
msgctxt "s2member-admin"
|
488 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: s2member/includes/classes/files-in.inc.php:1148
|
492 |
+
#: s2member/includes/classes/files-in.inc.php:1320
|
493 |
msgctxt "s2member-admin"
|
494 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: s2member/includes/classes/files-in.inc.php:1151
|
498 |
msgctxt "s2member-admin"
|
499 |
msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
|
500 |
msgstr ""
|
502 |
#. translators: In this translation, `%s` may be filled with an English
|
503 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
504 |
#. exclude `%s` if you like.
|
505 |
+
#: s2member/includes/classes/files-in.inc.php:1155
|
506 |
+
#: s2member/includes/classes/files-in.inc.php:1226
|
507 |
msgctxt "s2member-admin"
|
508 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: s2member/includes/classes/files-in.inc.php:1158
|
512 |
+
#: s2member/includes/classes/files-in.inc.php:1229
|
513 |
msgctxt "s2member-admin"
|
514 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Connection failed."
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: s2member/includes/classes/files-in.inc.php:1161
|
518 |
msgctxt "s2member-admin"
|
519 |
msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
|
520 |
msgstr ""
|
522 |
#. translators: In this translation, `%s` may be filled with an English
|
523 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
524 |
#. exclude `%s` if you like.
|
525 |
+
#: s2member/includes/classes/files-in.inc.php:1165
|
526 |
msgctxt "s2member-admin"
|
527 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: s2member/includes/classes/files-in.inc.php:1168
|
531 |
msgctxt "s2member-admin"
|
532 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. Connection failed."
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: s2member/includes/classes/files-in.inc.php:1171
|
536 |
msgctxt "s2member-admin"
|
537 |
msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
|
538 |
msgstr ""
|
540 |
#. translators: In this translation, `%s` may be filled with an English
|
541 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
542 |
#. exclude `%s` if you like.
|
543 |
+
#: s2member/includes/classes/files-in.inc.php:1175
|
544 |
msgctxt "s2member-admin"
|
545 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: s2member/includes/classes/files-in.inc.php:1178
|
549 |
msgctxt "s2member-admin"
|
550 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. Connection failed."
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: s2member/includes/classes/files-in.inc.php:1181
|
554 |
msgctxt "s2member-admin"
|
555 |
msgid "Unable to auto-configure Amazon CloudFront Distros. Incomplete Amazon CloudFront configuration options. Missing of one: Amazon CloudFront Private Key-Pair-ID, or Private Key file contents."
|
556 |
msgstr ""
|
557 |
|
558 |
+
#: s2member/includes/classes/files-in.inc.php:1184
|
559 |
msgctxt "s2member-admin"
|
560 |
msgid "Unable to auto-configure Amazon S3/CloudFront Distros. Incomplete Amazon S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or Secret Key. You must provide s2Member with an Amazon S3 configuration before enabling CloudFront."
|
561 |
msgstr ""
|
563 |
#. translators: In this translation, `%s` may be filled with an English
|
564 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
565 |
#. exclude `%s` if you like.
|
566 |
+
#: s2member/includes/classes/files-in.inc.php:1222
|
567 |
msgctxt "s2member-admin"
|
568 |
msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: s2member/includes/classes/files-in.inc.php:1232
|
572 |
msgctxt "s2member-admin"
|
573 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid Access ID."
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: s2member/includes/classes/files-in.inc.php:1274
|
577 |
msgctxt "s2member-admin"
|
578 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Connection failed."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: s2member/includes/classes/files-in.inc.php:1277
|
582 |
msgctxt "s2member-admin"
|
583 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid Access ID, ETag, or XML config."
|
584 |
msgstr ""
|
585 |
|
586 |
+
#: s2member/includes/classes/files-in.inc.php:1304
|
587 |
+
#: s2member/includes/classes/files-in.inc.php:1531
|
588 |
+
#: s2member/includes/classes/files-in.inc.php:1553
|
589 |
msgctxt "s2member-admin"
|
590 |
msgid "Created by s2Member, for S3 Bucket: %s."
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: s2member/includes/classes/files-in.inc.php:1313
|
594 |
msgctxt "s2member-admin"
|
595 |
msgid "Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected response."
|
596 |
msgstr ""
|
598 |
#. translators: In this translation, `%s` may be filled with an English
|
599 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
600 |
#. exclude `%s` if you like.
|
601 |
+
#: s2member/includes/classes/files-in.inc.php:1359
|
602 |
msgctxt "s2member-admin"
|
603 |
msgid "Existing Amazon CloudFront Distro NOT found. %s"
|
604 |
msgstr ""
|
606 |
#. translators: In this translation, `%s` may be filled with an English
|
607 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
608 |
#. exclude `%s` if you like.
|
609 |
+
#: s2member/includes/classes/files-in.inc.php:1363
|
610 |
msgctxt "s2member-admin"
|
611 |
msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: s2member/includes/classes/files-in.inc.php:1366
|
615 |
msgctxt "s2member-admin"
|
616 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: s2member/includes/classes/files-in.inc.php:1369
|
620 |
msgctxt "s2member-admin"
|
621 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/or Distro type."
|
622 |
msgstr ""
|
624 |
#. translators: In this translation, `%s` may be filled with an English
|
625 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
626 |
#. exclude `%s` if you like.
|
627 |
+
#: s2member/includes/classes/files-in.inc.php:1413
|
628 |
+
#: s2member/includes/classes/files-in.inc.php:1488
|
629 |
msgctxt "s2member-admin"
|
630 |
msgid "Unable to disable existing Amazon CloudFront Distro. %s"
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: s2member/includes/classes/files-in.inc.php:1416
|
634 |
+
#: s2member/includes/classes/files-in.inc.php:1491
|
635 |
msgctxt "s2member-admin"
|
636 |
msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: s2member/includes/classes/files-in.inc.php:1419
|
640 |
msgctxt "s2member-admin"
|
641 |
msgid "Existing Amazon CloudFront Distro cannot be disabled at this time. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: s2member/includes/classes/files-in.inc.php:1425
|
645 |
msgctxt "s2member-admin"
|
646 |
msgid "Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, ETag, or XML config."
|
647 |
msgstr ""
|
649 |
#. translators: In this translation, `%s` may be filled with an English
|
650 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
651 |
#. exclude `%s` if you like.
|
652 |
+
#: s2member/includes/classes/files-in.inc.php:1470
|
653 |
msgctxt "s2member-admin"
|
654 |
msgid "Unable to delete existing Amazon CloudFront Distro. %s"
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: s2member/includes/classes/files-in.inc.php:1473
|
658 |
msgctxt "s2member-admin"
|
659 |
msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
|
660 |
msgstr ""
|
662 |
#. translators: In this translation, `%s` may be filled with an English
|
663 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
664 |
#. exclude `%s` if you like.
|
665 |
+
#: s2member/includes/classes/files-in.inc.php:1477
|
666 |
msgctxt "s2member-admin"
|
667 |
msgid "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a `pending` state after having been disabled by s2Member. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
668 |
msgstr ""
|
670 |
#. translators: In this translation, `%s` may be filled with an English
|
671 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
672 |
#. exclude `%s` if you like.
|
673 |
+
#: s2member/includes/classes/files-in.inc.php:1481
|
674 |
msgctxt "s2member-admin"
|
675 |
msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
|
676 |
msgstr ""
|
677 |
|
678 |
+
#: s2member/includes/classes/files-in.inc.php:1484
|
679 |
msgctxt "s2member-admin"
|
680 |
msgid "Unable to check status of existing Amazon CloudFront Distro. Connection failed."
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: s2member/includes/classes/files-in.inc.php:1494
|
684 |
msgctxt "s2member-admin"
|
685 |
msgid "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a `pending` state. Please wait 15 minutes, then try again. There is a certain process that s2Member must strictly adhere to when re-configuring your Amazon CloudFront Distros. You may have to tick the auto-configure checkbox again, and re-run s2Member's auto-configuration routine many times, because s2Member will likely run into several `pending` challenges, as it works to completely re-configure your Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 minutes, then try again."
|
686 |
msgstr ""
|
687 |
|
688 |
+
#: s2member/includes/classes/files-in.inc.php:1497
|
689 |
msgctxt "s2member-admin"
|
690 |
msgid "Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or ETag."
|
691 |
msgstr ""
|
692 |
|
693 |
+
#: s2member/includes/classes/files-in.inc.php:1540
|
694 |
msgctxt "s2member-admin"
|
695 |
msgid "Unable to create/read Amazon CloudFront Downloads Distro. Unexpected response."
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: s2member/includes/classes/files-in.inc.php:1562
|
699 |
msgctxt "s2member-admin"
|
700 |
msgid "Unable to create/read Amazon CloudFront Streaming Distro. Unexpected response."
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: s2member/includes/classes/files-in.inc.php:1573
|
704 |
msgctxt "s2member-admin"
|
705 |
msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
|
706 |
msgstr ""
|
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
|
@@ -17,7 +17,7 @@ Authorize.Net® Compatible: yes w/s2Member® Pro
|
|
17 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
18 |
ClickBank® Compatible: yes w/s2Member® Pro
|
19 |
|
20 |
-
Tested up to: 4.
|
21 |
Requires at least: 4.2
|
22 |
|
23 |
Requires PHP: 5.2+
|
@@ -169,12 +169,30 @@ 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 |
= v160120 =
|
179 |
|
180 |
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
+
Version: 160303
|
4 |
+
Stable tag: 160303
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
17 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
18 |
ClickBank® Compatible: yes w/s2Member® Pro
|
19 |
|
20 |
+
Tested up to: 4.5-alpha
|
21 |
Requires at least: 4.2
|
22 |
|
23 |
Requires PHP: 5.2+
|
169 |
|
170 |
== Upgrade Notice ==
|
171 |
|
172 |
+
= v160303 =
|
173 |
|
174 |
(Maintenance Release) Upgrade immediately.
|
175 |
|
176 |
== Changelog ==
|
177 |
|
178 |
+
= v160303 =
|
179 |
+
|
180 |
+
- (s2Member/s2Member Pro) **Comet Cache Compat.:** This release improves compatibility with Comet Cache (formerly ZenCache), whenever you have it configured to cache logged-in users. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/888). Props @KTS915 for reporting!
|
181 |
+
|
182 |
+
- (s2Member Pro) **ClickBank IPN v6 Compat.:** Version 6 of the ClickBank IPN system was recently updated in a way that causes it to return `transactionType = CANCEL-TEST-REBILL` in test mode, instead of the previous value, which was: `TEST_CANCEL-REBILL`. s2Member Pro has been updated to understand either/or. See also [this GitHub issue](https://github.com/websharks/s2member/issues/882) for further details.
|
183 |
+
|
184 |
+
- (s2Member Pro) **Stripe Bug Fix:** This release corrects a bug caused by typos in the source code that were preventing refunds from being processed as expected whenever Stripe was integrated. Props @YearOfBenj for reporting this important issue. Props @patdumond for relaying vital information. See also [this GitHub issue](https://github.com/websharks/s2member/issues/874) if you'd like additional details.
|
185 |
+
|
186 |
+
- (s2Member Pro) **PayPal Bug Fix:** Under some conditions, the EOT behavior in s2Member Pro (when integrated with PayPal Pro) would immediately terminate access whenever a customer's subscription naturally expires. Recent versions of the Payflow system set the status to `EXPIRED`, and this was handled as an immediate EOT instead of as a delayed EOT that is subject to date calculations to determine the correct date on which a customer should lose access; i.e., based on what they have already paid for. Fixed in this release. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/873) if you'd like additional details.
|
187 |
+
|
188 |
+
- (s2Member Pro) **One-Time Offer Bug Fix:** This release corrects some inconsistencies in the One-Time Offers system that comes with s2Member Pro. Symptoms included seemingly unpredictable behavior whenever redirections were configured without a specific Membership Level. Props @jacobposey for reporting. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/855) if you'd like additional details.
|
189 |
+
|
190 |
+
- (s2Member/s2Member Pro) **Bug Fix:** s2Member was not properly respecting `DISALLOW_FILE_MODS` in a specific scenario related to GZIP. Props @renzms @kristineds. See also: [this GitHub issue](https://github.com/websharks/s2member/issues/832) for further details.
|
191 |
+
|
192 |
+
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
193 |
+
|
194 |
+
- (s2Member/s2Member Pro) **PayPal Sandbox:** This release updates the inline documentation under the PayPal Account Settings section of s2Member. We now suggest that instead of enabling PayPal Sandbox Mode (sometimes buggy at best), that site owners run tests with low-dollar amounts against a live PayPal account instead; e.g., $0.01 test transactions in live mode work great also. See [this GitHub issue](https://github.com/websharks/s2member/issues/891) if you'd like additional details. Props @raamdev for mentioning this again.
|
195 |
+
|
196 |
= v160120 =
|
197 |
|
198 |
- (s2Member,s2Member Pro) **Bug Fix:** Resolved a minor glitch in the **WordPress Dashboard → Settings → General** panel, where s2Member's notice regarding Open Registration was inadvertently forcing the entire page into italics. Props @renzms @kristineds @raamdev ~ See also: [this GitHub issue](https://github.com/websharks/s2member/issues/831) if you'd like additional details.
|
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
|
@@ -35,7 +35,7 @@ Authorize.Net Compatible: yes w/s2Member Pro
|
|
35 |
Google Wallet Compatible: yes w/s2Member Pro
|
36 |
ClickBank Compatible: yes w/s2Member Pro
|
37 |
|
38 |
-
Tested up to: 4.
|
39 |
Requires at least: 4.2
|
40 |
|
41 |
Requires PHP: 5.2+
|
@@ -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: 160303
|
23 |
+
Stable tag: 160303
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
35 |
Google Wallet Compatible: yes w/s2Member Pro
|
36 |
ClickBank Compatible: yes w/s2Member Pro
|
37 |
|
38 |
+
Tested up to: 4.5-alpha
|
39 |
Requires at least: 4.2
|
40 |
|
41 |
Requires PHP: 5.2+
|
81 |
* @var string
|
82 |
*/
|
83 |
if(!defined('WS_PLUGIN__S2MEMBER_VERSION'))
|
84 |
+
define('WS_PLUGIN__S2MEMBER_VERSION', '160303' /* !#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', '160303' /* !#distro-version#! */);
|
115 |
/*
|
116 |
Several compatibility checks.
|
117 |
If all pass, load the s2Member plugin.
|