Version Description
= v140328 =
(Maintenance Release) Upgrade immediately.
Download this release
Release Info
Developer | JasWSInc |
Plugin | s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) |
Version | 140328 |
Comparing to | |
See all releases |
Code changes from version 140105 to 140328
- .htaccess +4 -3
- checksum.txt +1 -1
- images/getresponse-logo.png +0 -0
- includes/.htaccess +6 -1
- includes/classes/auto-eots.inc.php +2 -0
- includes/classes/custom-reg-fields.inc.php +16 -8
- includes/classes/files-in.inc.php +25 -8
- includes/classes/installation.inc.php +8 -8
- includes/classes/list-servers.inc.php +89 -3
- includes/classes/login-redirects-r.inc.php +6 -2
- includes/classes/login-redirects.inc.php +16 -5
- includes/classes/paypal-notify-in-billing-agreement-signup.inc.php +80 -0
- includes/classes/paypal-notify-in-cart.inc.php +2 -4
- includes/classes/paypal-notify-in-express-checkout.inc.php +2 -4
- includes/classes/paypal-notify-in-merch-pmt.inc.php +80 -0
- includes/classes/paypal-notify-in-rec-profile-creation-w-level.inc.php +1 -1
- includes/classes/paypal-notify-in-send-money.inc.php +2 -4
- includes/classes/paypal-notify-in-sp-refund-reversal.inc.php +1 -1
- includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php +6 -1
- includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php +3 -3
- includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php +17 -11
- includes/classes/paypal-notify-in-subscr-or-rp-payment-failed-w-level.inc.php +1 -1
- includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php +1 -1
- includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php +6 -1
- includes/classes/paypal-notify-in-virtual-terminal.inc.php +2 -4
- includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php +1 -1
- includes/classes/paypal-notify-in-web-accept-sp.inc.php +1 -1
- includes/classes/paypal-notify-in.inc.php +25 -8
- includes/classes/paypal-return-in-no-tx-data.inc.php +1 -1
- includes/classes/paypal-return-in-proxy-ty-email.inc.php +1 -1
- includes/classes/paypal-return-in-proxy-x-preview.inc.php +1 -1
- includes/classes/paypal-return-in-subscr-modify-w-level.inc.php +6 -1
- includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php +6 -1
- includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php +1 -1
- includes/classes/paypal-return-in-web-accept-sp.inc.php +1 -1
- includes/classes/paypal-return-in.inc.php +9 -5
- includes/classes/paypal-utilities.inc.php +43 -30
- includes/classes/registrations.inc.php +7 -1
- includes/classes/sc-if-conds-in.inc.php +76 -19
- includes/classes/sc-profile-in.inc.php +1 -1
- includes/classes/user-securities.inc.php +4 -1
- includes/classes/users-list.inc.php +4 -0
- includes/classes/utils-s2o.inc.php +4 -1
- includes/classes/utils-strings.inc.php +16 -0
- includes/classes/utils-users.inc.php +10 -7
- includes/codes.inc.php +7 -0
- includes/menu-pages/code-samples/current-user-downloads-allowed-is-unlimited.x-php +10 -3
- includes/menu-pages/code-samples/current-user-paid-registration-days-dripping.x-php +20 -3
- includes/menu-pages/code-samples/current-user-paid-registration-days.x-php +22 -3
- includes/menu-pages/code-samples/current-user-registration-days.x-php +22 -3
- includes/menu-pages/code-samples/s2drip-example1.x-php +26 -0
- includes/menu-pages/code-samples/s2member-paid-registration-time-examples.x-php +22 -1
- includes/menu-pages/code-samples/sc-current-user-can-full-access-farm.x-php +1 -3
- includes/menu-pages/code-samples/sc-current-user-can-full-access.x-php +1 -3
- includes/menu-pages/code-samples/sc-current-user-is-specific-content-else-farm.x-php +24 -0
- includes/menu-pages/code-samples/sc-current-user-is-specific-content-else.x-php +24 -0
- includes/menu-pages/code-samples/sc-is-user-logged-in-else-farm.x-php +5 -0
- includes/menu-pages/code-samples/sc-is-user-logged-in-else.x-php +5 -0
- includes/menu-pages/code-samples/sc-s2-conditional-nesting-else-farm.x-php +7 -0
- includes/menu-pages/code-samples/sc-s2-conditional-nesting-else.x-php +7 -0
- includes/menu-pages/code-samples/sc-s2-conditional-nesting-farm.x-php +5 -0
- includes/menu-pages/code-samples/sc-s2-conditional-nesting.x-php +1 -1
- includes/menu-pages/code-samples/sc-s2-conditional-supplements-3-farm.x-php +1 -1
- includes/menu-pages/code-samples/sc-s2-conditional-supplements-3.x-php +1 -1
- includes/menu-pages/down-ops.inc.php +29 -0
- includes/menu-pages/els-ops.inc.php +76 -4
- includes/menu-pages/menu-pages.css +3 -3
- includes/menu-pages/paypal-ops.inc.php +7 -6
- includes/menu-pages/res-ops.inc.php +32 -0
- includes/menu-pages/scripting.inc.php +54 -14
- includes/syscon.inc.php +16 -4
- includes/templates/cfg-files/s2member-files.php +15 -6
- includes/templates/cfg-files/s2member-logs.php +9 -1
- includes/translations/s2member.pot +788 -760
- readme.txt +38 -5
- s2member.php +4 -4
.htaccess
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
-
# Configuration of directory indexes.
|
2 |
-
# For added security (set these explicitly).
|
3 |
Options -Indexes
|
4 |
-
|
|
|
|
|
|
|
|
|
|
1 |
Options -Indexes
|
2 |
+
<IfModule dir_module>
|
3 |
+
DirectoryIndex disabled
|
4 |
+
DirectoryIndex index.php
|
5 |
+
</IfModule>
|
checksum.txt
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
1 |
+
3d97d4d4213785bad33b96ffa9cba239
|
images/getresponse-logo.png
ADDED
Binary file
|
includes/.htaccess
CHANGED
@@ -1 +1,6 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
1 |
+
<IfModule authz_core_module>
|
2 |
+
Require all denied
|
3 |
+
</IfModule>
|
4 |
+
<IfModule !authz_core_module>
|
5 |
+
deny from all
|
6 |
+
</IfModule>
|
includes/classes/auto-eots.inc.php
CHANGED
@@ -130,6 +130,7 @@ if (!class_exists ("c_ws_plugin__s2member_auto_eots"))
|
|
130 |
$custom = get_user_option ("s2member_custom", $user_id);
|
131 |
$subscr_gateway = get_user_option ("s2member_subscr_gateway", $user_id);
|
132 |
$subscr_id = get_user_option ("s2member_subscr_id", $user_id);
|
|
|
133 |
$fields = get_user_option ("s2member_custom_fields", $user_id);
|
134 |
$user_reg_ip = get_user_option ("s2member_registration_ip", $user_id);
|
135 |
|
@@ -153,6 +154,7 @@ if (!class_exists ("c_ws_plugin__s2member_auto_eots"))
|
|
153 |
|
154 |
delete_user_option ($user_id, "s2member_custom");
|
155 |
delete_user_option ($user_id, "s2member_subscr_id");
|
|
|
156 |
delete_user_option ($user_id, "s2member_subscr_gateway");
|
157 |
|
158 |
delete_user_option ($user_id, "s2member_ipn_signup_vars");
|
130 |
$custom = get_user_option ("s2member_custom", $user_id);
|
131 |
$subscr_gateway = get_user_option ("s2member_subscr_gateway", $user_id);
|
132 |
$subscr_id = get_user_option ("s2member_subscr_id", $user_id);
|
133 |
+
$subscr_baid = get_user_option ("s2member_subscr_baid", $user_id);
|
134 |
$fields = get_user_option ("s2member_custom_fields", $user_id);
|
135 |
$user_reg_ip = get_user_option ("s2member_registration_ip", $user_id);
|
136 |
|
154 |
|
155 |
delete_user_option ($user_id, "s2member_custom");
|
156 |
delete_user_option ($user_id, "s2member_subscr_id");
|
157 |
+
delete_user_option ($user_id, "s2member_subscr_baid");
|
158 |
delete_user_option ($user_id, "s2member_subscr_gateway");
|
159 |
|
160 |
delete_user_option ($user_id, "s2member_ipn_signup_vars");
|
includes/classes/custom-reg-fields.inc.php
CHANGED
@@ -108,7 +108,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
108 |
{
|
109 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
110 |
{
|
111 |
-
|
|
|
112 |
if($option_value === (string)$_value)
|
113 |
{
|
114 |
$gen = $option_label;
|
@@ -122,7 +123,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
122 |
$selected_default_option = false;
|
123 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
124 |
{
|
125 |
-
|
|
|
126 |
$gen .= '<option value="'.esc_attr($option_value).'"'.(((($option_default && !$_submission) || ($option_value === (string)$_value && !$selected_default_option)) && ($selected_default_option = true)) ? ' selected="selected"' : '').'>'.$option_label.'</option>';
|
127 |
}
|
128 |
$gen .= '</select>';
|
@@ -134,7 +136,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
134 |
{
|
135 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
136 |
{
|
137 |
-
|
|
|
138 |
if(in_array($option_value, (array)$_value))
|
139 |
$gen .= $option_label.", ";
|
140 |
}
|
@@ -148,7 +151,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
148 |
$gen = '<select multiple="multiple" size="3"'.$common.'>';
|
149 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
150 |
{
|
151 |
-
|
|
|
152 |
$gen .= '<option value="'.esc_attr($option_value).'"'.((($option_default && !$_submission) || in_array($option_value, (array)$_value)) ? ' selected="selected"' : '').'>'.$option_label.'</option>';
|
153 |
}
|
154 |
$gen .= '</select>';
|
@@ -184,7 +188,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
184 |
{
|
185 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $i => $option_line)
|
186 |
{
|
187 |
-
|
|
|
188 |
if(in_array($option_value, (array)$_value))
|
189 |
$gen .= $option_label.", ";
|
190 |
}
|
@@ -201,7 +206,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
201 |
{
|
202 |
$common_i = preg_replace('/ id\="(.+?)"/', ' id="$1---'.($i).'"', $common);
|
203 |
|
204 |
-
|
|
|
205 |
|
206 |
$gen .= ($i > 0) ? $sep : ''; // Separators can be filtered above.
|
207 |
$gen .= '<input type="checkbox" value="'.esc_attr($option_value).'"';
|
@@ -216,7 +222,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
216 |
{
|
217 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $i => $option_line)
|
218 |
{
|
219 |
-
|
|
|
220 |
if($option_value === (string)$_value)
|
221 |
{
|
222 |
$gen = $option_label;
|
@@ -233,7 +240,8 @@ if(!class_exists("c_ws_plugin__s2member_custom_reg_fields"))
|
|
233 |
{
|
234 |
$common_i = preg_replace('/ id\="(.+?)"/', ' id="$1---'.($i).'"', $common);
|
235 |
|
236 |
-
|
|
|
237 |
|
238 |
$gen .= ($i > 0) ? $sep : ''; // Separators can be filtered above.
|
239 |
$gen .= '<input type="radio" value="'.esc_attr($option_value).'"';
|
108 |
{
|
109 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
110 |
{
|
111 |
+
$option_value = $option_label = $option_default = "";
|
112 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
113 |
if($option_value === (string)$_value)
|
114 |
{
|
115 |
$gen = $option_label;
|
123 |
$selected_default_option = false;
|
124 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
125 |
{
|
126 |
+
$option_value = $option_label = $option_default = "";
|
127 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
128 |
$gen .= '<option value="'.esc_attr($option_value).'"'.(((($option_default && !$_submission) || ($option_value === (string)$_value && !$selected_default_option)) && ($selected_default_option = true)) ? ' selected="selected"' : '').'>'.$option_label.'</option>';
|
129 |
}
|
130 |
$gen .= '</select>';
|
136 |
{
|
137 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
138 |
{
|
139 |
+
$option_value = $option_label = $option_default = "";
|
140 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
141 |
if(in_array($option_value, (array)$_value))
|
142 |
$gen .= $option_label.", ";
|
143 |
}
|
151 |
$gen = '<select multiple="multiple" size="3"'.$common.'>';
|
152 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $option_line)
|
153 |
{
|
154 |
+
$option_value = $option_label = $option_default = "";
|
155 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
156 |
$gen .= '<option value="'.esc_attr($option_value).'"'.((($option_default && !$_submission) || in_array($option_value, (array)$_value)) ? ' selected="selected"' : '').'>'.$option_label.'</option>';
|
157 |
}
|
158 |
$gen .= '</select>';
|
188 |
{
|
189 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $i => $option_line)
|
190 |
{
|
191 |
+
$option_value = $option_label = $option_default = "";
|
192 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
193 |
if(in_array($option_value, (array)$_value))
|
194 |
$gen .= $option_label.", ";
|
195 |
}
|
206 |
{
|
207 |
$common_i = preg_replace('/ id\="(.+?)"/', ' id="$1---'.($i).'"', $common);
|
208 |
|
209 |
+
$option_value = $option_label = $option_default = "";
|
210 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
211 |
|
212 |
$gen .= ($i > 0) ? $sep : ''; // Separators can be filtered above.
|
213 |
$gen .= '<input type="checkbox" value="'.esc_attr($option_value).'"';
|
222 |
{
|
223 |
foreach(preg_split("/[\r\n\t]+/", $field["options"]) as $i => $option_line)
|
224 |
{
|
225 |
+
$option_value = $option_label = $option_default = "";
|
226 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
227 |
if($option_value === (string)$_value)
|
228 |
{
|
229 |
$gen = $option_label;
|
240 |
{
|
241 |
$common_i = preg_replace('/ id\="(.+?)"/', ' id="$1---'.($i).'"', $common);
|
242 |
|
243 |
+
$option_value = $option_label = $option_default = "";
|
244 |
+
@list($option_value, $option_label, $option_default) = c_ws_plugin__s2member_utils_strings::trim_deep(preg_split("/\|/", trim($option_line)));
|
245 |
|
246 |
$gen .= ($i > 0) ? $sep : ''; // Separators can be filtered above.
|
247 |
$gen .= '<input type="radio" value="'.esc_attr($option_value).'"';
|
includes/classes/files-in.inc.php
CHANGED
@@ -124,7 +124,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
124 |
return false;
|
125 |
}
|
126 |
|
127 |
-
else
|
128 |
{
|
129 |
if /* We only need remote functionality when/if we're actually serving. */($serving)
|
130 |
if(!has_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization"))
|
@@ -134,7 +134,20 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
134 |
if(has_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization"))
|
135 |
remove_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization", 10, 2);
|
136 |
|
137 |
-
if(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
{
|
139 |
if /* We only need this section when/if we're actually serving. */($serving)
|
140 |
{
|
@@ -370,6 +383,10 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
370 |
if(function_exists("apache_setenv"))
|
371 |
@apache_setenv("no-gzip", "1");
|
372 |
|
|
|
|
|
|
|
|
|
373 |
while /* Cleans existing output buffers. */(@ob_end_clean());
|
374 |
|
375 |
if /* Requesting a specific byte range? */($range)
|
@@ -378,7 +395,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
378 |
{
|
379 |
status_header(416);
|
380 |
nocache_headers();
|
381 |
-
header(
|
382 |
header("Accept-Ranges: bytes");
|
383 |
header("Content-Type: ".$mimetype);
|
384 |
header("Content-Length: ".$length);
|
@@ -394,7 +411,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
394 |
{
|
395 |
status_header(416);
|
396 |
nocache_headers();
|
397 |
-
header(
|
398 |
header("Accept-Ranges: bytes");
|
399 |
header("Content-Type: ".$mimetype);
|
400 |
header("Content-Length: ".$length);
|
@@ -407,7 +424,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
407 |
{
|
408 |
status_header(416);
|
409 |
nocache_headers();
|
410 |
-
header(
|
411 |
header("Accept-Ranges: bytes");
|
412 |
header("Content-Type: ".$mimetype);
|
413 |
header("Content-Length: ".$length);
|
@@ -440,7 +457,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
440 |
{
|
441 |
status_header(416);
|
442 |
nocache_headers();
|
443 |
-
header(
|
444 |
header("Accept-Ranges: bytes");
|
445 |
header("Content-Type: ".$mimetype);
|
446 |
header("Content-Length: ".$length);
|
@@ -450,7 +467,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
450 |
// Range.
|
451 |
status_header(206);
|
452 |
nocache_headers();
|
453 |
-
header(
|
454 |
header("Accept-Ranges: bytes");
|
455 |
header("Content-Type: ".$mimetype);
|
456 |
header("Content-Range: bytes ".$byte_range_start."-".$byte_range_stops."/".$length);
|
@@ -462,7 +479,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
|
|
462 |
{
|
463 |
status_header(200);
|
464 |
nocache_headers();
|
465 |
-
header(
|
466 |
header("Accept-Ranges: bytes");
|
467 |
header("Content-Type: ".$mimetype);
|
468 |
header("Content-Length: ".$length);
|
124 |
return false;
|
125 |
}
|
126 |
|
127 |
+
else // Default behavior; check file download access against the current user.
|
128 |
{
|
129 |
if /* We only need remote functionality when/if we're actually serving. */($serving)
|
130 |
if(!has_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization"))
|
134 |
if(has_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization"))
|
135 |
remove_filter("ws_plugin__s2member_check_file_download_access_user", "c_ws_plugin__s2member_files_in::check_file_remote_authorization", 10, 2);
|
136 |
|
137 |
+
if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["membership_options_page"])
|
138 |
+
{
|
139 |
+
if /* We only need this section when/if we're actually serving. */($serving)
|
140 |
+
{
|
141 |
+
status_header(503);
|
142 |
+
header("Content-Type: text/html; charset=UTF-8");
|
143 |
+
while (@ob_end_clean ()); // Clean any existing output buffers.
|
144 |
+
exit(_x('<strong>503: Basic File Downloads are NOT enabled yet.</strong> Please contact Support for assistance. If you are the site owner, please configure: <code>s2Member -› General Options -› Membership Options Page</code>.', "s2member-front", "s2member"));
|
145 |
+
}
|
146 |
+
else // Else return false.
|
147 |
+
return false;
|
148 |
+
}
|
149 |
+
|
150 |
+
else if(($file_downloads_enabled_by_site_owner = $min_level_4_downloads = c_ws_plugin__s2member_files::min_level_4_downloads()) === false)
|
151 |
{
|
152 |
if /* We only need this section when/if we're actually serving. */($serving)
|
153 |
{
|
383 |
if(function_exists("apache_setenv"))
|
384 |
@apache_setenv("no-gzip", "1");
|
385 |
|
386 |
+
$content_encoding_header = "Content-Encoding:"; // Default value; standards compliant.
|
387 |
+
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_content_encodong_none"])
|
388 |
+
$content_encoding_header = "Content-Encoding: none";
|
389 |
+
|
390 |
while /* Cleans existing output buffers. */(@ob_end_clean());
|
391 |
|
392 |
if /* Requesting a specific byte range? */($range)
|
395 |
{
|
396 |
status_header(416);
|
397 |
nocache_headers();
|
398 |
+
header($content_encoding_header);
|
399 |
header("Accept-Ranges: bytes");
|
400 |
header("Content-Type: ".$mimetype);
|
401 |
header("Content-Length: ".$length);
|
411 |
{
|
412 |
status_header(416);
|
413 |
nocache_headers();
|
414 |
+
header($content_encoding_header);
|
415 |
header("Accept-Ranges: bytes");
|
416 |
header("Content-Type: ".$mimetype);
|
417 |
header("Content-Length: ".$length);
|
424 |
{
|
425 |
status_header(416);
|
426 |
nocache_headers();
|
427 |
+
header($content_encoding_header);
|
428 |
header("Accept-Ranges: bytes");
|
429 |
header("Content-Type: ".$mimetype);
|
430 |
header("Content-Length: ".$length);
|
457 |
{
|
458 |
status_header(416);
|
459 |
nocache_headers();
|
460 |
+
header($content_encoding_header);
|
461 |
header("Accept-Ranges: bytes");
|
462 |
header("Content-Type: ".$mimetype);
|
463 |
header("Content-Length: ".$length);
|
467 |
// Range.
|
468 |
status_header(206);
|
469 |
nocache_headers();
|
470 |
+
header($content_encoding_header);
|
471 |
header("Accept-Ranges: bytes");
|
472 |
header("Content-Type: ".$mimetype);
|
473 |
header("Content-Range: bytes ".$byte_range_start."-".$byte_range_stops."/".$length);
|
479 |
{
|
480 |
status_header(200);
|
481 |
nocache_headers();
|
482 |
+
header($content_encoding_header);
|
483 |
header("Accept-Ranges: bytes");
|
484 |
header("Content-Type: ".$mimetype);
|
485 |
header("Content-Length: ".$length);
|
includes/classes/installation.inc.php
CHANGED
@@ -78,37 +78,37 @@ if(!class_exists("c_ws_plugin__s2member_installation"))
|
|
78 |
$like = "`meta_key` LIKE 's2member\_%' AND `meta_key` NOT LIKE '%s2member\_originating\_blog%'";
|
79 |
$wpdb->query("UPDATE `".$wpdb->usermeta."` SET `meta_key` = CONCAT('".$wpdb->prefix."', `meta_key`) WHERE ".$like);
|
80 |
}
|
81 |
-
|
82 |
if /* Needs to be upgraded? */(!$v || !version_compare($v, "3.2.5", ">="))
|
83 |
// Version 3.2.5 is where transient names were changed. They're prefixed now.
|
84 |
{
|
85 |
$wpdb->query("DELETE FROM `".$wpdb->options."` WHERE `option_name` LIKE '\_transient\_%'");
|
86 |
}
|
87 |
-
|
88 |
if /* Needs to be upgraded? */(!$v || !version_compare($v, "3.2.6", ">="))
|
89 |
// Version 3.2.6 fixed `s2member_ccaps_req` being stored empty and/or w/ one empty element in the array.
|
90 |
{
|
91 |
$wpdb->query("DELETE FROM `".$wpdb->postmeta."` WHERE `meta_key` = 's2member_ccaps_req' AND `meta_value` IN('','a:0:{}','a:1:{i:0;s:0:\"\";}')");
|
92 |
}
|
93 |
-
|
94 |
if(!$v || !version_compare($v, "110912", ">=") && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["filter_wp_query"] === array("all"))
|
95 |
// s2Member v110912 changed the way the "all" option for Alternative Views was handled.
|
96 |
{
|
97 |
$notice = '<strong>IMPORTANT:</strong> This version of s2Member changes the way your <code>Alternative View Protections</code> work. Please review your options under: <code>s2Member -› Restriction Options -› Alternative View Protections</code>.';
|
98 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
99 |
}
|
100 |
-
|
101 |
if($v && version_compare($v, "130316", "<=")) // This version disables logging by default.
|
102 |
{
|
103 |
c_ws_plugin__s2member_menu_pages::update_all_options(array("ws_plugin__s2member_gateway_debug_logs" => "0", "ws_plugin__s2member_gateway_debug_logs_extensive" => "0"), true, false, false, false, false);
|
104 |
-
|
105 |
$notice = '<strong>IMPORTANT:</strong> This version of s2Member disables s2Member\'s debug logging by default (for added security). Please see: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">s2Member -› Log Files (Debug) -› Configuration</a> for further details.';
|
106 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
107 |
-
|
108 |
$notice = '<strong>IMPORTANT / Regarding s2Member Security Badges:</strong> If debug logging is enabled, your site will no longer qualify for an s2Member Security Badge until you disable logging (and you MUST also download, and then delete any existing log files from the past). Please see KB Article: <a href="http://www.s2member.com/kb/security-badges/" target="_blank" rel="external">s2Member Security Badges</a> for further details. If you have existing s2Member log files, you will need to delete those files from the server before your s2Member Security Badge can be re-enabled. s2Member stores log files here: <code>'.esc_html(c_ws_plugin__s2member_utils_dirs::doc_root_path($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"])).'</code>. See also: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">s2Member -› Log Files (Debug) -› Configuration</a> for further details.';
|
109 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
110 |
}
|
111 |
-
|
|
|
|
|
|
|
|
|
112 |
$notice = '<strong>s2Member</strong> has been <strong>reactivated</strong>, with '.(($reactivation_reason === "levels") ? '<code>'.esc_html($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]).'</code> Membership Levels' : 'the latest version').'.<br />';
|
113 |
$notice .= 'You now have version '.esc_html(WS_PLUGIN__S2MEMBER_VERSION).'. Your existing configuration remains.';
|
114 |
|
@@ -171,7 +171,7 @@ if(!class_exists("c_ws_plugin__s2member_installation"))
|
|
171 |
c_ws_plugin__s2member_roles_caps::unlink_roles /* Unlink Roles/Caps. */();
|
172 |
|
173 |
c_ws_plugin__s2member_files::remove_no_gzip_from_root_htaccess /* Remove GZIP exclusions. */();
|
174 |
-
|
175 |
if(is_dir($files_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"]))
|
176 |
{
|
177 |
if(file_exists($htaccess = $files_dir."/.htaccess"))
|
78 |
$like = "`meta_key` LIKE 's2member\_%' AND `meta_key` NOT LIKE '%s2member\_originating\_blog%'";
|
79 |
$wpdb->query("UPDATE `".$wpdb->usermeta."` SET `meta_key` = CONCAT('".$wpdb->prefix."', `meta_key`) WHERE ".$like);
|
80 |
}
|
|
|
81 |
if /* Needs to be upgraded? */(!$v || !version_compare($v, "3.2.5", ">="))
|
82 |
// Version 3.2.5 is where transient names were changed. They're prefixed now.
|
83 |
{
|
84 |
$wpdb->query("DELETE FROM `".$wpdb->options."` WHERE `option_name` LIKE '\_transient\_%'");
|
85 |
}
|
|
|
86 |
if /* Needs to be upgraded? */(!$v || !version_compare($v, "3.2.6", ">="))
|
87 |
// Version 3.2.6 fixed `s2member_ccaps_req` being stored empty and/or w/ one empty element in the array.
|
88 |
{
|
89 |
$wpdb->query("DELETE FROM `".$wpdb->postmeta."` WHERE `meta_key` = 's2member_ccaps_req' AND `meta_value` IN('','a:0:{}','a:1:{i:0;s:0:\"\";}')");
|
90 |
}
|
|
|
91 |
if(!$v || !version_compare($v, "110912", ">=") && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["filter_wp_query"] === array("all"))
|
92 |
// s2Member v110912 changed the way the "all" option for Alternative Views was handled.
|
93 |
{
|
94 |
$notice = '<strong>IMPORTANT:</strong> This version of s2Member changes the way your <code>Alternative View Protections</code> work. Please review your options under: <code>s2Member -› Restriction Options -› Alternative View Protections</code>.';
|
95 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
96 |
}
|
|
|
97 |
if($v && version_compare($v, "130316", "<=")) // This version disables logging by default.
|
98 |
{
|
99 |
c_ws_plugin__s2member_menu_pages::update_all_options(array("ws_plugin__s2member_gateway_debug_logs" => "0", "ws_plugin__s2member_gateway_debug_logs_extensive" => "0"), true, false, false, false, false);
|
100 |
+
|
101 |
$notice = '<strong>IMPORTANT:</strong> This version of s2Member disables s2Member\'s debug logging by default (for added security). Please see: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">s2Member -› Log Files (Debug) -› Configuration</a> for further details.';
|
102 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
103 |
+
|
104 |
$notice = '<strong>IMPORTANT / Regarding s2Member Security Badges:</strong> If debug logging is enabled, your site will no longer qualify for an s2Member Security Badge until you disable logging (and you MUST also download, and then delete any existing log files from the past). Please see KB Article: <a href="http://www.s2member.com/kb/security-badges/" target="_blank" rel="external">s2Member Security Badges</a> for further details. If you have existing s2Member log files, you will need to delete those files from the server before your s2Member Security Badge can be re-enabled. s2Member stores log files here: <code>'.esc_html(c_ws_plugin__s2member_utils_dirs::doc_root_path($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"])).'</code>. See also: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">s2Member -› Log Files (Debug) -› Configuration</a> for further details.';
|
105 |
c_ws_plugin__s2member_admin_notices::enqueue_admin_notice($notice, array("blog|network:plugins.php", "blog|network:ws-plugin--s2member-start", "blog|network:ws-plugin--s2member-mms-ops", "blog|network:ws-plugin--s2member-gen-ops", "blog|network:ws-plugin--s2member-res-ops"));
|
106 |
}
|
107 |
+
if($v && version_compare($v, "140128", "<=")) // This version introduces support for partial refunds.
|
108 |
+
{
|
109 |
+
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,reversals") // `refunds,reversals` => `refunds,partial_refunds,reversals`
|
110 |
+
c_ws_plugin__s2member_menu_pages::update_all_options(array("ws_plugin__s2member_triggers_immediate_eot" => "refunds,partial_refunds,reversals"), true, false, false, false, false);
|
111 |
+
}
|
112 |
$notice = '<strong>s2Member</strong> has been <strong>reactivated</strong>, with '.(($reactivation_reason === "levels") ? '<code>'.esc_html($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]).'</code> Membership Levels' : 'the latest version').'.<br />';
|
113 |
$notice .= 'You now have version '.esc_html(WS_PLUGIN__S2MEMBER_VERSION).'. Your existing configuration remains.';
|
114 |
|
171 |
c_ws_plugin__s2member_roles_caps::unlink_roles /* Unlink Roles/Caps. */();
|
172 |
|
173 |
c_ws_plugin__s2member_files::remove_no_gzip_from_root_htaccess /* Remove GZIP exclusions. */();
|
174 |
+
|
175 |
if(is_dir($files_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"]))
|
176 |
{
|
177 |
if(file_exists($htaccess = $files_dir."/.htaccess"))
|
includes/classes/list-servers.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_list_servers"))
|
|
40 |
do_action ("ws_plugin__s2member_before_list_servers_integrated", get_defined_vars ());
|
41 |
|
42 |
for /* Go through each Level; looking for a configured list. */ ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
43 |
-
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_mailchimp_list_ids"]) || !empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_aweber_list_ids"]))
|
44 |
return apply_filters ("ws_plugin__s2member_list_servers_integrated", true, get_defined_vars ());
|
45 |
|
46 |
return apply_filters ("ws_plugin__s2member_list_servers_integrated", false, get_defined_vars ());
|
@@ -94,9 +94,9 @@ if (!class_exists ("c_ws_plugin__s2member_list_servers"))
|
|
94 |
{
|
95 |
$mailchimp = array ("function" => __FUNCTION__, "func_get_args" => $args, "api_method" => "listSubscribe");
|
96 |
|
97 |
-
if
|
98 |
{
|
99 |
-
if
|
100 |
{
|
101 |
list ($mailchimp["list_id"], $mailchimp["interest_groups_title"], $mailchimp["interest_groups"]) = preg_split ("/\:\:/", $mailchimp["list"], 3);
|
102 |
|
@@ -143,6 +143,45 @@ if (!class_exists ("c_ws_plugin__s2member_list_servers"))
|
|
143 |
}
|
144 |
}
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]))
|
147 |
{
|
148 |
foreach (preg_split ("/[\r\n\t\s;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]) as $aweber_list)
|
@@ -268,6 +307,53 @@ if (!class_exists ("c_ws_plugin__s2member_list_servers"))
|
|
268 |
}
|
269 |
}
|
270 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]))
|
272 |
{
|
273 |
foreach (preg_split ("/[\r\n\t\s;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]) as $aweber_list)
|
40 |
do_action ("ws_plugin__s2member_before_list_servers_integrated", get_defined_vars ());
|
41 |
|
42 |
for /* Go through each Level; looking for a configured list. */ ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
43 |
+
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_mailchimp_list_ids"]) || !empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_getresponse_list_ids"]) || !empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_aweber_list_ids"]))
|
44 |
return apply_filters ("ws_plugin__s2member_list_servers_integrated", true, get_defined_vars ());
|
45 |
|
46 |
return apply_filters ("ws_plugin__s2member_list_servers_integrated", false, get_defined_vars ());
|
94 |
{
|
95 |
$mailchimp = array ("function" => __FUNCTION__, "func_get_args" => $args, "api_method" => "listSubscribe");
|
96 |
|
97 |
+
if (($mailchimp["list"] = trim ($mailchimp_list)))
|
98 |
{
|
99 |
+
if (strpos ($mailchimp["list"], "::") !== false) // Also contains Interest Groups?
|
100 |
{
|
101 |
list ($mailchimp["list_id"], $mailchimp["interest_groups_title"], $mailchimp["interest_groups"]) = preg_split ("/\:\:/", $mailchimp["list"], 3);
|
102 |
|
143 |
}
|
144 |
}
|
145 |
|
146 |
+
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"]) && !empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_getresponse_list_ids"]))
|
147 |
+
{
|
148 |
+
foreach (preg_split ("/[\r\n\t;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_getresponse_list_ids"]) as $getresponse_list)
|
149 |
+
{
|
150 |
+
$getresponse = array ("function" => __FUNCTION__, "func_get_args" => $args, "api_method" => "add_contact");
|
151 |
+
|
152 |
+
if (($getresponse["list_id"] = $getresponse["list"] = trim ($getresponse_list)))
|
153 |
+
{
|
154 |
+
$getresponse["api_headers"] = array("Content-Type" => "application/json");
|
155 |
+
$getresponse["api_params"] = array($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"],
|
156 |
+
array("name" => trim($fname." ".$lname), "email" => $email, "ip" => $ip,
|
157 |
+
"campaign" => $getresponse["list_id"], "action" => "standard", "cycle_day" => 0,
|
158 |
+
"customs" => apply_filters ("ws_plugin__s2member_getresponse_customs_array", array(), get_defined_vars ())));
|
159 |
+
if(!$getresponse["api_params"][1]["ip"] || $getresponse["api_params"][1]["ip"] === "unknown") unset($getresponse["api_params"][1]["ip"]); // Remove if empty; causes API error.
|
160 |
+
$getresponse["api_request"] = json_encode(array("method" => $getresponse["api_method"], "params" => $getresponse["api_params"], "id" => uniqid("", TRUE)));
|
161 |
+
|
162 |
+
if (is_object($getresponse["api_response"] = // Post JSON-encoded request via getResponse API.
|
163 |
+
json_decode(c_ws_plugin__s2member_utils_urls::remote("https://api2.getresponse.com", $getresponse["api_request"],
|
164 |
+
array("headers" => $getresponse["api_headers"])))) && empty($getresponse["api_response"]->error)
|
165 |
+
&& $getresponse["api_response"]->result->queued) $getresponse["api_success"] = $success = true;
|
166 |
+
|
167 |
+
$logt = c_ws_plugin__s2member_utilities::time_details ();
|
168 |
+
$logv = c_ws_plugin__s2member_utilities::ver_details ();
|
169 |
+
$logm = c_ws_plugin__s2member_utilities::mem_details ();
|
170 |
+
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
|
171 |
+
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
|
172 |
+
$log2 = (is_multisite () && !is_main_site ()) ? "getresponse-api-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "getresponse-api.log";
|
173 |
+
|
174 |
+
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
|
175 |
+
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
|
176 |
+
if (is_writable ($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files ())
|
177 |
+
file_put_contents ($logs_dir . "/" . $log2,
|
178 |
+
"LOG ENTRY: ".$logt . "\n" . $logv . "\n" . $logm . "\n" . $log4 . "\n" .
|
179 |
+
c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export ($getresponse, true)) . "\n\n",
|
180 |
+
FILE_APPEND);
|
181 |
+
}
|
182 |
+
}
|
183 |
+
}
|
184 |
+
|
185 |
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]))
|
186 |
{
|
187 |
foreach (preg_split ("/[\r\n\t\s;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]) as $aweber_list)
|
307 |
}
|
308 |
}
|
309 |
|
310 |
+
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"]) && !empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_getresponse_list_ids"]))
|
311 |
+
{
|
312 |
+
foreach (preg_split ("/[\r\n\t;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_getresponse_list_ids"]) as $getresponse_list)
|
313 |
+
{
|
314 |
+
$getresponse = array ("function" => __FUNCTION__, "func_get_args" => $args, "api_method" => "get_contacts");
|
315 |
+
|
316 |
+
if (($getresponse["list_id"] = $getresponse["list"] = trim ($getresponse_list)))
|
317 |
+
{
|
318 |
+
$getresponse["api_headers"] = array("Content-Type" => "application/json");
|
319 |
+
$getresponse["api_params"] = array($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"],
|
320 |
+
array("campaigns" => array($getresponse["list_id"]), "email" => array("EQUALS" => $email)));
|
321 |
+
$getresponse["api_request"] = json_encode(array("method" => $getresponse["api_method"], "params" => $getresponse["api_params"], "id" => uniqid("", TRUE)));
|
322 |
+
|
323 |
+
if (is_object($getresponse["api_response"] = // Post JSON-encoded request via getResponse API.
|
324 |
+
json_decode(c_ws_plugin__s2member_utils_urls::remote("https://api2.getresponse.com", $getresponse["api_request"],
|
325 |
+
array("headers" => $getresponse["api_headers"])))) && empty($getresponse["api_response"]->error)
|
326 |
+
&& ($getresponse["api_response_contact_ids"] = array_keys((array)$getresponse["api_response"]->result))
|
327 |
+
&& ($getresponse["api_response_contact_id"] = $getresponse["api_response_contact_ids"][0]))
|
328 |
+
{
|
329 |
+
$getresponse["api_method"] = "delete_contact"; // Update method now.
|
330 |
+
$getresponse["api_headers"] = array("Content-Type" => "application/json");
|
331 |
+
$getresponse["api_params"] = array($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"], array("contact" => $getresponse["api_response_contact_id"]));
|
332 |
+
$getresponse["api_request"] = json_encode(array("method" => $getresponse["api_method"], "params" => $getresponse["api_params"], "id" => uniqid("", TRUE)));
|
333 |
+
|
334 |
+
if (is_object($getresponse["api_response"] = // Post JSON-encoded request via getResponse API.
|
335 |
+
json_decode(c_ws_plugin__s2member_utils_urls::remote("https://api2.getresponse.com", $getresponse["api_request"],
|
336 |
+
array("headers" => $getresponse["api_headers"])))) && empty($getresponse["api_response"]->error)
|
337 |
+
&& $getresponse["api_response"]->result->deleted) $getresponse["api_success"] = $success = true;
|
338 |
+
}
|
339 |
+
$logt = c_ws_plugin__s2member_utilities::time_details ();
|
340 |
+
$logv = c_ws_plugin__s2member_utilities::ver_details ();
|
341 |
+
$logm = c_ws_plugin__s2member_utilities::mem_details ();
|
342 |
+
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
|
343 |
+
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
|
344 |
+
$log2 = (is_multisite () && !is_main_site ()) ? "getresponse-api-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "getresponse-api.log";
|
345 |
+
|
346 |
+
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
|
347 |
+
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
|
348 |
+
if (is_writable ($logs_dir) && c_ws_plugin__s2member_utils_logs::archive_oversize_log_files ())
|
349 |
+
file_put_contents ($logs_dir . "/" . $log2,
|
350 |
+
"LOG ENTRY: ".$logt . "\n" . $logv . "\n" . $logm . "\n" . $log4 . "\n" .
|
351 |
+
c_ws_plugin__s2member_utils_logs::conceal_private_info(var_export ($getresponse, true)) . "\n\n",
|
352 |
+
FILE_APPEND);
|
353 |
+
}
|
354 |
+
}
|
355 |
+
}
|
356 |
+
|
357 |
if (!empty ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]))
|
358 |
{
|
359 |
foreach (preg_split ("/[\r\n\t\s;,]+/", $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $level . "_aweber_list_ids"]) as $aweber_list)
|
includes/classes/login-redirects-r.inc.php
CHANGED
@@ -59,8 +59,12 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects_r"))
|
|
59 |
if($redirect_to && is_string ($redirect_to) && strpos($redirect_to, "wp-admin") === FALSE)
|
60 |
{
|
61 |
$redirect_to = preg_replace("/^https\:\/\//i", "http://", $redirect_to);
|
62 |
-
if(stripos($redirect_to, "http://") !== 0) // Force
|
63 |
-
|
|
|
|
|
|
|
|
|
64 |
}
|
65 |
return $redirect_to;
|
66 |
}
|
59 |
if($redirect_to && is_string ($redirect_to) && strpos($redirect_to, "wp-admin") === FALSE)
|
60 |
{
|
61 |
$redirect_to = preg_replace("/^https\:\/\//i", "http://", $redirect_to);
|
62 |
+
if(stripos($redirect_to, "http://") !== 0) // Force absolute.
|
63 |
+
{
|
64 |
+
$home_path = trim((string)@parse_url(home_url('/'), PHP_URL_PATH), '/');
|
65 |
+
$http_home_base = trim(preg_replace('/\/'.preg_quote($home_path, '/').'\/$/', '', home_url('/', 'http')), '/');
|
66 |
+
$redirect_to = $http_home_base.'/'.ltrim($redirect_to, '/');
|
67 |
+
}
|
68 |
}
|
69 |
return $redirect_to;
|
70 |
}
|
includes/classes/login-redirects.inc.php
CHANGED
@@ -60,14 +60,18 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
|
|
60 |
|
61 |
if (($ok = true) && !is_super_admin ($user_id) && $username !== "demo" // Exclude super admins, the `demo` user, and anyone who can edit posts.
|
62 |
&& !apply_filters ("ws_plugin__s2member_disable_login_ip_restrictions", (($user->has_cap ("edit_posts")) ? true : false), get_defined_vars ()))
|
63 |
-
$ok = c_ws_plugin__s2member_ip_restrictions::ip_restrictions_ok ($_SERVER["REMOTE_ADDR"], $username);
|
64 |
|
65 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"]) // Alter value of `redirect_to`?
|
66 |
if(!empty ($_REQUEST["redirect_to"]) && is_string ($_REQUEST["redirect_to"]) && strpos($_REQUEST["redirect_to"], "wp-admin") === FALSE)
|
67 |
{
|
68 |
$_REQUEST["redirect_to"] = preg_replace("/^https\:\/\//i", "http://", $_REQUEST["redirect_to"]);
|
69 |
if(stripos($_REQUEST["redirect_to"], "http://") !== 0) // Force an absolute URL in this case.
|
70 |
-
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
if (($redirect = apply_filters ("ws_plugin__s2member_login_redirect", (($user->has_cap ("edit_posts")) ? false : true), get_defined_vars ())))
|
73 |
{
|
@@ -84,14 +88,21 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
|
|
84 |
else if ($redirection_url = c_ws_plugin__s2member_login_redirects::login_redirection_url ($user))
|
85 |
$redirect = $redirection_url; // Special redirection URL (overrides LWP).
|
86 |
|
87 |
-
else
|
|
|
88 |
$redirect = get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]);
|
89 |
|
|
|
|
|
90 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"])
|
91 |
{
|
92 |
$redirect = preg_replace("/^https\:\/\//i", "http://", $redirect);
|
93 |
-
if(stripos($redirect, "http://") !== 0) // Force
|
94 |
-
|
|
|
|
|
|
|
|
|
95 |
}
|
96 |
wp_redirect($redirect).exit();
|
97 |
}
|
60 |
|
61 |
if (($ok = true) && !is_super_admin ($user_id) && $username !== "demo" // Exclude super admins, the `demo` user, and anyone who can edit posts.
|
62 |
&& !apply_filters ("ws_plugin__s2member_disable_login_ip_restrictions", (($user->has_cap ("edit_posts")) ? true : false), get_defined_vars ()))
|
63 |
+
$ok = c_ws_plugin__s2member_ip_restrictions::ip_restrictions_ok ($_SERVER["REMOTE_ADDR"], strtolower($username));
|
64 |
|
65 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"]) // Alter value of `redirect_to`?
|
66 |
if(!empty ($_REQUEST["redirect_to"]) && is_string ($_REQUEST["redirect_to"]) && strpos($_REQUEST["redirect_to"], "wp-admin") === FALSE)
|
67 |
{
|
68 |
$_REQUEST["redirect_to"] = preg_replace("/^https\:\/\//i", "http://", $_REQUEST["redirect_to"]);
|
69 |
if(stripos($_REQUEST["redirect_to"], "http://") !== 0) // Force an absolute URL in this case.
|
70 |
+
{
|
71 |
+
$home_path = trim((string)@parse_url(home_url('/'), PHP_URL_PATH), '/');
|
72 |
+
$http_home_base = trim(preg_replace('/\/'.preg_quote($home_path, '/').'\/$/', '', home_url('/', 'http')), '/');
|
73 |
+
$_REQUEST["redirect_to"] = $http_home_base.'/'.ltrim($_REQUEST["redirect_to"], '/');
|
74 |
+
}
|
75 |
}
|
76 |
if (($redirect = apply_filters ("ws_plugin__s2member_login_redirect", (($user->has_cap ("edit_posts")) ? false : true), get_defined_vars ())))
|
77 |
{
|
88 |
else if ($redirection_url = c_ws_plugin__s2member_login_redirects::login_redirection_url ($user))
|
89 |
$redirect = $redirection_url; // Special redirection URL (overrides LWP).
|
90 |
|
91 |
+
else if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"])
|
92 |
+
// Else we use the Login Welcome Page configured for s2Member.
|
93 |
$redirect = get_page_link ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_welcome_page"]);
|
94 |
|
95 |
+
else $redirect = home_url("/"); // Default to the home page.
|
96 |
+
|
97 |
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"])
|
98 |
{
|
99 |
$redirect = preg_replace("/^https\:\/\//i", "http://", $redirect);
|
100 |
+
if(stripos($redirect, "http://") !== 0) // Force absolute.
|
101 |
+
{
|
102 |
+
$home_path = trim((string)@parse_url(home_url('/'), PHP_URL_PATH), '/');
|
103 |
+
$http_home_base = trim(preg_replace('/\/'.preg_quote($home_path, '/').'\/$/', '', home_url('/', 'http')), '/');
|
104 |
+
$redirect = $http_home_base.'/'.ltrim($redirect, '/');
|
105 |
+
}
|
106 |
}
|
107 |
wp_redirect($redirect).exit();
|
108 |
}
|
includes/classes/paypal-notify-in-billing-agreement-signup.inc.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
+
*
|
5 |
+
* Copyright: © 2009-2011
|
6 |
+
* {@link http://www.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\PayPal
|
15 |
+
* @since 140326
|
16 |
+
*/
|
17 |
+
if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
18 |
+
exit("Do not access this file directly.");
|
19 |
+
|
20 |
+
if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_billing_agreement_signup"))
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
24 |
+
*
|
25 |
+
* @package s2Member\PayPal
|
26 |
+
* @since 140326
|
27 |
+
*/
|
28 |
+
class c_ws_plugin__s2member_paypal_notify_in_billing_agreement_signup
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
32 |
+
*
|
33 |
+
* @package s2Member\PayPal
|
34 |
+
* @since 140326
|
35 |
+
*
|
36 |
+
* @param array $vars Required. An array of defined variables passed by {@link s2Member\PayPal\c_ws_plugin__s2member_paypal_notify_in::paypal_notify()}.
|
37 |
+
* @return array|bool The original ``$paypal`` array passed in (extracted) from ``$vars``, or false when conditions do NOT apply.
|
38 |
+
*/
|
39 |
+
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
+
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
+
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^mp_signup$/i", $paypal["txn_type"]))
|
44 |
+
{
|
45 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_before_billing_agreement_signup", get_defined_vars ());
|
47 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
48 |
+
|
49 |
+
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
|
50 |
+
{
|
51 |
+
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `mp_signup` ).";
|
52 |
+
|
53 |
+
$processing = $during = true; // Yes, we ARE processing this.
|
54 |
+
|
55 |
+
$paypal["s2member_log"][] = "The `txn_type` does not require any action on the part of s2Member.";
|
56 |
+
$paypal["s2member_log"][] = "s2Member Pro handles Billing Agreement signups on-site, with an IPN proxy.";
|
57 |
+
|
58 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
59 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_during_billing_agreement_signup", get_defined_vars ());
|
60 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
61 |
+
}
|
62 |
+
else // Else, this is a duplicate IPN. Must stop here.
|
63 |
+
{
|
64 |
+
$paypal["s2member_log"][] = "Not processing. Duplicate IPN.";
|
65 |
+
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `mp_signup` ).";
|
66 |
+
$paypal["s2member_log"][] = "Duplicate IPN. Already processed. This IPN will be ignored.";
|
67 |
+
}
|
68 |
+
|
69 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
70 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_after_billing_agreement_signup", get_defined_vars ());
|
71 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
72 |
+
|
73 |
+
return apply_filters ("c_ws_plugin__s2member_paypal_notify_in_billing_agreement_signup", $paypal, get_defined_vars ());
|
74 |
+
}
|
75 |
+
else
|
76 |
+
return apply_filters ("c_ws_plugin__s2member_paypal_notify_in_billing_agreement_signup", false, get_defined_vars ());
|
77 |
+
}
|
78 |
+
}
|
79 |
+
}
|
80 |
+
?>
|
includes/classes/paypal-notify-in-cart.inc.php
CHANGED
@@ -38,11 +38,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_cart"))
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
-
if (
|
44 |
-
&& (empty ($paypal["payment_status"]) || empty ($payment_status_issues) || !preg_match ($payment_status_issues, $paypal["payment_status"]))
|
45 |
-
&& (!empty ($paypal["txn_id"])))
|
46 |
{
|
47 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
48 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_cart", get_defined_vars ());
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^cart$/i", $paypal["txn_type"]))
|
|
|
|
|
44 |
{
|
45 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_cart", get_defined_vars ());
|
includes/classes/paypal-notify-in-express-checkout.inc.php
CHANGED
@@ -38,11 +38,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_express_checkout"))
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
-
if (
|
44 |
-
&& (empty ($paypal["payment_status"]) || empty ($payment_status_issues) || !preg_match ($payment_status_issues, $paypal["payment_status"]))
|
45 |
-
&& (!empty ($paypal["txn_id"])))
|
46 |
{
|
47 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
48 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_express_checkout", get_defined_vars ());
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^express_checkout$/i", $paypal["txn_type"]))
|
|
|
|
|
44 |
{
|
45 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_express_checkout", get_defined_vars ());
|
includes/classes/paypal-notify-in-merch-pmt.inc.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
4 |
+
*
|
5 |
+
* Copyright: © 2009-2011
|
6 |
+
* {@link http://www.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\PayPal
|
15 |
+
* @since 140326
|
16 |
+
*/
|
17 |
+
if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
18 |
+
exit("Do not access this file directly.");
|
19 |
+
|
20 |
+
if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_merch_pmt"))
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
24 |
+
*
|
25 |
+
* @package s2Member\PayPal
|
26 |
+
* @since 140326
|
27 |
+
*/
|
28 |
+
class c_ws_plugin__s2member_paypal_notify_in_merch_pmt
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* s2Member's PayPal IPN handler (inner processing routine).
|
32 |
+
*
|
33 |
+
* @package s2Member\PayPal
|
34 |
+
* @since 140326
|
35 |
+
*
|
36 |
+
* @param array $vars Required. An array of defined variables passed by {@link s2Member\PayPal\c_ws_plugin__s2member_paypal_notify_in::paypal_notify()}.
|
37 |
+
* @return array|bool The original ``$paypal`` array passed in (extracted) from ``$vars``, or false when conditions do NOT apply.
|
38 |
+
*/
|
39 |
+
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
+
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
+
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^merch_pmt$/i", $paypal["txn_type"]))
|
44 |
+
{
|
45 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_before_merch_pmt", get_defined_vars ());
|
47 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
48 |
+
|
49 |
+
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
|
50 |
+
{
|
51 |
+
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `merch_pmt` ).";
|
52 |
+
|
53 |
+
$processing = $during = true; // Yes, we ARE processing this.
|
54 |
+
|
55 |
+
$paypal["s2member_log"][] = "The `txn_type` does not require any action on the part of s2Member.";
|
56 |
+
$paypal["s2member_log"][] = "s2Member Pro handles Merch Pmts on-site, with an IPN proxy.";
|
57 |
+
|
58 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
59 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_during_merch_pmt", get_defined_vars ());
|
60 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
61 |
+
}
|
62 |
+
else // Else, this is a duplicate IPN. Must stop here.
|
63 |
+
{
|
64 |
+
$paypal["s2member_log"][] = "Not processing. Duplicate IPN.";
|
65 |
+
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `merch_pmt` ).";
|
66 |
+
$paypal["s2member_log"][] = "Duplicate IPN. Already processed. This IPN will be ignored.";
|
67 |
+
}
|
68 |
+
|
69 |
+
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
70 |
+
do_action ("ws_plugin__s2member_during_paypal_notify_after_merch_pmt", get_defined_vars ());
|
71 |
+
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
72 |
+
|
73 |
+
return apply_filters ("c_ws_plugin__s2member_paypal_notify_in_merch_pmt", $paypal, get_defined_vars ());
|
74 |
+
}
|
75 |
+
else
|
76 |
+
return apply_filters ("c_ws_plugin__s2member_paypal_notify_in_merch_pmt", false, get_defined_vars ());
|
77 |
+
}
|
78 |
+
}
|
79 |
+
}
|
80 |
+
?>
|
includes/classes/paypal-notify-in-rec-profile-creation-w-level.inc.php
CHANGED
@@ -38,7 +38,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_rec_profile_creation_
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^recurring_payment_profile_created$/i", $paypal["txn_type"]))
|
44 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^recurring_payment_profile_created$/i", $paypal["txn_type"]))
|
44 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
includes/classes/paypal-notify-in-send-money.inc.php
CHANGED
@@ -38,11 +38,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_send_money"))
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
-
if (
|
44 |
-
&& (empty ($paypal["payment_status"]) || empty ($payment_status_issues) || !preg_match ($payment_status_issues, $paypal["payment_status"]))
|
45 |
-
&& (!empty ($paypal["txn_id"])))
|
46 |
{
|
47 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
48 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_send_money", get_defined_vars ());
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^send_money$/i", $paypal["txn_type"]))
|
|
|
|
|
44 |
{
|
45 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_send_money", get_defined_vars ());
|
includes/classes/paypal-notify-in-sp-refund-reversal.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal"))
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if (((!empty ($paypal["txn_type"]) && preg_match ("/^new_case$/i", $paypal["txn_type"]) && !empty ($paypal["case_type"]) && preg_match ("/^chargeback$/i", $paypal["case_type"]))
|
46 |
|| (!empty ($paypal["payment_status"]) && preg_match ("/^(refunded|reversed|reversal)$/i", $paypal["payment_status"])) /* The "txn_type" is irrelevant in these special situations. */)
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if (((!empty ($paypal["txn_type"]) && preg_match ("/^new_case$/i", $paypal["txn_type"]) && !empty ($paypal["case_type"]) && preg_match ("/^chargeback$/i", $paypal["case_type"]))
|
46 |
|| (!empty ($paypal["payment_status"]) && preg_match ("/^(refunded|reversed|reversal)$/i", $paypal["payment_status"])) /* The "txn_type" is irrelevant in these special situations. */)
|
includes/classes/paypal-notify-in-subscr-modify-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^subscr_modify$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
@@ -107,6 +107,11 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_modify_w_level
|
|
107 |
|
108 |
update_user_option ($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
109 |
update_user_option ($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
|
|
|
|
|
|
|
|
|
|
110 |
update_user_option ($user_id, "s2member_custom", $paypal["custom"]);
|
111 |
|
112 |
if (!get_user_option ("s2member_registration_ip", $user_id))
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^subscr_modify$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
107 |
|
108 |
update_user_option ($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
109 |
update_user_option ($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
110 |
+
|
111 |
+
if(!empty($paypal["subscr_baid"]))
|
112 |
+
update_user_option ($user_id, "s2member_subscr_baid", $paypal["subscr_baid"]);
|
113 |
+
else delete_user_option ($user_id, "s2member_subscr_baid");
|
114 |
+
|
115 |
update_user_option ($user_id, "s2member_custom", $paypal["custom"]);
|
116 |
|
117 |
if (!get_user_option ("s2member_registration_ip", $user_id))
|
includes/classes/paypal-notify-in-subscr-or-rp-cancellation-w-level.inc.php
CHANGED
@@ -40,9 +40,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
-
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_cancel|recurring_payment_profile_cancel)$/i", $paypal["txn_type"]))
|
46 |
&& !(preg_match ("/^recurring_payment_profile_cancel$/i", $paypal["txn_type"]) && !empty ($paypal["initial_payment_status"]) && preg_match ("/^failed$/i", $paypal["initial_payment_status"]))
|
47 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
48 |
&& (!empty ($paypal["period1"]) || ($paypal["period1"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1 ($paypal)) || ($paypal["period1"] = "0 D"))
|
@@ -57,7 +57,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_cancella
|
|
57 |
|
58 |
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
|
59 |
{
|
60 |
-
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel` ).";
|
61 |
|
62 |
list ($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"], 3);
|
63 |
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
+
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_cancel|recurring_payment_profile_cancel|mp_cancel)$/i", $paypal["txn_type"]))
|
46 |
&& !(preg_match ("/^recurring_payment_profile_cancel$/i", $paypal["txn_type"]) && !empty ($paypal["initial_payment_status"]) && preg_match ("/^failed$/i", $paypal["initial_payment_status"]))
|
47 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
48 |
&& (!empty ($paypal["period1"]) || ($paypal["period1"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_period1 ($paypal)) || ($paypal["period1"] = "0 D"))
|
57 |
|
58 |
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
|
59 |
{
|
60 |
+
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ( `subscr_cancel|recurring_payment_profile_cancel|mp_cancel` ).";
|
61 |
|
62 |
list ($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"], 3);
|
63 |
|
includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
40 |
*/
|
41 |
public static function cp($vars = array()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if(((!empty($paypal["txn_type"]) && preg_match("/^(subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment)$/i", $paypal["txn_type"]) && ($recurring = true))
|
46 |
|| (!empty($paypal["txn_type"]) && preg_match("/^recurring_payment_profile_cancel$/i", $paypal["txn_type"]) && !empty($paypal["initial_payment_status"]) && preg_match("/^failed$/i", $paypal["initial_payment_status"]) && ($recurring = true))
|
@@ -63,12 +63,14 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
63 |
$is_reversal = (preg_match("/^(reversed|reversal)$/i", $paypal["payment_status"]) && $paypal["parent_txn_id"]);
|
64 |
$is_reversal = (!$is_reversal) ? (preg_match("/^new_case$/i", $paypal["txn_type"]) && preg_match("/^chargeback$/i", $paypal["case_type"])) : $is_reversal;
|
65 |
$is_refund_or_reversal = ($is_refund || $is_reversal); // If either of the previous tests above evaluated to true; then it's obviously a Refund and/or a Reversal.
|
|
|
|
|
|
|
66 |
$is_delayed_eot = (!$is_refund_or_reversal && preg_match("/^(subscr_eot|recurring_payment_expired)$/i", $paypal["txn_type"]) && preg_match("/^I-/i", $paypal["subscr_id"]));
|
67 |
|
68 |
if($is_refund_or_reversal)
|
69 |
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ".($identified_as = "( `[empty or irrelevant]` ) w/ `payment_status` ( `refunded|reversed|reversal` ) - or - `new_case` w/ `case_type` ( `chargeback` )").".";
|
70 |
-
else
|
71 |
-
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ".($identified_as = "( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` )").".";
|
72 |
|
73 |
if(empty($_REQUEST["s2member_paypal_proxy"])) // Only on true PayPal IPNs; e.g. we can bypass this on proxied IPNs.
|
74 |
{
|
@@ -85,11 +87,11 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
85 |
$user_reg_ip = get_user_option("s2member_registration_ip", $user_id); // Needed below.
|
86 |
$user_reg_ip = $paypal["ip"] = ($user_reg_ip) ? $user_reg_ip : $paypal["ip"];
|
87 |
|
88 |
-
if(
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
{
|
94 |
if(!$user->has_cap("administrator")) // Do NOT process this routine on Administrators.
|
95 |
{
|
@@ -122,6 +124,7 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
122 |
|
123 |
delete_user_option($user_id, "s2member_custom");
|
124 |
delete_user_option($user_id, "s2member_subscr_id");
|
|
|
125 |
delete_user_option($user_id, "s2member_subscr_gateway");
|
126 |
|
127 |
delete_user_option($user_id, "s2member_ipn_signup_vars");
|
@@ -293,11 +296,14 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
|
|
293 |
else if(!$is_refund_or_reversal || $is_delayed_eot)
|
294 |
$paypal["s2member_log"][] = "Skipping (demote|delete) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT (demote|delete) events using it's own Auto-EOT System - internally.";
|
295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
else if($is_reversal)
|
297 |
$paypal["s2member_log"][] = "Skipping (demote|delete) Member. Your configuration dictates that s2Member should NOT take any immediate action on an EOT associated with a Chargeback Reversal. An s2Member API Notification will still be processed however.";
|
298 |
-
|
299 |
-
else if($is_refund)
|
300 |
-
$paypal["s2member_log"][] = "Skipping (demote|delete) Member. Your configuration dictates that s2Member should NOT take any immediate action on an EOT associated with a Refund. An s2Member API Notification will still be processed however.";
|
301 |
}
|
302 |
else if($is_delayed_eot) // Otherwise, we need to re-generate/store this IPN into a Transient Queue. Then re-process it on registration.
|
303 |
{
|
40 |
*/
|
41 |
public static function cp($vars = array()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if(((!empty($paypal["txn_type"]) && preg_match("/^(subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment)$/i", $paypal["txn_type"]) && ($recurring = true))
|
46 |
|| (!empty($paypal["txn_type"]) && preg_match("/^recurring_payment_profile_cancel$/i", $paypal["txn_type"]) && !empty($paypal["initial_payment_status"]) && preg_match("/^failed$/i", $paypal["initial_payment_status"]) && ($recurring = true))
|
63 |
$is_reversal = (preg_match("/^(reversed|reversal)$/i", $paypal["payment_status"]) && $paypal["parent_txn_id"]);
|
64 |
$is_reversal = (!$is_reversal) ? (preg_match("/^new_case$/i", $paypal["txn_type"]) && preg_match("/^chargeback$/i", $paypal["case_type"])) : $is_reversal;
|
65 |
$is_refund_or_reversal = ($is_refund || $is_reversal); // If either of the previous tests above evaluated to true; then it's obviously a Refund and/or a Reversal.
|
66 |
+
$is_partial_refund = // Partial refund detection. All refunds processed against Subscriptions are considered partials. Full refunds occur only against Buy Now transactions.
|
67 |
+
(!$is_refund || (!empty($paypal["mc_gross"]) && ($original_txn_type = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("txn_type", FALSE, $paypal["subscr_id"])) === "web_accept"
|
68 |
+
&& ($original_mc_gross = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("mc_gross", FALSE, $paypal["subscr_id"])) <= abs($paypal["mc_gross"]))) ? FALSE : TRUE;
|
69 |
$is_delayed_eot = (!$is_refund_or_reversal && preg_match("/^(subscr_eot|recurring_payment_expired)$/i", $paypal["txn_type"]) && preg_match("/^I-/i", $paypal["subscr_id"]));
|
70 |
|
71 |
if($is_refund_or_reversal)
|
72 |
$paypal["s2member_log"][] = "s2Member `txn_type` identified as ".($identified_as = "( `[empty or irrelevant]` ) w/ `payment_status` ( `refunded|reversed|reversal` ) - or - `new_case` w/ `case_type` ( `chargeback` )").".";
|
73 |
+
else $paypal["s2member_log"][] = "s2Member `txn_type` identified as ".($identified_as = "( `subscr_eot|recurring_payment_expired|recurring_payment_suspended_due_to_max_failed_payment` ) - or - `recurring_payment_profile_cancel` w/ `initial_payment_status` ( `failed` )").".";
|
|
|
74 |
|
75 |
if(empty($_REQUEST["s2member_paypal_proxy"])) // Only on true PayPal IPNs; e.g. we can bypass this on proxied IPNs.
|
76 |
{
|
87 |
$user_reg_ip = get_user_option("s2member_registration_ip", $user_id); // Needed below.
|
88 |
$user_reg_ip = $paypal["ip"] = ($user_reg_ip) ? $user_reg_ip : $paypal["ip"];
|
89 |
|
90 |
+
if((!$is_refund_or_reversal && !$is_delayed_eot && !get_user_option("s2member_auto_eot_time", $user_id))
|
91 |
+
|| ($is_refund_or_reversal && $is_partial_refund && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,partial_refunds,reversals")
|
92 |
+
|| ($is_refund_or_reversal && !$is_partial_refund && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,reversals")
|
93 |
+
|| ($is_refund && !$is_partial_refund && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds")
|
94 |
+
|| ($is_reversal && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "reversals"))
|
95 |
{
|
96 |
if(!$user->has_cap("administrator")) // Do NOT process this routine on Administrators.
|
97 |
{
|
124 |
|
125 |
delete_user_option($user_id, "s2member_custom");
|
126 |
delete_user_option($user_id, "s2member_subscr_id");
|
127 |
+
delete_user_option($user_id, "s2member_subscr_baid");
|
128 |
delete_user_option($user_id, "s2member_subscr_gateway");
|
129 |
|
130 |
delete_user_option($user_id, "s2member_ipn_signup_vars");
|
296 |
else if(!$is_refund_or_reversal || $is_delayed_eot)
|
297 |
$paypal["s2member_log"][] = "Skipping (demote|delete) Member, for now. An Auto-EOT Time is already set for this account. When an Auto-EOT Time has been recorded, s2Member will handle EOT (demote|delete) events using it's own Auto-EOT System - internally.";
|
298 |
|
299 |
+
else if($is_refund && $is_partial_refund)
|
300 |
+
$paypal["s2member_log"][] = "Skipping (demote|delete) Member. Your configuration dictates that s2Member should NOT take any immediate action on an EOT associated with a Partial Refund. An s2Member API Notification will still be processed however.";
|
301 |
+
|
302 |
+
else if($is_refund && !$is_partial_refund)
|
303 |
+
$paypal["s2member_log"][] = "Skipping (demote|delete) Member. Your configuration dictates that s2Member should NOT take any immediate action on an EOT associated with a Full Refund. An s2Member API Notification will still be processed however.";
|
304 |
+
|
305 |
else if($is_reversal)
|
306 |
$paypal["s2member_log"][] = "Skipping (demote|delete) Member. Your configuration dictates that s2Member should NOT take any immediate action on an EOT associated with a Chargeback Reversal. An s2Member API Notification will still be processed however.";
|
|
|
|
|
|
|
307 |
}
|
308 |
else if($is_delayed_eot) // Otherwise, we need to re-generate/store this IPN into a Transient Queue. Then re-process it on registration.
|
309 |
{
|
includes/classes/paypal-notify-in-subscr-or-rp-payment-failed-w-level.inc.php
CHANGED
@@ -38,7 +38,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_failed|recurring_payment_failed|recurring_payment_skipped)$/i", $paypal["txn_type"]))
|
44 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_failed|recurring_payment_failed|recurring_payment_skipped)$/i", $paypal["txn_type"]))
|
44 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_payment|recurring_payment)$/i", $paypal["txn_type"]))
|
46 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(subscr_payment|recurring_payment)$/i", $paypal["txn_type"]))
|
46 |
&& ((!empty ($paypal["item_number"]) || ($paypal["item_number"] = c_ws_plugin__s2member_paypal_utilities::paypal_pro_item_number ($paypal))) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
includes/classes/paypal-notify-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level"
|
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
-
extract
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(web_accept|subscr_signup)$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
@@ -126,6 +126,11 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_wa_w_level"
|
|
126 |
|
127 |
update_user_option ($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
128 |
update_user_option ($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
|
|
|
|
|
|
|
|
|
|
129 |
update_user_option ($user_id, "s2member_custom", $paypal["custom"]);
|
130 |
|
131 |
if (!get_user_option ("s2member_registration_ip", $user_id))
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^(web_accept|subscr_signup)$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
126 |
|
127 |
update_user_option ($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
128 |
update_user_option ($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
129 |
+
|
130 |
+
if(!empty($paypal["subscr_baid"]))
|
131 |
+
update_user_option ($user_id, "s2member_subscr_baid", $paypal["subscr_baid"]);
|
132 |
+
else delete_user_option ($user_id, "s2member_subscr_baid");
|
133 |
+
|
134 |
update_user_option ($user_id, "s2member_custom", $paypal["custom"]);
|
135 |
|
136 |
if (!get_user_option ("s2member_registration_ip", $user_id))
|
includes/classes/paypal-notify-in-virtual-terminal.inc.php
CHANGED
@@ -38,11 +38,9 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_virtual_terminal"))
|
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
-
extract($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
-
if (
|
44 |
-
&& (empty ($paypal["payment_status"]) || empty ($payment_status_issues) || !preg_match ($payment_status_issues, $paypal["payment_status"]))
|
45 |
-
&& (!empty ($paypal["txn_id"])))
|
46 |
{
|
47 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
48 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_virtual_terminal", get_defined_vars ());
|
38 |
*/
|
39 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
40 |
{
|
41 |
+
extract($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
|
43 |
+
if (!empty ($paypal["txn_type"]) && preg_match ("/^virtual_terminal$/i", $paypal["txn_type"]))
|
|
|
|
|
44 |
{
|
45 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
46 |
do_action ("ws_plugin__s2member_during_paypal_notify_before_virtual_terminal", get_defined_vars ());
|
includes/classes/paypal-notify-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_wa_ccaps_wo_level"))
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"], $paypal["item_number"]))
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"], $paypal["item_number"]))
|
includes/classes/paypal-notify-in-web-accept-sp.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_web_accept_sp"))
|
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
-
extract ($vars); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["sp_access_item_number_regex"], $paypal["item_number"]))
|
40 |
*/
|
41 |
public static function cp ($vars = array ()) // Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
42 |
{
|
43 |
+
extract ($vars, EXTR_OVERWRITE | EXTR_REFS); // Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``.
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["sp_access_item_number_regex"], $paypal["item_number"]))
|
includes/classes/paypal-notify-in.inc.php
CHANGED
@@ -62,6 +62,10 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
|
|
62 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status (); // Filters on?
|
63 |
c_ws_plugin__s2member_email_configs::email_config_release (); // Release s2Member Filters.
|
64 |
|
|
|
|
|
|
|
|
|
65 |
if (is_array ($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_postvars ()) && ($_paypal = $paypal) && ($_paypal_s = serialize ($_paypal)))
|
66 |
{
|
67 |
$paypal["s2member_log"][] = "IPN received on: " . date ("D M j, Y g:i:s a T");
|
@@ -69,14 +73,21 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
|
|
69 |
|
70 |
$payment_status_issues = "/^(failed|denied|expired|refunded|partially_refunded|reversed|reversal|canceled_reversal|voided)$/i";
|
71 |
|
72 |
-
$paypal["subscr_gateway"] = (!empty ($_REQUEST["s2member_paypal_proxy"])) ? esc_html
|
73 |
|
74 |
$coupon = (!empty($_REQUEST["s2member_paypal_proxy_coupon"]) && is_array($_REQUEST["s2member_paypal_proxy_coupon"])) ? stripslashes_deep($_REQUEST["s2member_paypal_proxy_coupon"]) : array();
|
75 |
$coupon = (isset($coupon["full_coupon_code"], $coupon["coupon_code"], $coupon["affiliate_id"]) && is_string($coupon["full_coupon_code"]) && is_string($coupon["coupon_code"]) && is_string($coupon["affiliate_id"])) ? $coupon : array("full_coupon_code" => "", "coupon_code" => "", "affiliate_id" => "");
|
76 |
|
77 |
-
if
|
|
|
|
|
|
|
|
|
78 |
$paypal["custom"] = c_ws_plugin__s2member_utils_users::get_user_custom_with ($paypal["recurring_payment_id"]);
|
79 |
|
|
|
|
|
|
|
80 |
if (!empty ($paypal["custom"]) && preg_match ("/^" . preg_quote (preg_replace ("/\:([0-9]+)$/", "", $_SERVER["HTTP_HOST"]), "/") . "/i", $paypal["custom"]))
|
81 |
{
|
82 |
$paypal["s2member_log"][] = "s2Member originating domain ( `\$_SERVER[\"HTTP_HOST\"]` ) validated.";
|
@@ -128,6 +139,12 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
|
|
128 |
else if (($_paypal_cp = c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal::cp (get_defined_vars ())))
|
129 |
$paypal = $_paypal_cp;
|
130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
else // Ignoring this IPN request. The txn_type/status does NOT require any action.
|
132 |
$paypal["s2member_log"][] = "Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.";
|
133 |
}
|
@@ -135,13 +152,13 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
|
|
135 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
136 |
}
|
137 |
|
138 |
-
else if (!empty ($paypal["txn_type"]) && preg_match
|
139 |
{
|
140 |
$paypal["s2member_log"][] = "Transaction type ( `recurring_payment_profile_cancel` ), but there is no match to an existing account; so verification of `\$_SERVER[\"HTTP_HOST\"]` was not possible.";
|
141 |
$paypal["s2member_log"][] = "It's likely this account was just upgraded/downgraded by s2Member Pro; so the Subscr. ID has probably been updated on-site; nothing to worry about here.";
|
142 |
}
|
143 |
|
144 |
-
else if (!empty ($paypal["txn_type"]) && preg_match
|
145 |
$paypal["s2member_log"][] = "Transaction type ( `^recurring_?` ), but there is no match to an existing account; so verification of `\$_SERVER[\"HTTP_HOST\"]` was not possible.";
|
146 |
|
147 |
else // Else, use the default ``$_SERVER["HTTP_HOST"]`` error.
|
@@ -159,22 +176,22 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
|
|
159 |
Add IPN proxy (when available) to the ``$paypal`` array.
|
160 |
*/
|
161 |
if (!empty ($_REQUEST["s2member_paypal_proxy"]))
|
162 |
-
$paypal["s2member_paypal_proxy"] = $_REQUEST["s2member_paypal_proxy"];
|
163 |
/*
|
164 |
Add IPN proxy use vars (when available) to the ``$paypal`` array.
|
165 |
*/
|
166 |
if (!empty ($_REQUEST["s2member_paypal_proxy_use"]))
|
167 |
-
$paypal["s2member_paypal_proxy_use"] = $_REQUEST["s2member_paypal_proxy_use"];
|
168 |
/*
|
169 |
Add IPN proxy coupon vars (when available) to the ``$paypal`` array.
|
170 |
*/
|
171 |
if (!empty ($_REQUEST["s2member_paypal_proxy_coupon"]))
|
172 |
-
$paypal["s2member_paypal_proxy_coupon"] = $_REQUEST["s2member_paypal_proxy_coupon"];
|
173 |
/*
|
174 |
Also add IPN proxy self-verification (when available) to the ``$paypal`` array.
|
175 |
*/
|
176 |
if (!empty ($_REQUEST["s2member_paypal_proxy_verification"]))
|
177 |
-
$paypal["s2member_paypal_proxy_verification"] = $_REQUEST["s2member_paypal_proxy_verification"];
|
178 |
/*
|
179 |
If debugging/logging is enabled; we need to append ``$paypal`` to the log file.
|
180 |
Logging now supports Multisite Networking as well.
|
62 |
$email_configs_were_on = c_ws_plugin__s2member_email_configs::email_config_status (); // Filters on?
|
63 |
c_ws_plugin__s2member_email_configs::email_config_release (); // Release s2Member Filters.
|
64 |
|
65 |
+
$paypal = array(); // Initialize PayPal array; we also reference this with a variable for a possible proxy handler.
|
66 |
+
if(!empty($_REQUEST["s2member_paypal_proxy"]) && in_array($_REQUEST["s2member_paypal_proxy"], array("alipay", "authnet", "clickbank", "ccbill", "google"), TRUE))
|
67 |
+
${esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy"])))} = &$paypal; // Internal alias by reference.
|
68 |
+
|
69 |
if (is_array ($paypal = c_ws_plugin__s2member_paypal_utilities::paypal_postvars ()) && ($_paypal = $paypal) && ($_paypal_s = serialize ($_paypal)))
|
70 |
{
|
71 |
$paypal["s2member_log"][] = "IPN received on: " . date ("D M j, Y g:i:s a T");
|
73 |
|
74 |
$payment_status_issues = "/^(failed|denied|expired|refunded|partially_refunded|reversed|reversal|canceled_reversal|voided)$/i";
|
75 |
|
76 |
+
$paypal["subscr_gateway"] = (!empty ($_REQUEST["s2member_paypal_proxy"])) ? esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy"]))) : "paypal";
|
77 |
|
78 |
$coupon = (!empty($_REQUEST["s2member_paypal_proxy_coupon"]) && is_array($_REQUEST["s2member_paypal_proxy_coupon"])) ? stripslashes_deep($_REQUEST["s2member_paypal_proxy_coupon"]) : array();
|
79 |
$coupon = (isset($coupon["full_coupon_code"], $coupon["coupon_code"], $coupon["affiliate_id"]) && is_string($coupon["full_coupon_code"]) && is_string($coupon["coupon_code"]) && is_string($coupon["affiliate_id"])) ? $coupon : array("full_coupon_code" => "", "coupon_code" => "", "affiliate_id" => "");
|
80 |
|
81 |
+
if(!empty($paypal["txn_type"]) && $paypal["txn_type"] === "merch_pmt")
|
82 |
+
// This is mostly irrelevant, but it helps to keep the logs cleaner.
|
83 |
+
sleep(5); // Wait for Pro Form procesing to complete.
|
84 |
+
|
85 |
+
if (empty ($paypal["custom"]) && !empty ($paypal["recurring_payment_id"])) // Recurring Profile ID.
|
86 |
$paypal["custom"] = c_ws_plugin__s2member_utils_users::get_user_custom_with ($paypal["recurring_payment_id"]);
|
87 |
|
88 |
+
else if (empty ($paypal["custom"]) && !empty ($paypal["mp_id"])) // Lookup; based on a Billing Agreement ID.
|
89 |
+
$paypal["custom"] = c_ws_plugin__s2member_utils_users::get_user_custom_with ($paypal["mp_id"]);
|
90 |
+
|
91 |
if (!empty ($paypal["custom"]) && preg_match ("/^" . preg_quote (preg_replace ("/\:([0-9]+)$/", "", $_SERVER["HTTP_HOST"]), "/") . "/i", $paypal["custom"]))
|
92 |
{
|
93 |
$paypal["s2member_log"][] = "s2Member originating domain ( `\$_SERVER[\"HTTP_HOST\"]` ) validated.";
|
139 |
else if (($_paypal_cp = c_ws_plugin__s2member_paypal_notify_in_sp_refund_reversal::cp (get_defined_vars ())))
|
140 |
$paypal = $_paypal_cp;
|
141 |
|
142 |
+
else if (($_paypal_cp = c_ws_plugin__s2member_paypal_notify_in_billing_agreement_signup::cp (get_defined_vars ())))
|
143 |
+
$paypal = $_paypal_cp;
|
144 |
+
|
145 |
+
else if (($_paypal_cp = c_ws_plugin__s2member_paypal_notify_in_merch_pmt::cp (get_defined_vars ())))
|
146 |
+
$paypal = $_paypal_cp;
|
147 |
+
|
148 |
else // Ignoring this IPN request. The txn_type/status does NOT require any action.
|
149 |
$paypal["s2member_log"][] = "Ignoring this IPN request. The `txn_type/status` does NOT require any action on the part of s2Member.";
|
150 |
}
|
152 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
153 |
}
|
154 |
|
155 |
+
else if (!empty ($paypal["txn_type"]) && preg_match("/^recurring_payment_profile_cancel$/i", $paypal["txn_type"]))
|
156 |
{
|
157 |
$paypal["s2member_log"][] = "Transaction type ( `recurring_payment_profile_cancel` ), but there is no match to an existing account; so verification of `\$_SERVER[\"HTTP_HOST\"]` was not possible.";
|
158 |
$paypal["s2member_log"][] = "It's likely this account was just upgraded/downgraded by s2Member Pro; so the Subscr. ID has probably been updated on-site; nothing to worry about here.";
|
159 |
}
|
160 |
|
161 |
+
else if (!empty ($paypal["txn_type"]) && preg_match("/^recurring_/i", $paypal["txn_type"])) // Otherwise, is this a ^recurring_ txn_type?
|
162 |
$paypal["s2member_log"][] = "Transaction type ( `^recurring_?` ), but there is no match to an existing account; so verification of `\$_SERVER[\"HTTP_HOST\"]` was not possible.";
|
163 |
|
164 |
else // Else, use the default ``$_SERVER["HTTP_HOST"]`` error.
|
176 |
Add IPN proxy (when available) to the ``$paypal`` array.
|
177 |
*/
|
178 |
if (!empty ($_REQUEST["s2member_paypal_proxy"]))
|
179 |
+
$paypal["s2member_paypal_proxy"] = esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy"])));
|
180 |
/*
|
181 |
Add IPN proxy use vars (when available) to the ``$paypal`` array.
|
182 |
*/
|
183 |
if (!empty ($_REQUEST["s2member_paypal_proxy_use"]))
|
184 |
+
$paypal["s2member_paypal_proxy_use"] = esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy_use"])));
|
185 |
/*
|
186 |
Add IPN proxy coupon vars (when available) to the ``$paypal`` array.
|
187 |
*/
|
188 |
if (!empty ($_REQUEST["s2member_paypal_proxy_coupon"]))
|
189 |
+
$paypal["s2member_paypal_proxy_coupon"] = esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy_coupon"])));
|
190 |
/*
|
191 |
Also add IPN proxy self-verification (when available) to the ``$paypal`` array.
|
192 |
*/
|
193 |
if (!empty ($_REQUEST["s2member_paypal_proxy_verification"]))
|
194 |
+
$paypal["s2member_paypal_proxy_verification"] = esc_html(trim(stripslashes($_REQUEST["s2member_paypal_proxy_verification"])));
|
195 |
/*
|
196 |
If debugging/logging is enabled; we need to append ``$paypal`` to the log file.
|
197 |
Logging now supports Multisite Networking as well.
|
includes/classes/paypal-return-in-no-tx-data.inc.php
CHANGED
@@ -38,7 +38,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in_no_tx_data"))
|
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_no_return_data", get_defined_vars ());
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_no_return_data", get_defined_vars ());
|
includes/classes/paypal-return-in-proxy-ty-email.inc.php
CHANGED
@@ -38,7 +38,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in_proxy_ty_email"))
|
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_explicit_ty_email", get_defined_vars ());
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_explicit_ty_email", get_defined_vars ());
|
includes/classes/paypal-return-in-proxy-x-preview.inc.php
CHANGED
@@ -38,7 +38,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in_proxy_x_preview"))
|
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_explicit_x_preview", get_defined_vars ());
|
38 |
*/
|
39 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
40 |
{
|
41 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
42 |
|
43 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
44 |
do_action ("ws_plugin__s2member_during_paypal_return_before_explicit_x_preview", get_defined_vars ());
|
includes/classes/paypal-return-in-subscr-modify-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if(!class_exists("c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level")
|
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp($vars = array())
|
42 |
{
|
43 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
44 |
|
45 |
if((!empty($paypal["txn_type"]) && preg_match("/^subscr_modify$/i", $paypal["txn_type"]))
|
46 |
&& (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
@@ -114,6 +114,11 @@ if(!class_exists("c_ws_plugin__s2member_paypal_return_in_subscr_modify_w_level")
|
|
114 |
|
115 |
update_user_option($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
116 |
update_user_option($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
|
|
|
|
|
|
|
|
|
|
117 |
update_user_option($user_id, "s2member_custom", $paypal["custom"]);
|
118 |
|
119 |
if(!get_user_option("s2member_registration_ip", $user_id))
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp($vars = array())
|
42 |
{
|
43 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
44 |
|
45 |
if((!empty($paypal["txn_type"]) && preg_match("/^subscr_modify$/i", $paypal["txn_type"]))
|
46 |
&& (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
114 |
|
115 |
update_user_option($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
116 |
update_user_option($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
117 |
+
|
118 |
+
if(!empty($paypal["subscr_baid"]))
|
119 |
+
update_user_option ($user_id, "s2member_subscr_baid", $paypal["subscr_baid"]);
|
120 |
+
else delete_user_option ($user_id, "s2member_subscr_baid");
|
121 |
+
|
122 |
update_user_option($user_id, "s2member_custom", $paypal["custom"]);
|
123 |
|
124 |
if(!get_user_option("s2member_registration_ip", $user_id))
|
includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if(!class_exists("c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level"))
|
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp($vars = array())
|
42 |
{
|
43 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
44 |
|
45 |
if((!empty($paypal["txn_type"]) && preg_match("/^(web_accept|subscr_signup|subscr_payment)$/i", $paypal["txn_type"]))
|
46 |
&& (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
@@ -152,6 +152,11 @@ if(!class_exists("c_ws_plugin__s2member_paypal_return_in_subscr_or_wa_w_level"))
|
|
152 |
|
153 |
update_user_option($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
154 |
update_user_option($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
|
|
|
|
|
|
|
|
|
|
155 |
update_user_option($user_id, "s2member_custom", $paypal["custom"]);
|
156 |
|
157 |
if(!get_user_option("s2member_registration_ip", $user_id))
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp($vars = array())
|
42 |
{
|
43 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
44 |
|
45 |
if((!empty($paypal["txn_type"]) && preg_match("/^(web_accept|subscr_signup|subscr_payment)$/i", $paypal["txn_type"]))
|
46 |
&& (!empty($paypal["item_number"]) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"], $paypal["item_number"]))
|
152 |
|
153 |
update_user_option($user_id, "s2member_subscr_gateway", $paypal["subscr_gateway"]);
|
154 |
update_user_option($user_id, "s2member_subscr_id", $paypal["subscr_id"]);
|
155 |
+
|
156 |
+
if(!empty($paypal["subscr_baid"]))
|
157 |
+
update_user_option ($user_id, "s2member_subscr_baid", $paypal["subscr_baid"]);
|
158 |
+
else delete_user_option ($user_id, "s2member_subscr_baid");
|
159 |
+
|
160 |
update_user_option($user_id, "s2member_custom", $paypal["custom"]);
|
161 |
|
162 |
if(!get_user_option("s2member_registration_ip", $user_id))
|
includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in_wa_ccaps_wo_level"))
|
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"], $paypal["item_number"]))
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"], $paypal["item_number"]))
|
includes/classes/paypal-return-in-web-accept-sp.inc.php
CHANGED
@@ -40,7 +40,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in_web_accept_sp"))
|
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
-
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars);
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["sp_access_item_number_regex"], $paypal["item_number"]))
|
40 |
*/
|
41 |
public static function /* Conditional phase for ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */ cp ($vars = array ())
|
42 |
{
|
43 |
+
extract /* Extract all vars passed in from: ``c_ws_plugin__s2member_paypal_notify_in::paypal_notify()``. */($vars, EXTR_OVERWRITE | EXTR_REFS);
|
44 |
|
45 |
if ((!empty ($paypal["txn_type"]) && preg_match ("/^web_accept$/i", $paypal["txn_type"]))
|
46 |
&& (!empty ($paypal["item_number"]) && preg_match ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["sp_access_item_number_regex"], $paypal["item_number"]))
|
includes/classes/paypal-return-in.inc.php
CHANGED
@@ -45,6 +45,10 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
45 |
|
46 |
if (!empty ($_GET["s2member_paypal_return"]) && ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"] || !empty ($_GET["s2member_paypal_proxy"])))
|
47 |
{
|
|
|
|
|
|
|
|
|
48 |
$custom_success_redirection = (!empty ($_GET["s2member_paypal_return_success"])) ? esc_html (trim (stripslashes ($_GET["s2member_paypal_return_success"]))) : false;
|
49 |
$custom_success_redirection = ($custom_success_redirection) ? str_ireplace (array ("&", "&"), "&", $custom_success_redirection) : $custom_success_redirection;
|
50 |
|
@@ -137,27 +141,27 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
|
|
137 |
Add RTN proxy (when available) to the ``$paypal`` array.
|
138 |
*/
|
139 |
if (!empty ($_GET["s2member_paypal_proxy"]))
|
140 |
-
$paypal["s2member_paypal_proxy"] = $_GET["s2member_paypal_proxy"];
|
141 |
/*
|
142 |
Add IPN proxy use vars (when available) to the ``$paypal`` array.
|
143 |
*/
|
144 |
if (!empty ($_GET["s2member_paypal_proxy_use"]))
|
145 |
-
$paypal["s2member_paypal_proxy_use"] = $_GET["s2member_paypal_proxy_use"];
|
146 |
/*
|
147 |
Also add RTN proxy self-verification (when available) to the ``$paypal`` array.
|
148 |
*/
|
149 |
if (!empty ($_GET["s2member_paypal_proxy_verification"]))
|
150 |
-
$paypal["s2member_paypal_proxy_verification"] = $_GET["s2member_paypal_proxy_verification"];
|
151 |
/*
|
152 |
Also add RTN success redirection URL (when available) to the ``$paypal`` array.
|
153 |
*/
|
154 |
if (!empty ($_GET["s2member_paypal_return_success"]))
|
155 |
-
$paypal["s2member_paypal_return_success"] = $_GET["s2member_paypal_return_success"];
|
156 |
/*
|
157 |
Also add RTN t and r Attributes (when available) to the ``$paypal`` array.
|
158 |
*/
|
159 |
if (!empty ($_GET["s2member_paypal_return_tra"]))
|
160 |
-
$paypal["s2member_paypal_return_tra"] = $_GET["s2member_paypal_return_tra"];
|
161 |
/*
|
162 |
If debugging/logging is enabled; we need to append $paypal to the log file.
|
163 |
Logging now supports Multisite Networking as well.
|
45 |
|
46 |
if (!empty ($_GET["s2member_paypal_return"]) && ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"] || !empty ($_GET["s2member_paypal_proxy"])))
|
47 |
{
|
48 |
+
$paypal = array(); // Initialize PayPal array; we also reference this with a variable for a possible proxy handler.
|
49 |
+
if(!empty($_GET["s2member_paypal_proxy"]) && in_array($_GET["s2member_paypal_proxy"], array("alipay", "authnet", "clickbank", "ccbill", "google"), TRUE))
|
50 |
+
${esc_html(trim(stripslashes($_GET["s2member_paypal_proxy"])))} = &$paypal; // Internal alias by reference.
|
51 |
+
|
52 |
$custom_success_redirection = (!empty ($_GET["s2member_paypal_return_success"])) ? esc_html (trim (stripslashes ($_GET["s2member_paypal_return_success"]))) : false;
|
53 |
$custom_success_redirection = ($custom_success_redirection) ? str_ireplace (array ("&", "&"), "&", $custom_success_redirection) : $custom_success_redirection;
|
54 |
|
141 |
Add RTN proxy (when available) to the ``$paypal`` array.
|
142 |
*/
|
143 |
if (!empty ($_GET["s2member_paypal_proxy"]))
|
144 |
+
$paypal["s2member_paypal_proxy"] = esc_html(trim(stripslashes($_GET["s2member_paypal_proxy"])));
|
145 |
/*
|
146 |
Add IPN proxy use vars (when available) to the ``$paypal`` array.
|
147 |
*/
|
148 |
if (!empty ($_GET["s2member_paypal_proxy_use"]))
|
149 |
+
$paypal["s2member_paypal_proxy_use"] = esc_html(trim(stripslashes($_GET["s2member_paypal_proxy_use"])));
|
150 |
/*
|
151 |
Also add RTN proxy self-verification (when available) to the ``$paypal`` array.
|
152 |
*/
|
153 |
if (!empty ($_GET["s2member_paypal_proxy_verification"]))
|
154 |
+
$paypal["s2member_paypal_proxy_verification"] = esc_html(trim(stripslashes($_GET["s2member_paypal_proxy_verification"])));
|
155 |
/*
|
156 |
Also add RTN success redirection URL (when available) to the ``$paypal`` array.
|
157 |
*/
|
158 |
if (!empty ($_GET["s2member_paypal_return_success"]))
|
159 |
+
$paypal["s2member_paypal_return_success"] = esc_html(trim(stripslashes($_GET["s2member_paypal_return_success"])));
|
160 |
/*
|
161 |
Also add RTN t and r Attributes (when available) to the ``$paypal`` array.
|
162 |
*/
|
163 |
if (!empty ($_GET["s2member_paypal_return_tra"]))
|
164 |
+
$paypal["s2member_paypal_return_tra"] = esc_html(trim(stripslashes($_GET["s2member_paypal_return_tra"])));
|
165 |
/*
|
166 |
If debugging/logging is enabled; we need to append $paypal to the log file.
|
167 |
Logging now supports Multisite Networking as well.
|
includes/classes/paypal-utilities.inc.php
CHANGED
@@ -483,14 +483,17 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
483 |
do_action("ws_plugin__s2member_before_paypal_pro_subscr_id", get_defined_vars());
|
484 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
485 |
|
486 |
-
if(is_array($array = $array_or_string) && !empty($array["
|
|
|
|
|
|
|
487 |
$subscr_id = trim($array["recurring_payment_id"]);
|
488 |
|
489 |
-
else if(is_array($array = $array_or_string) && !empty($array["
|
490 |
-
$
|
|
|
491 |
|
492 |
-
else if(is_string($string = $array_or_string) && !empty($string))
|
493 |
-
$subscr_id = trim($string);
|
494 |
|
495 |
return apply_filters("ws_plugin__s2member_paypal_pro_subscr_id", ((!empty($subscr_id)) ? $subscr_id : false), get_defined_vars());
|
496 |
}
|
@@ -510,20 +513,23 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
510 |
do_action("ws_plugin__s2member_before_paypal_pro_item_number", get_defined_vars());
|
511 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
512 |
|
513 |
-
if(isset($array_or_string["PROFILENAME"]) /* Payflow
|
514 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
515 |
|
516 |
-
if(is_array($array = $array_or_string) &&
|
517 |
-
|
518 |
|
519 |
else if(is_array($array = $array_or_string) && !empty($array["item_number1"]))
|
520 |
$_item_number = trim($array["item_number1"]);
|
521 |
|
522 |
-
else if(is_array($array = $array_or_string) && !empty($array["
|
523 |
-
$_item_number = trim($array["
|
|
|
|
|
|
|
|
|
524 |
|
525 |
-
else if(is_string($string = $array_or_string) && !empty($string))
|
526 |
-
$_item_number = trim($string);
|
527 |
|
528 |
if(!empty($_item_number) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_or_wo_level_regex"], $_item_number))
|
529 |
$item_number = $_item_number;
|
@@ -548,17 +554,20 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
548 |
do_action("ws_plugin__s2member_before_paypal_pro_item_name", get_defined_vars());
|
549 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
550 |
|
551 |
-
if(is_array($array = $array_or_string) && !empty($array["
|
552 |
-
$item_name = trim($array["
|
553 |
|
554 |
else if(is_array($array = $array_or_string) && !empty($array["item_name1"]))
|
555 |
$item_name = trim($array["item_name1"]);
|
556 |
|
557 |
-
else if(is_array($array = $array_or_string) && !empty($array["
|
558 |
-
$item_name = trim($array["
|
559 |
|
560 |
-
else if(
|
561 |
-
$
|
|
|
|
|
|
|
562 |
|
563 |
return apply_filters("ws_plugin__s2member_paypal_pro_item_name", ((!empty($item_name)) ? $item_name : false), get_defined_vars());
|
564 |
}
|
@@ -582,19 +591,21 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
582 |
do_action("ws_plugin__s2member_before_paypal_pro_period1", get_defined_vars());
|
583 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
584 |
|
585 |
-
if(isset($array_or_string["PROFILENAME"]) /* Payflow
|
586 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
587 |
|
588 |
-
if(is_array($array = $array_or_string) &&
|
|
|
|
|
589 |
{
|
590 |
list($_reference, $_domain, $_item_number) = array_map("trim", preg_split("/~/", ((!empty($array["PROFILEREFERENCE"])) ? $array["PROFILEREFERENCE"] : $array["rp_invoice_id"]), 3));
|
591 |
list($_start_time, $_period1, $_period3) = array_map("trim", preg_split("/\:/", $_reference, 3));
|
592 |
}
|
593 |
-
else if(is_array($array = $array_or_string) && !empty($array["
|
594 |
-
$
|
|
|
595 |
|
596 |
-
else if(is_string($string = $array_or_string) && !empty($string))
|
597 |
-
$_period1 = trim($string);
|
598 |
|
599 |
if /* Were we able to get a `period1` string? */(!empty($_period1))
|
600 |
{
|
@@ -636,19 +647,21 @@ if(!class_exists("c_ws_plugin__s2member_paypal_utilities"))
|
|
636 |
do_action("ws_plugin__s2member_before_paypal_pro_period3", get_defined_vars());
|
637 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
638 |
|
639 |
-
if(isset($array_or_string["PROFILENAME"]) /* Payflow
|
640 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
641 |
|
642 |
-
if(is_array($array = $array_or_string) &&
|
|
|
|
|
643 |
{
|
644 |
list($_reference, $_domain, $_item_number) = array_map("trim", preg_split("/~/", ((!empty($array["PROFILEREFERENCE"])) ? $array["PROFILEREFERENCE"] : $array["rp_invoice_id"]), 3));
|
645 |
list($_start_time, $_period1, $_period3) = array_map("trim", preg_split("/\:/", $_reference, 3));
|
646 |
}
|
647 |
-
else if(is_array($array = $array_or_string) && !empty($array["
|
648 |
-
$
|
|
|
649 |
|
650 |
-
else if(is_string($string = $array_or_string) && !empty($string))
|
651 |
-
$_period3 = trim($string);
|
652 |
|
653 |
if /* Were we able to get a `period3` string? */(!empty($_period3))
|
654 |
{
|
483 |
do_action("ws_plugin__s2member_before_paypal_pro_subscr_id", get_defined_vars());
|
484 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
485 |
|
486 |
+
if(is_array($array = $array_or_string) && !empty($array["subscr_id"]))
|
487 |
+
$subscr_id = trim($array["subscr_id"]);
|
488 |
+
|
489 |
+
else if(is_array($array = $array_or_string) && !empty($array["recurring_payment_id"]))
|
490 |
$subscr_id = trim($array["recurring_payment_id"]);
|
491 |
|
492 |
+
else if(is_array($array = $array_or_string) && !empty($array["mp_id"])
|
493 |
+
&& ($ipn_signup_var_subscr_id = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("subscr_id", FALSE, $array["mp_id"])))
|
494 |
+
$subscr_id = trim($ipn_signup_var_subscr_id); // Found w/ a Billing Agreement ID.
|
495 |
|
496 |
+
else if(is_string($string = $array_or_string) && !empty($string)) $subscr_id = trim($string);
|
|
|
497 |
|
498 |
return apply_filters("ws_plugin__s2member_paypal_pro_subscr_id", ((!empty($subscr_id)) ? $subscr_id : false), get_defined_vars());
|
499 |
}
|
513 |
do_action("ws_plugin__s2member_before_paypal_pro_item_number", get_defined_vars());
|
514 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
515 |
|
516 |
+
if(is_array($array_or_string) && isset($array_or_string["PROFILENAME"]) /* Payflow. */)
|
517 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
518 |
|
519 |
+
if(is_array($array = $array_or_string) && !empty($array["item_number"]))
|
520 |
+
$_item_number = trim($array["item_number"]);
|
521 |
|
522 |
else if(is_array($array = $array_or_string) && !empty($array["item_number1"]))
|
523 |
$_item_number = trim($array["item_number1"]);
|
524 |
|
525 |
+
else if(is_array($array = $array_or_string) && (!empty($array["PROFILEREFERENCE"]) || !empty($array["rp_invoice_id"])))
|
526 |
+
list($_reference, $_domain, $_item_number) = array_map("trim", preg_split("/~/", ((!empty($array["PROFILEREFERENCE"])) ? $array["PROFILEREFERENCE"] : $array["rp_invoice_id"]), 3));
|
527 |
+
|
528 |
+
else if(is_array($array = $array_or_string) && !empty($array["mp_id"])
|
529 |
+
&& ($ipn_signup_var_item_number = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("item_number", FALSE, $array["mp_id"])))
|
530 |
+
$_item_number = trim($ipn_signup_var_item_number); // Found w/ a Billing Agreement ID.
|
531 |
|
532 |
+
else if(is_string($string = $array_or_string) && !empty($string)) $_item_number = trim($string);
|
|
|
533 |
|
534 |
if(!empty($_item_number) && preg_match($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_or_wo_level_regex"], $_item_number))
|
535 |
$item_number = $_item_number;
|
554 |
do_action("ws_plugin__s2member_before_paypal_pro_item_name", get_defined_vars());
|
555 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
556 |
|
557 |
+
if(is_array($array = $array_or_string) && !empty($array["item_name"]))
|
558 |
+
$item_name = trim($array["item_name"]);
|
559 |
|
560 |
else if(is_array($array = $array_or_string) && !empty($array["item_name1"]))
|
561 |
$item_name = trim($array["item_name1"]);
|
562 |
|
563 |
+
else if(is_array($array = $array_or_string) && !empty($array["product_name"]))
|
564 |
+
$item_name = trim($array["product_name"]);
|
565 |
|
566 |
+
else if(is_array($array = $array_or_string) && !empty($array["mp_id"])
|
567 |
+
&& ($ipn_signup_var_item_name = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("item_name", FALSE, $array["mp_id"])))
|
568 |
+
$item_name = trim($ipn_signup_var_item_name); // Found w/ a Billing Agreement ID.
|
569 |
+
|
570 |
+
else if(is_string($string = $array_or_string) && !empty($string)) $item_name = trim($string);
|
571 |
|
572 |
return apply_filters("ws_plugin__s2member_paypal_pro_item_name", ((!empty($item_name)) ? $item_name : false), get_defined_vars());
|
573 |
}
|
591 |
do_action("ws_plugin__s2member_before_paypal_pro_period1", get_defined_vars());
|
592 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
593 |
|
594 |
+
if(is_array($array_or_string) && isset($array_or_string["PROFILENAME"]) /* Payflow. */)
|
595 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
596 |
|
597 |
+
if(is_array($array = $array_or_string) && !empty($array["period1"])) $_period1 = trim($array["period1"]);
|
598 |
+
|
599 |
+
else if(is_array($array = $array_or_string) && (!empty($array["PROFILEREFERENCE"]) || !empty($array["rp_invoice_id"])))
|
600 |
{
|
601 |
list($_reference, $_domain, $_item_number) = array_map("trim", preg_split("/~/", ((!empty($array["PROFILEREFERENCE"])) ? $array["PROFILEREFERENCE"] : $array["rp_invoice_id"]), 3));
|
602 |
list($_start_time, $_period1, $_period3) = array_map("trim", preg_split("/\:/", $_reference, 3));
|
603 |
}
|
604 |
+
else if(is_array($array = $array_or_string) && !empty($array["mp_id"])
|
605 |
+
&& ($ipn_signup_var_period1 = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("period1", FALSE, $array["mp_id"])))
|
606 |
+
$_period1 = trim($ipn_signup_var_period1); // Found w/ a Billing Agreement ID.
|
607 |
|
608 |
+
else if(is_string($string = $array_or_string) && !empty($string)) $_period1 = trim($string);
|
|
|
609 |
|
610 |
if /* Were we able to get a `period1` string? */(!empty($_period1))
|
611 |
{
|
647 |
do_action("ws_plugin__s2member_before_paypal_pro_period3", get_defined_vars());
|
648 |
unset /* Unset defined __refs, __v. */($__refs, $__v);
|
649 |
|
650 |
+
if(is_array($array_or_string) && isset($array_or_string["PROFILENAME"]) /* Payflow. */)
|
651 |
$array_or_string["PROFILEREFERENCE"] = $array_or_string["PROFILENAME"];
|
652 |
|
653 |
+
if(is_array($array = $array_or_string) && !empty($array["period3"])) $_period3 = trim($array["period3"]);
|
654 |
+
|
655 |
+
else if(is_array($array = $array_or_string) && (!empty($array["PROFILEREFERENCE"]) || !empty($array["rp_invoice_id"])))
|
656 |
{
|
657 |
list($_reference, $_domain, $_item_number) = array_map("trim", preg_split("/~/", ((!empty($array["PROFILEREFERENCE"])) ? $array["PROFILEREFERENCE"] : $array["rp_invoice_id"]), 3));
|
658 |
list($_start_time, $_period1, $_period3) = array_map("trim", preg_split("/\:/", $_reference, 3));
|
659 |
}
|
660 |
+
else if(is_array($array = $array_or_string) && !empty($array["mp_id"])
|
661 |
+
&& ($ipn_signup_var_period3 = c_ws_plugin__s2member_utils_users::get_user_ipn_signup_var("period3", FALSE, $array["mp_id"])))
|
662 |
+
$_period3 = trim($ipn_signup_var_period3); // Found w/ a Billing Agreement ID.
|
663 |
|
664 |
+
else if(is_string($string = $array_or_string) && !empty($string)) $_period3 = trim($string);
|
|
|
665 |
|
666 |
if /* Were we able to get a `period3` string? */(!empty($_period3))
|
667 |
{
|
includes/classes/registrations.inc.php
CHANGED
@@ -446,7 +446,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
446 |
$_p[$_key] = $_value; // Add each of these key conversions.
|
447 |
unset /* Just a little housekeeping here. */ ($_key, $_value);
|
448 |
|
449 |
-
if (!is_admin () && (isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_custom"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_ccaps"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_notes"])))
|
450 |
exit (_x ("s2Member security violation. You attempted to POST administrative variables that will NOT be trusted in a NON-administrative zone!", "s2member-front", "s2member"));
|
451 |
|
452 |
$_pmr = array_merge ($_p, $meta, $rvs); // Merge all of these arrays together now, in this specific order.
|
@@ -469,6 +469,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
469 |
$login = $user->user_login;
|
470 |
$ip = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_registration_ip"];
|
471 |
$ip = (!$ip) ? $_SERVER["REMOTE_ADDR"] : $ip; // Else use environment variable.
|
|
|
472 |
$cv = preg_split ("/\|/", $custom);
|
473 |
|
474 |
if (!($auto_eot_time = "") && $eotper) // If a specific EOT Period is included.
|
@@ -517,6 +518,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
517 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
518 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
519 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
|
|
520 |
update_user_option ($user_id, "s2member_custom", $custom);
|
521 |
update_user_option ($user_id, "s2member_notes", $notes);
|
522 |
|
@@ -632,6 +634,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
632 |
$ip = (!$ip) ? $_SERVER["REMOTE_ADDR"] : $ip; // Else use environment variable.
|
633 |
$custom = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"];
|
634 |
$subscr_id = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"];
|
|
|
635 |
$subscr_gateway = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"];
|
636 |
$cv = preg_split ("/\|/", (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"]);
|
637 |
|
@@ -679,6 +682,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
679 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
680 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
681 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
|
|
682 |
update_user_option ($user_id, "s2member_custom", $custom);
|
683 |
update_user_option ($user_id, "s2member_notes", $notes);
|
684 |
|
@@ -771,6 +775,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
771 |
$ip = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_registration_ip"];
|
772 |
$custom = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"];
|
773 |
$subscr_id = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"];
|
|
|
774 |
$subscr_gateway = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"];
|
775 |
$cv = preg_split ("/\|/", (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"]);
|
776 |
|
@@ -809,6 +814,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
|
|
809 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
810 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
811 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
|
|
812 |
update_user_option ($user_id, "s2member_custom", $custom);
|
813 |
update_user_option ($user_id, "s2member_notes", $notes);
|
814 |
|
446 |
$_p[$_key] = $_value; // Add each of these key conversions.
|
447 |
unset /* Just a little housekeeping here. */ ($_key, $_value);
|
448 |
|
449 |
+
if (!is_admin () && (isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_subscr_baid"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_custom"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_ccaps"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_auto_eot_time"]) || isset ($_p["ws_plugin__s2member_custom_reg_field_s2member_notes"])))
|
450 |
exit (_x ("s2Member security violation. You attempted to POST administrative variables that will NOT be trusted in a NON-administrative zone!", "s2member-front", "s2member"));
|
451 |
|
452 |
$_pmr = array_merge ($_p, $meta, $rvs); // Merge all of these arrays together now, in this specific order.
|
469 |
$login = $user->user_login;
|
470 |
$ip = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_registration_ip"];
|
471 |
$ip = (!$ip) ? $_SERVER["REMOTE_ADDR"] : $ip; // Else use environment variable.
|
472 |
+
$subscr_baid = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_baid"];
|
473 |
$cv = preg_split ("/\|/", $custom);
|
474 |
|
475 |
if (!($auto_eot_time = "") && $eotper) // If a specific EOT Period is included.
|
518 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
519 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
520 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
521 |
+
update_user_option ($user_id, "s2member_subscr_baid", $subscr_baid);
|
522 |
update_user_option ($user_id, "s2member_custom", $custom);
|
523 |
update_user_option ($user_id, "s2member_notes", $notes);
|
524 |
|
634 |
$ip = (!$ip) ? $_SERVER["REMOTE_ADDR"] : $ip; // Else use environment variable.
|
635 |
$custom = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"];
|
636 |
$subscr_id = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"];
|
637 |
+
$subscr_baid = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_baid"];
|
638 |
$subscr_gateway = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"];
|
639 |
$cv = preg_split ("/\|/", (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"]);
|
640 |
|
682 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
683 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
684 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
685 |
+
update_user_option ($user_id, "s2member_subscr_baid", $subscr_baid);
|
686 |
update_user_option ($user_id, "s2member_custom", $custom);
|
687 |
update_user_option ($user_id, "s2member_notes", $notes);
|
688 |
|
775 |
$ip = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_registration_ip"];
|
776 |
$custom = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"];
|
777 |
$subscr_id = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_id"];
|
778 |
+
$subscr_baid = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_baid"];
|
779 |
$subscr_gateway = (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_subscr_gateway"];
|
780 |
$cv = preg_split ("/\|/", (string)@$_pmr["ws_plugin__s2member_custom_reg_field_s2member_custom"]);
|
781 |
|
814 |
update_user_option ($user_id, "s2member_auto_eot_time", $auto_eot_time);
|
815 |
update_user_option ($user_id, "s2member_subscr_gateway", $subscr_gateway);
|
816 |
update_user_option ($user_id, "s2member_subscr_id", $subscr_id);
|
817 |
+
update_user_option ($user_id, "s2member_subscr_baid", $subscr_baid);
|
818 |
update_user_option ($user_id, "s2member_custom", $custom);
|
819 |
update_user_option ($user_id, "s2member_notes", $notes);
|
820 |
|
includes/classes/sc-if-conds-in.inc.php
CHANGED
@@ -50,7 +50,6 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
50 |
* @param str $shortcode The actual Shortcode name itself.
|
51 |
* @return str The ``$content`` if true, else an empty string.
|
52 |
*
|
53 |
-
* @todo Add support for ``else if`` logic.
|
54 |
* @todo Add support for nested AND/OR conditionals inside the ONE Shortcode.
|
55 |
* @todo Address possible security issue on sites with multiple editors, some of which should not have access to this feature.
|
56 |
*/
|
@@ -60,9 +59,53 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
60 |
do_action ("ws_plugin__s2member_before_sc_if_conditionals", get_defined_vars ());
|
61 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
62 |
|
63 |
-
$blog_farm_safe = apply_filters ("ws_plugin__s2member_sc_if_conditionals_blog_farm_safe",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
|
67 |
foreach ($attr as $attr_key => $attr_value) // Detects and removes logical attributes.
|
68 |
// It's NOT possible to mix logic. You MUST stick to one type of logic or another.
|
@@ -79,14 +122,12 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
79 |
return ""; // Return now; empty string in this case.
|
80 |
}
|
81 |
}
|
82 |
-
|
83 |
-
if (is_array ($logicals) && !empty ($logicals) && count (array_unique ($logicals)) > 1)
|
84 |
{
|
85 |
trigger_error ("s2If, AND/OR malformed conditional logic. It's NOT possible to mix logic using AND/OR combinations. You MUST stick to one type of logic or another. If both types of logic are needed, you MUST use two different Shortcode expressions. Or, use Advanced (PHP) Conditionals instead.", E_USER_ERROR);
|
86 |
return ""; // Return now; empty string in this case.
|
87 |
}
|
88 |
-
|
89 |
-
$conditional_logic = (is_array ($logicals) && !empty ($logicals) && preg_match ("/^(\|\||OR)$/i", $logicals[0])) ? "OR" : "AND";
|
90 |
|
91 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
92 |
do_action ("ws_plugin__s2member_before_sc_if_conditionals_after_conditional_logic", get_defined_vars ());
|
@@ -119,7 +160,6 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
119 |
break;
|
120 |
}
|
121 |
}
|
122 |
-
|
123 |
else if (empty ($args)) // No arguments at all.
|
124 |
{
|
125 |
if ($test === true && !call_user_func ($conditional))
|
@@ -127,20 +167,17 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
127 |
$condition_failed = true;
|
128 |
break;
|
129 |
}
|
130 |
-
|
131 |
else if ($test === false && call_user_func ($conditional))
|
132 |
{
|
133 |
$condition_failed = true;
|
134 |
break;
|
135 |
}
|
136 |
}
|
137 |
-
|
138 |
else if ($test === true && !call_user_func_array ($conditional, $args))
|
139 |
{
|
140 |
$condition_failed = true;
|
141 |
break;
|
142 |
}
|
143 |
-
|
144 |
else if ($test === false && call_user_func_array ($conditional, $args))
|
145 |
{
|
146 |
$condition_failed = true;
|
@@ -171,8 +208,13 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
171 |
return ""; // Return now; empty string in this case.
|
172 |
}
|
173 |
}
|
174 |
-
|
175 |
-
|
|
|
|
|
|
|
|
|
|
|
176 |
}
|
177 |
|
178 |
else if ($conditional_logic === "OR") // This is the OR variation. This routine analyzes conditionals using OR logic, instead of AND logic.
|
@@ -202,7 +244,6 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
202 |
break;
|
203 |
}
|
204 |
}
|
205 |
-
|
206 |
else if (empty ($args)) // No arguments at all.
|
207 |
{
|
208 |
if ($test === true && call_user_func ($conditional))
|
@@ -210,20 +251,17 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
210 |
$condition_succeeded = true;
|
211 |
break;
|
212 |
}
|
213 |
-
|
214 |
else if ($test === false && !call_user_func ($conditional))
|
215 |
{
|
216 |
$condition_succeeded = true;
|
217 |
break;
|
218 |
}
|
219 |
}
|
220 |
-
|
221 |
else if ($test === true && call_user_func_array ($conditional, $args))
|
222 |
{
|
223 |
$condition_succeeded = true;
|
224 |
break;
|
225 |
}
|
226 |
-
|
227 |
else if ($test === false && !call_user_func_array ($conditional, $args))
|
228 |
{
|
229 |
$condition_succeeded = true;
|
@@ -254,10 +292,29 @@ if (!class_exists ("c_ws_plugin__s2member_sc_if_conds_in"))
|
|
254 |
return ""; // Return now; empty string in this case.
|
255 |
}
|
256 |
}
|
257 |
-
|
258 |
-
|
|
|
|
|
|
|
|
|
|
|
259 |
}
|
|
|
260 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
}
|
262 |
}
|
263 |
?>
|
50 |
* @param str $shortcode The actual Shortcode name itself.
|
51 |
* @return str The ``$content`` if true, else an empty string.
|
52 |
*
|
|
|
53 |
* @todo Add support for nested AND/OR conditionals inside the ONE Shortcode.
|
54 |
* @todo Address possible security issue on sites with multiple editors, some of which should not have access to this feature.
|
55 |
*/
|
59 |
do_action ("ws_plugin__s2member_before_sc_if_conditionals", get_defined_vars ());
|
60 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
61 |
|
62 |
+
$blog_farm_safe = apply_filters ("ws_plugin__s2member_sc_if_conditionals_blog_farm_safe",
|
63 |
+
array ("is_user_logged_in", "is_user_not_logged_in",
|
64 |
+
"user_is", "user_is_not", "user_can", "user_cannot",
|
65 |
+
"current_user_is", "current_user_is_not", "current_user_can", "current_user_cannot",
|
66 |
+
"is_admin", "is_blog_admin", "is_user_admin", "is_network_admin",
|
67 |
+
"is_404", "is_home", "is_front_page", "is_singular", "is_single", "is_page",
|
68 |
+
"is_page_template", "is_attachment", "is_feed", "is_archive", "is_search",
|
69 |
+
"is_category", "is_tax", "is_tag", "has_tag", "is_author", "is_date",
|
70 |
+
"is_day", "is_month", "is_time", "is_year", "is_sticky", "is_paged",
|
71 |
+
"is_preview", "is_comments_popup", "in_the_loop", "comments_open",
|
72 |
+
"pings_open", "has_excerpt", "has_post_thumbnail"), get_defined_vars ());
|
73 |
|
74 |
+
$pro_is_installed = c_ws_plugin__s2member_utils_conds::pro_is_installed(); // Has pro version?
|
75 |
+
|
76 |
+
$sc_conds_allow_arbitrary_php = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sc_conds_allow_arbitrary_php"];
|
77 |
+
if(!$pro_is_installed || (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && !is_main_site ()))
|
78 |
+
$sc_conds_allow_arbitrary_php = FALSE; // Always disallow on child blogs of a blog farm.
|
79 |
+
|
80 |
+
$attr = // Trim quote entities to prevent issues in messy editors.
|
81 |
+
c_ws_plugin__s2member_utils_strings::trim_qts_deep ((array)$attr);
|
82 |
+
|
83 |
+
$content_if = $content_else = NULL; // Initialize.
|
84 |
+
$shortcode_depth = strspn($shortcode, '_'); // Based on a zero index.
|
85 |
+
$else_tag = "[".str_repeat("_", $shortcode_depth)."else]"; // e.g. [else], [_else], [__else]
|
86 |
+
|
87 |
+
if(strpos($content, $else_tag) !== FALSE && $pro_is_installed)
|
88 |
+
list($content_if, $content_else) = explode($else_tag, $content, 2);
|
89 |
+
|
90 |
+
# Arbitrary PHP code via the `php` attribute...
|
91 |
+
|
92 |
+
if($sc_conds_allow_arbitrary_php && isset($attr["php"]))
|
93 |
+
{
|
94 |
+
if(($condition_succeeded = c_ws_plugin__s2member_sc_if_conds_in::evl($attr["php"])))
|
95 |
+
$condition_content = isset($content_if) ? $content_if : $content;
|
96 |
+
else $condition_content = isset($content_else) ? $content_else : "";
|
97 |
+
|
98 |
+
if($condition_content) $condition_content = c_ws_plugin__s2member_utils_strings::trim_html($condition_content);
|
99 |
+
|
100 |
+
return do_shortcode (apply_filters ("ws_plugin__s2member_sc_if_conditionals", $condition_content, get_defined_vars ()));
|
101 |
+
}
|
102 |
+
else if(isset($attr["php"])) // Site owner is trying to use `php`, but it's NOT allowed on this installation.
|
103 |
+
{
|
104 |
+
trigger_error ("s2If syntax error. Simple Conditionals are not currently configured to allow arbitrary PHP code evaluation.", E_USER_ERROR);
|
105 |
+
return ""; // Return now; empty string in this case.
|
106 |
+
}
|
107 |
+
|
108 |
+
# Default behavior otherwise...
|
109 |
|
110 |
foreach ($attr as $attr_key => $attr_value) // Detects and removes logical attributes.
|
111 |
// It's NOT possible to mix logic. You MUST stick to one type of logic or another.
|
122 |
return ""; // Return now; empty string in this case.
|
123 |
}
|
124 |
}
|
125 |
+
if (!empty ($logicals) && is_array ($logicals) && count (array_unique ($logicals)) > 1)
|
|
|
126 |
{
|
127 |
trigger_error ("s2If, AND/OR malformed conditional logic. It's NOT possible to mix logic using AND/OR combinations. You MUST stick to one type of logic or another. If both types of logic are needed, you MUST use two different Shortcode expressions. Or, use Advanced (PHP) Conditionals instead.", E_USER_ERROR);
|
128 |
return ""; // Return now; empty string in this case.
|
129 |
}
|
130 |
+
$conditional_logic = (!empty ($logicals) && is_array ($logicals) && preg_match ("/^(\|\||OR)$/i", $logicals[0])) ? "OR" : "AND";
|
|
|
131 |
|
132 |
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;
|
133 |
do_action ("ws_plugin__s2member_before_sc_if_conditionals_after_conditional_logic", get_defined_vars ());
|
160 |
break;
|
161 |
}
|
162 |
}
|
|
|
163 |
else if (empty ($args)) // No arguments at all.
|
164 |
{
|
165 |
if ($test === true && !call_user_func ($conditional))
|
167 |
$condition_failed = true;
|
168 |
break;
|
169 |
}
|
|
|
170 |
else if ($test === false && call_user_func ($conditional))
|
171 |
{
|
172 |
$condition_failed = true;
|
173 |
break;
|
174 |
}
|
175 |
}
|
|
|
176 |
else if ($test === true && !call_user_func_array ($conditional, $args))
|
177 |
{
|
178 |
$condition_failed = true;
|
179 |
break;
|
180 |
}
|
|
|
181 |
else if ($test === false && call_user_func_array ($conditional, $args))
|
182 |
{
|
183 |
$condition_failed = true;
|
208 |
return ""; // Return now; empty string in this case.
|
209 |
}
|
210 |
}
|
211 |
+
if(!empty($condition_failed))
|
212 |
+
$condition_content = isset($content_else) ? $content_else : "";
|
213 |
+
else $condition_content = isset($content_if) ? $content_if : $content;
|
214 |
+
|
215 |
+
if($condition_content) $condition_content = c_ws_plugin__s2member_utils_strings::trim_html($condition_content);
|
216 |
+
|
217 |
+
return do_shortcode (apply_filters ("ws_plugin__s2member_sc_if_conditionals", $condition_content, get_defined_vars ()));
|
218 |
}
|
219 |
|
220 |
else if ($conditional_logic === "OR") // This is the OR variation. This routine analyzes conditionals using OR logic, instead of AND logic.
|
244 |
break;
|
245 |
}
|
246 |
}
|
|
|
247 |
else if (empty ($args)) // No arguments at all.
|
248 |
{
|
249 |
if ($test === true && call_user_func ($conditional))
|
251 |
$condition_succeeded = true;
|
252 |
break;
|
253 |
}
|
|
|
254 |
else if ($test === false && !call_user_func ($conditional))
|
255 |
{
|
256 |
$condition_succeeded = true;
|
257 |
break;
|
258 |
}
|
259 |
}
|
|
|
260 |
else if ($test === true && call_user_func_array ($conditional, $args))
|
261 |
{
|
262 |
$condition_succeeded = true;
|
263 |
break;
|
264 |
}
|
|
|
265 |
else if ($test === false && !call_user_func_array ($conditional, $args))
|
266 |
{
|
267 |
$condition_succeeded = true;
|
292 |
return ""; // Return now; empty string in this case.
|
293 |
}
|
294 |
}
|
295 |
+
if(!empty($condition_succeeded))
|
296 |
+
$condition_content = isset($content_if) ? $content_if : $content;
|
297 |
+
else $condition_content = isset($content_else) ? $content_else : "";
|
298 |
+
|
299 |
+
if($condition_content) $condition_content = c_ws_plugin__s2member_utils_strings::trim_html($condition_content);
|
300 |
+
|
301 |
+
return do_shortcode (apply_filters ("ws_plugin__s2member_sc_if_conditionals", $condition_content, get_defined_vars ()));
|
302 |
}
|
303 |
+
return ""; // Default return value.
|
304 |
}
|
305 |
+
/**
|
306 |
+
* Sandbox for arbitrary PHP code evaluation in `[s2If/]` shortcodes.
|
307 |
+
*
|
308 |
+
* @package s2Member\s2If
|
309 |
+
* @since 140326
|
310 |
+
*
|
311 |
+
* @param str $expression PHP expression.
|
312 |
+
* @return bool TRUE if condition succeed; else FALSE.
|
313 |
+
*/
|
314 |
+
public static function evl($expression)
|
315 |
+
{
|
316 |
+
return eval("return (".(string)$expression.");");
|
317 |
+
}
|
318 |
}
|
319 |
}
|
320 |
?>
|
includes/classes/sc-profile-in.inc.php
CHANGED
@@ -219,7 +219,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_profile_in"))
|
|
219 |
echo '<td>' . "\n";
|
220 |
echo '<label for="ws-plugin--s2member-profile-' . esc_attr ($field_id_class) . '">' . "\n";
|
221 |
echo '<strong' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</strong></label>' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? '' : '<br />') . "\n";
|
222 |
-
echo c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_profile_", "ws-plugin--s2member-profile-", "ws-plugin--s2member-profile-field", "", ($tabindex = $tabindex + 1), "", $fields,
|
223 |
echo '</td>' . "\n";
|
224 |
echo '</tr>' . "\n";
|
225 |
}
|
219 |
echo '<td>' . "\n";
|
220 |
echo '<label for="ws-plugin--s2member-profile-' . esc_attr ($field_id_class) . '">' . "\n";
|
221 |
echo '<strong' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</strong></label>' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? '' : '<br />') . "\n";
|
222 |
+
echo c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_profile_", "ws-plugin--s2member-profile-", "ws-plugin--s2member-profile-field", "", ($tabindex = $tabindex + 1), "", $fields, @$fields[$field_var], "profile");
|
223 |
echo '</td>' . "\n";
|
224 |
echo '</tr>' . "\n";
|
225 |
}
|
includes/classes/user-securities.inc.php
CHANGED
@@ -69,7 +69,10 @@ if (!class_exists ("c_ws_plugin__s2member_user_securities"))
|
|
69 |
do_action ("ws_plugin__s2member_before_user_capabilities", get_defined_vars ());
|
70 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
71 |
|
72 |
-
if (!
|
|
|
|
|
|
|
73 |
$capabilities = array_merge ((array)$capabilities, array ($args[0] => 1));
|
74 |
|
75 |
else if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && (is_super_admin () || !empty ($capabilities["administrator"])) && !empty ($args[0]) && ($args[0] === "edit_user" || $args[0] === "edit_users"))
|
69 |
do_action ("ws_plugin__s2member_before_user_capabilities", get_defined_vars ());
|
70 |
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
|
71 |
|
72 |
+
if (!empty ($capabilities["access_s2member_ccap_all_ccaps"]) && !empty ($args[0]) && preg_match ("/^access_s2member_ccap_/i", $args[0]) && apply_filters ("ws_plugin__s2member_all_ccaps_enable", true, get_defined_vars ()))
|
73 |
+
$capabilities = array_merge ((array)$capabilities, array ($args[0] => 1));
|
74 |
+
|
75 |
+
else if (!is_multisite () && !empty ($capabilities["administrator"]) && !empty ($args[0]) && preg_match ("/^access_s2member_ccap_/i", $args[0]) && apply_filters ("ws_plugin__s2member_admins_have_all_ccaps", true, get_defined_vars ()))
|
76 |
$capabilities = array_merge ((array)$capabilities, array ($args[0] => 1));
|
77 |
|
78 |
else if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && (is_super_admin () || !empty ($capabilities["administrator"])) && !empty ($args[0]) && ($args[0] === "edit_user" || $args[0] === "edit_users"))
|
includes/classes/users-list.inc.php
CHANGED
@@ -135,6 +135,8 @@ if (!class_exists ("c_ws_plugin__s2member_users_list"))
|
|
135 |
if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
|
136 |
$cols["s2member_ccaps"] = "Custom Capabilities";
|
137 |
|
|
|
|
|
138 |
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
|
139 |
foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
|
140 |
{
|
@@ -207,6 +209,8 @@ if (!class_exists ("c_ws_plugin__s2member_users_list"))
|
|
207 |
|
208 |
$val = (!empty ($ccaps)) ? implode ("<br />", $ccaps) : "—";
|
209 |
}
|
|
|
|
|
210 |
|
211 |
else if (preg_match ("/^s2member_custom_field_/", $col))
|
212 |
{
|
135 |
if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
|
136 |
$cols["s2member_ccaps"] = "Custom Capabilities";
|
137 |
|
138 |
+
$cols["s2member_auto_eot_time"] = "EOT Time";
|
139 |
+
|
140 |
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"])
|
141 |
foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
|
142 |
{
|
209 |
|
210 |
$val = (!empty ($ccaps)) ? implode ("<br />", $ccaps) : "—";
|
211 |
}
|
212 |
+
else if($col === "s2member_auto_eot_time")
|
213 |
+
$val = ($v = get_user_option ("s2member_auto_eot_time", $user_id)) ? esc_html ($v) : "—";
|
214 |
|
215 |
else if (preg_match ("/^s2member_custom_field_/", $col))
|
216 |
{
|
includes/classes/utils-s2o.inc.php
CHANGED
@@ -36,12 +36,15 @@ if (!class_exists ("c_ws_plugin__s2member_utils_s2o"))
|
|
36 |
*/
|
37 |
public static function wp_dir ($starting_dir = FALSE, $alt_starting_dir = FALSE)
|
38 |
{
|
|
|
|
|
|
|
39 |
foreach(array($starting_dir, $alt_starting_dir) as $directory)
|
40 |
if($directory && is_string($directory) && is_dir($directory))
|
41 |
for($i = 0, $dir = $directory; $i <= 20; $i++, $dir = dirname($dir))
|
42 |
if(file_exists($dir."/wp-settings.php"))
|
43 |
return ($wp_dir = $dir);
|
44 |
-
|
45 |
header ("HTTP/1.0 500 Error");
|
46 |
header ("Content-Type: text/plain; charset=UTF-8");
|
47 |
while (@ob_end_clean ()); // Clean any existing output buffers.
|
36 |
*/
|
37 |
public static function wp_dir ($starting_dir = FALSE, $alt_starting_dir = FALSE)
|
38 |
{
|
39 |
+
if(!empty($_SERVER['WP_DIR']))
|
40 |
+
return (string)$_SERVER['WP_DIR'];
|
41 |
+
|
42 |
foreach(array($starting_dir, $alt_starting_dir) as $directory)
|
43 |
if($directory && is_string($directory) && is_dir($directory))
|
44 |
for($i = 0, $dir = $directory; $i <= 20; $i++, $dir = dirname($dir))
|
45 |
if(file_exists($dir."/wp-settings.php"))
|
46 |
return ($wp_dir = $dir);
|
47 |
+
|
48 |
header ("HTTP/1.0 500 Error");
|
49 |
header ("Content-Type: text/plain; charset=UTF-8");
|
50 |
while (@ob_end_clean ()); // Clean any existing output buffers.
|
includes/classes/utils-strings.inc.php
CHANGED
@@ -250,6 +250,22 @@ if(!class_exists("c_ws_plugin__s2member_utils_strings"))
|
|
250 |
return is_array($value) ? array_map("c_ws_plugin__s2member_utils_strings::trim_qts_deep", $value) : preg_replace("/^(?:".$qts.")+|(?:".$qts.")+$/", "", (string)$value);
|
251 |
}
|
252 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
* Wraps a string with the characters provided.
|
254 |
*
|
255 |
* This is useful when preparing an input array for ``c_ws_plugin__s2member_utils_arrays::in_regex_array()``.
|
250 |
return is_array($value) ? array_map("c_ws_plugin__s2member_utils_strings::trim_qts_deep", $value) : preg_replace("/^(?:".$qts.")+|(?:".$qts.")+$/", "", (string)$value);
|
251 |
}
|
252 |
/**
|
253 |
+
* Trims HTML whitespace.
|
254 |
+
*
|
255 |
+
* This is useful on Shortcode content.
|
256 |
+
*
|
257 |
+
* @package s2Member\Utilities
|
258 |
+
* @since 140124
|
259 |
+
*
|
260 |
+
* @param str $string Input string to trim.
|
261 |
+
* @return str Output string with all HTML whitespace trimmed away.
|
262 |
+
*/
|
263 |
+
public static function trim_html($string = FALSE)
|
264 |
+
{
|
265 |
+
$whitespace = '\0\x0B|\s| |\<br\>|\<br\s*\/\>|\<p\>(?: )*\<\/p\>';
|
266 |
+
return preg_replace('/^(?:'.$whitespace.')+|(?:'.$whitespace.')+$/', '', (string)$string);
|
267 |
+
}
|
268 |
+
/**
|
269 |
* Wraps a string with the characters provided.
|
270 |
*
|
271 |
* This is useful when preparing an input array for ``c_ws_plugin__s2member_utils_arrays::in_regex_array()``.
|
includes/classes/utils-users.inc.php
CHANGED
@@ -67,14 +67,14 @@ if (!class_exists ("c_ws_plugin__s2member_utils_users"))
|
|
67 |
|
68 |
if /* This case includes some additional routines that can use the ``$os0`` value. */ ($subscr_or_txn_id && $os0)
|
69 |
{
|
70 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
71 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
72 |
if (($custom = get_user_option ("s2member_custom", $q->user_id)))
|
73 |
return $custom;
|
74 |
}
|
75 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */ ($subscr_or_txn_id)
|
76 |
{
|
77 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
78 |
if (($custom = get_user_option ("s2member_custom", $q->user_id)))
|
79 |
return $custom;
|
80 |
}
|
@@ -98,13 +98,13 @@ if (!class_exists ("c_ws_plugin__s2member_utils_users"))
|
|
98 |
|
99 |
if /* This case includes some additional routines that can use the ``$os0`` value. */($subscr_or_txn_id && $os0)
|
100 |
{
|
101 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
102 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
103 |
return $q->user_id;
|
104 |
}
|
105 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */ ($subscr_or_txn_id)
|
106 |
{
|
107 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
108 |
return $q->user_id;
|
109 |
}
|
110 |
return /* Otherwise, return false. */ false;
|
@@ -127,14 +127,14 @@ if (!class_exists ("c_ws_plugin__s2member_utils_users"))
|
|
127 |
|
128 |
if /* This case includes some additional routines that can use the ``$os0`` value. */($subscr_or_txn_id && $os0)
|
129 |
{
|
130 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
131 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
132 |
if (is_object ($user = new WP_User ($q->user_id)) && !empty ($user->ID) && ($email = $user->user_email))
|
133 |
return $email;
|
134 |
}
|
135 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */($subscr_or_txn_id)
|
136 |
{
|
137 |
-
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
138 |
if (is_object ($user = new WP_User ($q->user_id)) && !empty ($user->ID) && ($email = $user->user_email))
|
139 |
return $email;
|
140 |
}
|
@@ -158,7 +158,10 @@ if (!class_exists ("c_ws_plugin__s2member_utils_users"))
|
|
158 |
{
|
159 |
if ($user_id || ($subscr_id && ($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with ($subscr_id))) || (!$user_id && !$subscr_id && is_object ($user = wp_get_current_user ()) && !empty ($user->ID) && ($user_id = $user->ID)))
|
160 |
{
|
161 |
-
|
|
|
|
|
|
|
162 |
if (is_array ($ipn_signup_vars = get_user_option ("s2member_ipn_signup_vars", $user_id)))
|
163 |
if ($ipn_signup_vars["subscr_id"] === $subscr_id)
|
164 |
return $ipn_signup_vars;
|
67 |
|
68 |
if /* This case includes some additional routines that can use the ``$os0`` value. */ ($subscr_or_txn_id && $os0)
|
69 |
{
|
70 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
71 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
72 |
if (($custom = get_user_option ("s2member_custom", $q->user_id)))
|
73 |
return $custom;
|
74 |
}
|
75 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */ ($subscr_or_txn_id)
|
76 |
{
|
77 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
78 |
if (($custom = get_user_option ("s2member_custom", $q->user_id)))
|
79 |
return $custom;
|
80 |
}
|
98 |
|
99 |
if /* This case includes some additional routines that can use the ``$os0`` value. */($subscr_or_txn_id && $os0)
|
100 |
{
|
101 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
102 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
103 |
return $q->user_id;
|
104 |
}
|
105 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */ ($subscr_or_txn_id)
|
106 |
{
|
107 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
108 |
return $q->user_id;
|
109 |
}
|
110 |
return /* Otherwise, return false. */ false;
|
127 |
|
128 |
if /* This case includes some additional routines that can use the ``$os0`` value. */($subscr_or_txn_id && $os0)
|
129 |
{
|
130 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND (`meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' OR `meta_value` = '" . esc_sql ($os0) . "') LIMIT 1"))
|
131 |
|| ($q = $wpdb->get_row ("SELECT `ID` AS `user_id` FROM `" . $wpdb->users . "` WHERE `ID` = '" . esc_sql ($os0) . "' LIMIT 1")))
|
132 |
if (is_object ($user = new WP_User ($q->user_id)) && !empty ($user->ID) && ($email = $user->user_email))
|
133 |
return $email;
|
134 |
}
|
135 |
else if /* Otherwise, if all we have is a Subscr./Txn. ID value. */($subscr_or_txn_id)
|
136 |
{
|
137 |
+
if (($q = $wpdb->get_row ("SELECT `user_id` FROM `" . $wpdb->usermeta . "` WHERE (`meta_key` = '" . $wpdb->prefix . "s2member_subscr_id' OR `meta_key` = '" . $wpdb->prefix . "s2member_subscr_baid' OR `meta_key` = '" . $wpdb->prefix . "s2member_first_payment_txn_id') AND `meta_value` = '" . esc_sql ($subscr_or_txn_id) . "' LIMIT 1")))
|
138 |
if (is_object ($user = new WP_User ($q->user_id)) && !empty ($user->ID) && ($email = $user->user_email))
|
139 |
return $email;
|
140 |
}
|
158 |
{
|
159 |
if ($user_id || ($subscr_id && ($user_id = c_ws_plugin__s2member_utils_users::get_user_id_with ($subscr_id))) || (!$user_id && !$subscr_id && is_object ($user = wp_get_current_user ()) && !empty ($user->ID) && ($user_id = $user->ID)))
|
160 |
{
|
161 |
+
$_subscr_id = get_user_option ("s2member_subscr_id", $user_id);
|
162 |
+
$_subscr_baid = get_user_option ("s2member_subscr_baid", $user_id);
|
163 |
+
|
164 |
+
if ($_subscr_id && (!$subscr_id || $subscr_id === $_subscr_id || $subscr_id === $_subscr_baid) && ($subscr_id = $_subscr_id))
|
165 |
if (is_array ($ipn_signup_vars = get_user_option ("s2member_ipn_signup_vars", $user_id)))
|
166 |
if ($ipn_signup_vars["subscr_id"] === $subscr_id)
|
167 |
return $ipn_signup_vars;
|
includes/codes.inc.php
CHANGED
@@ -28,6 +28,13 @@ add_shortcode ("s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
|
28 |
add_shortcode ("_s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
29 |
add_shortcode ("__s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
30 |
add_shortcode ("___s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
add_shortcode ("s2Member-Profile", "c_ws_plugin__s2member_sc_profile::sc_profile");
|
33 |
add_shortcode ("s2Member-PayPal-Button", "c_ws_plugin__s2member_sc_paypal_button::sc_paypal_button");
|
28 |
add_shortcode ("_s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
29 |
add_shortcode ("__s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
30 |
add_shortcode ("___s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
31 |
+
add_shortcode ("____s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
32 |
+
add_shortcode ("_____s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
33 |
+
add_shortcode ("______s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
34 |
+
add_shortcode ("_______s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
35 |
+
add_shortcode ("________s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
36 |
+
add_shortcode ("_________s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
37 |
+
add_shortcode ("__________s2If", "c_ws_plugin__s2member_sc_if_conds::sc_if_conditionals");
|
38 |
|
39 |
add_shortcode ("s2Member-Profile", "c_ws_plugin__s2member_sc_profile::sc_profile");
|
40 |
add_shortcode ("s2Member-PayPal-Button", "c_ws_plugin__s2member_sc_paypal_button::sc_paypal_button");
|
includes/menu-pages/code-samples/current-user-downloads-allowed-is-unlimited.x-php
CHANGED
@@ -1,6 +1,13 @@
|
|
1 |
-
You are allowed to download <?php echo (S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? '
|
2 |
every <?php S2MEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED_DAYS; ?> days.
|
3 |
|
4 |
-
----
|
5 |
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
You are allowed to download <?php echo (S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) ? 'unlimited' : S2MEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED; ?> files
|
2 |
every <?php S2MEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED_DAYS; ?> days.
|
3 |
|
4 |
+
---- s2Member Shortcode Equivalent (Requires s2Member Pro) ------------
|
5 |
|
6 |
+
You are allowed to download [s2If php="S2MEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED"]unlimited
|
7 |
+
[else][s2Get constant="S2MEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED" /][/s2If] files
|
8 |
+
every [s2Get constant="S2MEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED_DAYS" /] days.
|
9 |
+
|
10 |
+
**NOTE** The use of `[s2If php=""]` and `[else]` requires s2Member Pro.
|
11 |
+
**NOTE** Arbitrary PHP code (via [s2If php=""]) will only work if you enable this functionality.
|
12 |
+
Please visit `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`
|
13 |
+
to set your preferences and enable `[s2If php=""]` when s2Member Pro is installed.
|
includes/menu-pages/code-samples/current-user-paid-registration-days-dripping.x-php
CHANGED
@@ -10,8 +10,25 @@
|
|
10 |
Drip content to Members that started paying you at least 90 days ago.
|
11 |
<?php } ?>
|
12 |
|
13 |
-
---- s2member Shortcode Equivalent ----
|
14 |
|
15 |
-
[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
|
10 |
Drip content to Members that started paying you at least 90 days ago.
|
11 |
<?php } ?>
|
12 |
|
13 |
+
---- s2member Shortcode Equivalent (Requires s2Member Pro) ----
|
14 |
|
15 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 30"]
|
16 |
+
Drip content to Members that started paying you at least 30 days ago.
|
17 |
+
[/s2If]
|
18 |
+
|
19 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 60"]
|
20 |
+
Drip content to Members that started paying you at least 60 days ago.
|
21 |
+
[/s2If]
|
22 |
+
|
23 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 90"]
|
24 |
+
Drip content to Members that started paying you at least 90 days ago.
|
25 |
+
[/s2If]
|
26 |
+
|
27 |
+
**NOTE** The use of `[s2If php=""]` requires s2Member Pro.
|
28 |
+
**NOTE** Arbitrary PHP code (via [s2If php=""]) will only work if you enable this functionality.
|
29 |
+
Please visit `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`
|
30 |
+
to set your preferences and enable `[s2If php=""]` when s2Member Pro is installed.
|
31 |
+
|
32 |
+
---- Another s2member Shortcode Equivalent ----
|
33 |
|
34 |
+
[s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS" /]
|
includes/menu-pages/code-samples/current-user-paid-registration-days.x-php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php echo S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS; ?>
|
2 |
This may output something like: 120 (120 days is approx 4 months)
|
3 |
|
|
|
|
|
4 |
In this example, the longer they've been a "paying" Member, the more they get.
|
5 |
|
6 |
<?php if(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 30){ ?>
|
@@ -15,8 +17,25 @@ In this example, the longer they've been a "paying" Member, the more they get.
|
|
15 |
Drip content to Members that started paying you at least 90 days ago.
|
16 |
<?php } ?>
|
17 |
|
18 |
-
---- s2member Shortcode Equivalent ----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
1 |
<?php echo S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS; ?>
|
2 |
This may output something like: 120 (120 days is approx 4 months)
|
3 |
|
4 |
+
-------------------------------------------------------------------------
|
5 |
+
|
6 |
In this example, the longer they've been a "paying" Member, the more they get.
|
7 |
|
8 |
<?php if(S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 30){ ?>
|
17 |
Drip content to Members that started paying you at least 90 days ago.
|
18 |
<?php } ?>
|
19 |
|
20 |
+
---- s2member Shortcode Equivalent (Requires s2Member Pro) ----
|
21 |
+
|
22 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 30"]
|
23 |
+
Drip content to Members that started paying you at least 30 days ago.
|
24 |
+
[/s2If]
|
25 |
+
|
26 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 60"]
|
27 |
+
Drip content to Members that started paying you at least 60 days ago.
|
28 |
+
[/s2If]
|
29 |
+
|
30 |
+
[s2If php="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS >= 90"]
|
31 |
+
Drip content to Members that started paying you at least 90 days ago.
|
32 |
+
[/s2If]
|
33 |
+
|
34 |
+
**NOTE** The use of `[s2If php=""]` requires s2Member Pro.
|
35 |
+
**NOTE** Arbitrary PHP code (via [s2If php=""]) will only work if you enable this functionality.
|
36 |
+
Please visit `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`
|
37 |
+
to set your preferences and enable `[s2If php=""]` when s2Member Pro is installed.
|
38 |
|
39 |
+
---- Another s2member Shortcode Equivalent ----
|
40 |
|
41 |
+
[s2Get constant="S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS" /]
|
includes/menu-pages/code-samples/current-user-registration-days.x-php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php echo S2MEMBER_CURRENT_USER_REGISTRATION_DAYS; ?>
|
2 |
This may output something like: 120 (120 days is approx 4 months)
|
3 |
|
|
|
|
|
4 |
In this example, the longer they've been registered (for free or otherwise), the more they get.
|
5 |
|
6 |
<?php if(S2MEMBER_CURRENT_USER_REGISTRATION_DAYS >= 30){ ?>
|
@@ -15,8 +17,25 @@ In this example, the longer they've been registered (for free or otherwise), the
|
|
15 |
Drip content to Users who've been registered for at least 90 days.
|
16 |
<?php } ?>
|
17 |
|
18 |
-
---- s2member Shortcode Equivalent ----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
1 |
<?php echo S2MEMBER_CURRENT_USER_REGISTRATION_DAYS; ?>
|
2 |
This may output something like: 120 (120 days is approx 4 months)
|
3 |
|
4 |
+
-------------------------------------------------------------------------
|
5 |
+
|
6 |
In this example, the longer they've been registered (for free or otherwise), the more they get.
|
7 |
|
8 |
<?php if(S2MEMBER_CURRENT_USER_REGISTRATION_DAYS >= 30){ ?>
|
17 |
Drip content to Users who've been registered for at least 90 days.
|
18 |
<?php } ?>
|
19 |
|
20 |
+
---- s2member Shortcode Equivalent (Requires s2Member Pro) ----
|
21 |
+
|
22 |
+
[s2If php="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS >= 30"]
|
23 |
+
Drip content to Users who've been registered for at least 30 days.
|
24 |
+
[/s2If]
|
25 |
+
|
26 |
+
[s2If php="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS >= 60"]
|
27 |
+
Drip content to Users who've been registered for at least 60 days.
|
28 |
+
[/s2If]
|
29 |
+
|
30 |
+
[s2If php="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS >= 90"]
|
31 |
+
Drip content to Users who've been registered for at least 90 days.
|
32 |
+
[/s2If]
|
33 |
+
|
34 |
+
**NOTE** The use of `[s2If php=""]` requires s2Member Pro.
|
35 |
+
**NOTE** Arbitrary PHP code (via [s2If php=""]) will only work if you enable this functionality.
|
36 |
+
Please visit `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`
|
37 |
+
to set your preferences and enable `[s2If php=""]` when s2Member Pro is installed.
|
38 |
|
39 |
+
---- Another s2member Shortcode Equivalent ----
|
40 |
|
41 |
+
[s2Get constant="S2MEMBER_CURRENT_USER_REGISTRATION_DAYS" /]
|
includes/menu-pages/code-samples/s2drip-example1.x-php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2Drip level="1" from_day="4"]
|
2 |
+
Some content for Members at Level 1 (or higher).
|
3 |
+
|
4 |
+
This content will show only after day 3 of their paid membership.
|
5 |
+
~ i.e. it starts showing on day 4.
|
6 |
+
|
7 |
+
It will continue to be shown every day thereafter.
|
8 |
+
[/s2Drip]
|
9 |
+
|
10 |
+
[s2Drip level="1" from_day="4" to_day="30"]
|
11 |
+
Some content for Members at Level 1 (or higher).
|
12 |
+
|
13 |
+
This content will show only after day 3 of their paid membership.
|
14 |
+
~ i.e. it starts showing on day 4.
|
15 |
+
|
16 |
+
In addition, this content will stop being shown on day 31 of their paid membership.
|
17 |
+
... i.e. show until (and including) day 30; stop showing after day 30.
|
18 |
+
[/s2Drip]
|
19 |
+
|
20 |
+
**NOTE** The use of [s2Drip] requires s2Member Pro.
|
21 |
+
|
22 |
+
**NOTE** [s2Drip] will NOT work as expected when testing against an Administrator who is logged in.
|
23 |
+
While Administrators DO gain full access to all content, Administrators generally
|
24 |
+
do NOT have a paid registration time; i.e. they are not an actual customer.
|
25 |
+
Thus, do NOT test this as an Administrator, you WILL be confused :-)
|
26 |
+
Administrators will always see the content, no matter.
|
includes/menu-pages/code-samples/s2member-paid-registration-time-examples.x-php
CHANGED
@@ -31,4 +31,25 @@
|
|
31 |
Drip more content to Members that started paying you at Level#1, at least 60 days ago.
|
32 |
<?php } ?>
|
33 |
|
34 |
-
<?php } ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
Drip more content to Members that started paying you at Level#1, at least 60 days ago.
|
32 |
<?php } ?>
|
33 |
|
34 |
+
<?php } ?>
|
35 |
+
|
36 |
+
---- Example #2 Shortcode Equivalent (Requires s2Member Pro) ------------
|
37 |
+
|
38 |
+
[s2If php="s2member_paid_registration_time() > 0"]
|
39 |
+
|
40 |
+
This is some content that will be displayed to all Members that have paid you at some point.
|
41 |
+
|
42 |
+
[_s2If php="($level1_payment_time = s2member_paid_registration_time('level1')) && $level1_payment_time <= ($_30_days_ago = strtotime('-30 days'))"]
|
43 |
+
Drip content to Members that started paying you at Level#1, at least 30 days ago.
|
44 |
+
[/_s2If]
|
45 |
+
|
46 |
+
[_s2If php="($level1_payment_time = s2member_paid_registration_time('level1')) && $level1_payment_time <= ($_60_days_ago = strtotime('-60 days'))"]
|
47 |
+
Drip content to Members that started paying you at Level#1, at least 60 days ago.
|
48 |
+
[/_s2If]
|
49 |
+
|
50 |
+
[/s2If]
|
51 |
+
|
52 |
+
**NOTE** The use of `[s2If php=""]` requires s2Member Pro.
|
53 |
+
**NOTE** Arbitrary PHP code (via [s2If php=""]) will only work if you enable this functionality.
|
54 |
+
Please visit `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`
|
55 |
+
to set your preferences and enable `[s2If php=""]` when s2Member Pro is installed.
|
includes/menu-pages/code-samples/sc-current-user-can-full-access-farm.x-php
CHANGED
@@ -1,7 +1,5 @@
|
|
1 |
[s2If current_user_can(access_s2member_level1)]
|
2 |
Some content for Members who are logged in with an s2Member Level >= 1.
|
3 |
-
[
|
4 |
-
|
5 |
-
[s2If !current_user_can(access_s2member_level1)]
|
6 |
Some public content.
|
7 |
[/s2If]
|
1 |
[s2If current_user_can(access_s2member_level1)]
|
2 |
Some content for Members who are logged in with an s2Member Level >= 1.
|
3 |
+
[else]
|
|
|
|
|
4 |
Some public content.
|
5 |
[/s2If]
|
includes/menu-pages/code-samples/sc-current-user-can-full-access.x-php
CHANGED
@@ -1,7 +1,5 @@
|
|
1 |
[s2If current_user_can(access_s2member_level1)]
|
2 |
Some content for Members who are logged in with an s2Member Level >= 1.
|
3 |
-
[
|
4 |
-
|
5 |
-
[s2If !current_user_can(access_s2member_level1)]
|
6 |
Some public content.
|
7 |
[/s2If]
|
1 |
[s2If current_user_can(access_s2member_level1)]
|
2 |
Some content for Members who are logged in with an s2Member Level >= 1.
|
3 |
+
[else]
|
|
|
|
|
4 |
Some public content.
|
5 |
[/s2If]
|
includes/menu-pages/code-samples/sc-current-user-is-specific-content-else-farm.x-php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
2 |
+
You can go up to ten levels deep ( __________s2If ).
|
3 |
+
|
4 |
+
[s2If current_user_is(s2member_level4)]
|
5 |
+
Some premium content for Level 4 Members.
|
6 |
+
[else]
|
7 |
+
[_s2If current_user_is(s2member_level3)]
|
8 |
+
Some premium content for Level 3 Members.
|
9 |
+
[_else]
|
10 |
+
[__s2If current_user_is(s2member_level2)]
|
11 |
+
Some premium content for Level 2 Members.
|
12 |
+
[__else]
|
13 |
+
[___s2If current_user_is(s2member_level1)]
|
14 |
+
Some premium content for Level 1 Members.
|
15 |
+
[___else]
|
16 |
+
[____s2If current_user_is(s2member_level0)]
|
17 |
+
Some content for Free Subscribers.
|
18 |
+
[____else]
|
19 |
+
Some public content.
|
20 |
+
[/____s2If]
|
21 |
+
[/___s2If]
|
22 |
+
[/__s2If]
|
23 |
+
[/_s2If]
|
24 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-current-user-is-specific-content-else.x-php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
2 |
+
You can go up to ten levels deep ( __________s2If ).
|
3 |
+
|
4 |
+
[s2If current_user_is(s2member_level4)]
|
5 |
+
Some premium content for Level 4 Members.
|
6 |
+
[else]
|
7 |
+
[_s2If current_user_is(s2member_level3)]
|
8 |
+
Some premium content for Level 3 Members.
|
9 |
+
[_else]
|
10 |
+
[__s2If current_user_is(s2member_level2)]
|
11 |
+
Some premium content for Level 2 Members.
|
12 |
+
[__else]
|
13 |
+
[___s2If current_user_is(s2member_level1)]
|
14 |
+
Some premium content for Level 1 Members.
|
15 |
+
[___else]
|
16 |
+
[____s2If current_user_is(s2member_level0)]
|
17 |
+
Some content for Free Subscribers.
|
18 |
+
[____else]
|
19 |
+
Some public content.
|
20 |
+
[/____s2If]
|
21 |
+
[/___s2If]
|
22 |
+
[/__s2If]
|
23 |
+
[/_s2If]
|
24 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-is-user-logged-in-else-farm.x-php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2If is_user_logged_in()]
|
2 |
+
Content for anyone that is logged in, regardless of their Membership Level.
|
3 |
+
[else]
|
4 |
+
Some public content. They're NOT logged in.
|
5 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-is-user-logged-in-else.x-php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2If is_user_logged_in()]
|
2 |
+
Content for anyone that is logged in, regardless of their Membership Level.
|
3 |
+
[else]
|
4 |
+
Some public content. They're NOT logged in.
|
5 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-s2-conditional-nesting-else-farm.x-php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2If is_user_logged_in() AND current_user_is(s2member_level1)]
|
2 |
+
[_s2If is_page(1) OR is_page(2)]
|
3 |
+
You can access.
|
4 |
+
[_else]
|
5 |
+
Denied!
|
6 |
+
[/_s2If]
|
7 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-s2-conditional-nesting-else.x-php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2If is_user_logged_in() AND current_user_is(s2member_level1)]
|
2 |
+
[_s2If is_page(1) OR is_page(2)]
|
3 |
+
You can access.
|
4 |
+
[_else]
|
5 |
+
Denied!
|
6 |
+
[/_s2If]
|
7 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-s2-conditional-nesting-farm.x-php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[s2If is_user_logged_in() AND current_user_is(s2member_level1)]
|
2 |
+
[_s2If is_page(1) OR is_page(2)]
|
3 |
+
You can access.
|
4 |
+
[/_s2If]
|
5 |
+
[/s2If]
|
includes/menu-pages/code-samples/sc-s2-conditional-nesting.x-php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
[s2If is_user_logged_in() AND current_user_is(s2member_level1)]
|
2 |
[_s2If is_page(1) OR is_page(2)]
|
3 |
-
|
4 |
[/_s2If]
|
5 |
[/s2If]
|
1 |
[s2If is_user_logged_in() AND current_user_is(s2member_level1)]
|
2 |
[_s2If is_page(1) OR is_page(2)]
|
3 |
+
You can access.
|
4 |
[/_s2If]
|
5 |
[/s2If]
|
includes/menu-pages/code-samples/sc-s2-conditional-supplements-3-farm.x-php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
[_s2If current_user_can(access_s2member_level3)]
|
7 |
|
8 |
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
9 |
-
You can go up to
|
10 |
|
11 |
Nested PayPal Form/Button Shortcodes ARE fine too.
|
12 |
However, you do NOT need a preceding underscore on Form/Button codes. Or any other Shortcode for that matter.
|
6 |
[_s2If current_user_can(access_s2member_level3)]
|
7 |
|
8 |
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
9 |
+
You can go up to ten levels deep ( __________s2If ).
|
10 |
|
11 |
Nested PayPal Form/Button Shortcodes ARE fine too.
|
12 |
However, you do NOT need a preceding underscore on Form/Button codes. Or any other Shortcode for that matter.
|
includes/menu-pages/code-samples/sc-s2-conditional-supplements-3.x-php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
|
8 |
Display free gift here. This is a Custom Capability check, using a nested Conditional.
|
9 |
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
10 |
-
You can go up to
|
11 |
|
12 |
Nested PayPal Form/Button Shortcodes ARE fine too.
|
13 |
However, you do NOT need a preceding underscore on Form/Button codes. Or any other Shortcode for that matter.
|
7 |
|
8 |
Display free gift here. This is a Custom Capability check, using a nested Conditional.
|
9 |
Notice that NESTED Conditionals require a preceding underscore (i.e. _s2If, __s2If, ___s2If).
|
10 |
+
You can go up to ten levels deep ( __________s2If ).
|
11 |
|
12 |
Nested PayPal Form/Button Shortcodes ARE fine too.
|
13 |
However, you do NOT need a preceding underscore on Form/Button codes. Or any other Shortcode for that matter.
|
includes/menu-pages/down-ops.inc.php
CHANGED
@@ -678,10 +678,39 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_down_ops"))
|
|
678 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_during_gzip_conflicts", get_defined_vars());
|
679 |
|
680 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
|
|
681 |
echo '<p style="margin:0; font-weight:bold;">s2Member automatically adds this to your <code>.htaccess</code> file upon activation of the plugin.</p>'."\n";
|
682 |
echo '<p style="margin:0;">The following <code>mod_rewrite</code> rule goes inside this file: <code>'.esc_html(c_ws_plugin__s2member_utils_dirs::doc_root_path(ABSPATH.".htaccess")).'</code></p>'."\n";
|
683 |
echo '<pre class="code"><code>'.esc_html(trim(c_ws_plugin__s2member_utilities::evl(file_get_contents($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_no_gzip_htaccess"])))).'</code></pre>';
|
684 |
echo '<p><strong>* Tip:</strong> this covers all types of integration with s2Member File Downloads, even if you\'re using s2Member\'s Advanced Mod Rewrite Linkage.</p>'."\n";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
685 |
echo '</div>'."\n";
|
686 |
|
687 |
echo '</div>'."\n";
|
678 |
do_action("ws_plugin__s2member_during_down_ops_page_during_left_sections_during_gzip_conflicts", get_defined_vars());
|
679 |
|
680 |
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
681 |
+
|
682 |
echo '<p style="margin:0; font-weight:bold;">s2Member automatically adds this to your <code>.htaccess</code> file upon activation of the plugin.</p>'."\n";
|
683 |
echo '<p style="margin:0;">The following <code>mod_rewrite</code> rule goes inside this file: <code>'.esc_html(c_ws_plugin__s2member_utils_dirs::doc_root_path(ABSPATH.".htaccess")).'</code></p>'."\n";
|
684 |
echo '<pre class="code"><code>'.esc_html(trim(c_ws_plugin__s2member_utilities::evl(file_get_contents($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_no_gzip_htaccess"])))).'</code></pre>';
|
685 |
echo '<p><strong>* Tip:</strong> this covers all types of integration with s2Member File Downloads, even if you\'re using s2Member\'s Advanced Mod Rewrite Linkage.</p>'."\n";
|
686 |
+
|
687 |
+
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
688 |
+
|
689 |
+
echo '<table class="form-table">' . "\n";
|
690 |
+
echo '<tbody>' . "\n";
|
691 |
+
echo '<tr>' . "\n";
|
692 |
+
|
693 |
+
echo '<th>' . "\n";
|
694 |
+
echo '<label for="ws-plugin--s2member-file-download-content-encodong-none">' . "\n";
|
695 |
+
echo 'Also Force a <code>Content-Encoding: none</code> Header?' . "\n";
|
696 |
+
echo '</label>' . "\n";
|
697 |
+
echo '</th>' . "\n";
|
698 |
+
|
699 |
+
echo '</tr>' . "\n";
|
700 |
+
echo '<tr>' . "\n";
|
701 |
+
|
702 |
+
echo '<td>' . "\n";
|
703 |
+
echo '<select name="ws_plugin__s2member_file_download_content_encodong_none" id="ws-plugin--s2member-file-download-content-encodong-none">' . "\n";
|
704 |
+
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_content_encodong_none"]) ? ' selected="selected"' : '') . '>No (remain standards-compliant; I will configure my server properly)</option>' . "\n";
|
705 |
+
echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["file_download_content_encodong_none"]) ? ' selected="selected"' : '') . '>Yes (my web server is stubborn; downloads are corrupted without this)</option>' . "\n";
|
706 |
+
echo '</select>' . "\n";
|
707 |
+
echo '</td>' . "\n";
|
708 |
+
|
709 |
+
echo '</tr>' . "\n";
|
710 |
+
echo '</tbody>' . "\n";
|
711 |
+
echo '</table>' . "\n";
|
712 |
+
|
713 |
+
echo '<p><code>Content-Encoding: none</code> can be forced by s2Member in order to workaround stubborn web server configurations. However, please note that <code>Content-Encoding: none</code> is an invalid header (NOT standards compliant), so don\'t enable this unless you absolutely need to. For instance, if files downloaded via s2Member are always corrupt, you could enable this to workaround the issue. The issue being... that your web server is ignoring all of s2Member\'s attempts to serve a file without Content-Encoding. While <code>Content-Encoding: none</code> is indeed a hack, it\'s a relatively common hack that most modern browsers will understand just fine; making this a viable solution when/if necessary.</p>'."\n";
|
714 |
echo '</div>'."\n";
|
715 |
|
716 |
echo '</div>'."\n";
|
includes/menu-pages/els-ops.inc.php
CHANGED
@@ -56,7 +56,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_els_ops"))
|
|
56 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">'."\n";
|
57 |
echo '<a href="http://www.s2member.com/mailchimp" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/mailchimp-stamp.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>'."\n";
|
58 |
echo '<h3>MailChimp List Server Integration (optional)</h3>'."\n";
|
59 |
-
echo '<p>s2Member can be integrated with MailChimp. MailChimp is an email marketing service. MailChimp makes it easy to send email newsletters to your Customers, manage your MailChimp subscriber lists, and track campaign performance. Although s2Member can be integrated with almost ANY list server, we highly recommend MailChimp; because of their <a href="http://www.s2member.com/mailchimp-api-docs" target="_blank" rel="external">powerful API for MailChimp services</a>. In future versions of s2Member, we plan to build additional features into s2Member that work with, and extend
|
60 |
echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp marketing lists <em>(e.g. newsletters / auto-responders)</em>. You\'ll need a <a href="http://www.s2member.com/mailchimp" target="_blank" rel="external">MailChimp account</a>, a <a href="http://www.s2member.com/mailchimp-api-key" target="_blank" rel="external">MailChimp API Key</a>, and your <a href="#" onclick="alert(\'To obtain your MailChimp List ID(s), log into your MailChimp account and click the Lists tab. Now click the (View) button, for the List(s) you want to integrate with s2Member. Then, click the (Settings) link. At the bottom of the (Settings) page, for each list; you\\\'ll find a Unique List ID.\'); return false;">MailChimp List IDs</a>.</p>'."\n";
|
61 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_mailchimp", get_defined_vars());
|
62 |
|
@@ -120,6 +120,78 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_els_ops"))
|
|
120 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_mailchimp", get_defined_vars());
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_aweber", true, get_defined_vars()))
|
124 |
{
|
125 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_aweber", get_defined_vars());
|
@@ -185,7 +257,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_els_ops"))
|
|
185 |
|
186 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-in-section">'."\n";
|
187 |
echo '<h3>Double Opt-In Checkbox Field (optional)</h3>'."\n";
|
188 |
-
echo '<p>A Double Opt-In Checkbox will ONLY be displayed, if you\'ve integrated one <em>or more</em> List Servers
|
189 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_in", get_defined_vars());
|
190 |
|
191 |
echo '<table class="form-table">'."\n";
|
@@ -289,8 +361,8 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_els_ops"))
|
|
289 |
echo '<option value="2"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"] === "2") ? ' selected="selected"' : '').'>Yes (always automatically transition, even if NOT removed from a previous list)</option>'."\n";
|
290 |
echo '</select><br />'."\n";
|
291 |
echo '<em><strong>*Transitions*</strong> When/if s2Member automatically removes a Member from Lists at their current Level# (based on your configuration in the previous section), this setting tells s2Member that it should <strong>also</strong> transition the Member to any Lists you\'ve configured at the new Access Level# (i.e. Role) they are being changed to. For example, if a Member is demoted from Level #1 to Level #0, do you want s2Member to add them to the Level #0 List(s) after it removes them from the Level #1 List(s)?</em><br /><br />'."\n";
|
292 |
-
echo '<em><strong>*If removed from a previous list, or NOT?*</strong> You can choose your preference above. When/if s2Member automatically transitions a mailing list subscriber, it will first try to remove the subscriber from a previous mailing list. If s2Member is able to remove the subscriber from a previous list before the transition takes place, s2Member will then make an attempt (based on your configuration) to transition the subscriber to a new/different list silently (e.g. without a new confirmation email being sent out). If s2Member is NOT able to remove a subscriber from a previous list, it can
|
293 |
-
echo '<em><strong>*Seamless with MailChimp*</strong> If enabled, Automatic List Transitions work seamlessly with MailChimp. Automatic List Transitions also work with AWeber, but AWeber will ALWAYS send the User/Member a new confirmation email, asking them to confirm changes to their mailing list subscription with you. Work is underway to improve this aspect of s2Member\'s integration with AWeber in a future release. Ideally, a Customer would be transitioned silently behind the scene with AWeber too, when appropriate.</em>'."\n";
|
294 |
echo '</td>'."\n";
|
295 |
|
296 |
echo '</tr>'."\n";
|
56 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-mailchimp-section">'."\n";
|
57 |
echo '<a href="http://www.s2member.com/mailchimp" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/mailchimp-stamp.png" class="ws-menu-page-right" style="width:125px; height:125px; border:0;" alt="." /></a>'."\n";
|
58 |
echo '<h3>MailChimp List Server Integration (optional)</h3>'."\n";
|
59 |
+
echo '<p>s2Member can be integrated with MailChimp. MailChimp is an email marketing service. MailChimp makes it easy to send email newsletters to your Customers, manage your MailChimp subscriber lists, and track campaign performance. Although s2Member can be integrated with almost ANY list server, we highly recommend MailChimp; because of their <a href="http://www.s2member.com/mailchimp-api-docs" target="_blank" rel="external">powerful API for MailChimp services</a>. In future versions of s2Member, we plan to build additional features into s2Member that work with, and extend MailChimp services.</p>'."\n";
|
60 |
echo '<p>For now, we\'ve covered the basics. You can have your Members automatically subscribed to your MailChimp marketing lists <em>(e.g. newsletters / auto-responders)</em>. You\'ll need a <a href="http://www.s2member.com/mailchimp" target="_blank" rel="external">MailChimp account</a>, a <a href="http://www.s2member.com/mailchimp-api-key" target="_blank" rel="external">MailChimp API Key</a>, and your <a href="#" onclick="alert(\'To obtain your MailChimp List ID(s), log into your MailChimp account and click the Lists tab. Now click the (View) button, for the List(s) you want to integrate with s2Member. Then, click the (Settings) link. At the bottom of the (Settings) page, for each list; you\\\'ll find a Unique List ID.\'); return false;">MailChimp List IDs</a>.</p>'."\n";
|
61 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_mailchimp", get_defined_vars());
|
62 |
|
120 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_mailchimp", get_defined_vars());
|
121 |
}
|
122 |
|
123 |
+
if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_getresponse", c_ws_plugin__s2member_utils_conds::pro_is_installed(), get_defined_vars()))
|
124 |
+
{
|
125 |
+
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_getresponse", get_defined_vars());
|
126 |
+
|
127 |
+
echo '<div class="ws-menu-page-group" title="GetResponse Integration">'."\n";
|
128 |
+
|
129 |
+
echo '<div class="ws-menu-page-section ws-plugin--s2member-getresponse-section">'."\n";
|
130 |
+
echo '<a href="http://www.s2member.com/r/getresponse/" target="_blank"><img src="'.esc_attr($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]).'/images/getresponse-logo.png" class="ws-menu-page-right" style="width:256px; height:89px; border:0;" alt="." /></a>'."\n";
|
131 |
+
echo '<h3>GetResponse List Server Integration (optional)</h3>'."\n";
|
132 |
+
echo '<p>s2Member can be integrated with GetResponse. GetResponse is a complete email marketing solution. It provides turnkey newsletter publishing and hosting features, as well as unlimited autoresponders to deliver information to your subscribers and convert them to paying customers.</p>'."\n";
|
133 |
+
echo '<p>You can have your Members automatically subscribed to your GetResponse marketing lists <em>(e.g. newsletters / auto-responders)</em>. You\'ll need a <a href="http://www.s2member.com/r/getresponse" target="_blank" rel="external">GetResponse account</a>, a <a href="http://www.s2member.com/r/getresponse-api-key" target="_blank" rel="external">GetResponse API Key</a>, and your <a href="http://www.s2member.com/r/getresponse-campaigns-list" target="_blank" rel="external" onclick="alert(\'To obtain your GetResponse Campaign Token(s), log into your GetResponse account and navigate to your entire list of Campaigns. In the left-hand column you\\\'ll find a list of Unique Campaign Tokens.\\n\\nPlease click OK and we\\\'ll take you there now :-)\');">GetResponse Campaign Tokens</a>.</p>'."\n";
|
134 |
+
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_getresponse", get_defined_vars());
|
135 |
+
|
136 |
+
echo '<table class="form-table">'."\n";
|
137 |
+
echo '<tbody>'."\n";
|
138 |
+
echo '<tr>'."\n";
|
139 |
+
|
140 |
+
echo '<th>'."\n";
|
141 |
+
echo '<label for="ws-plugin--s2member-getresponse-api-key">'."\n";
|
142 |
+
echo 'GetResponse API Key:'."\n";
|
143 |
+
echo '</label>'."\n";
|
144 |
+
echo '</th>'."\n";
|
145 |
+
|
146 |
+
echo '</tr>'."\n";
|
147 |
+
echo '<tr>'."\n";
|
148 |
+
|
149 |
+
echo '<td>'."\n";
|
150 |
+
echo '<input type="password" autocomplete="off" name="ws_plugin__s2member_getresponse_api_key" id="ws-plugin--s2member-getresponse-api-key" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["getresponse_api_key"]).'" /><br />'."\n";
|
151 |
+
echo 'Once you have a GetResponse account, you\'ll need to login; then <a href="http://www.s2member.com/r/getresponse-api-key" target="_blank" rel="external">get your API Key</a>.'."\n";
|
152 |
+
echo '</td>'."\n";
|
153 |
+
|
154 |
+
echo '</tr>'."\n";
|
155 |
+
|
156 |
+
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
157 |
+
{
|
158 |
+
echo '<tr>'."\n";
|
159 |
+
|
160 |
+
echo '<th>'."\n";
|
161 |
+
echo '<label for="ws-plugin--s2member-level'.$n.'-getresponse-list-ids">'."\n";
|
162 |
+
echo 'Campaign Token(s) for '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' (comma-delimited):'."\n";
|
163 |
+
echo '</label>'."\n";
|
164 |
+
echo '</th>'."\n";
|
165 |
+
|
166 |
+
echo '</tr>'."\n";
|
167 |
+
echo '<tr>'."\n";
|
168 |
+
|
169 |
+
echo '<td>'."\n";
|
170 |
+
echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_level'.$n.'_getresponse_list_ids" id="ws-plugin--s2member-level'.$n.'-getresponse-list-ids" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level".$n."_getresponse_list_ids"]).'" /><br />'."\n";
|
171 |
+
echo 'New '.(($n === 0) ? 'Free Subscribers' : 'Level #'.$n.' Members').' will be subscribed to these Campaign Tokens.<br />'."\n";
|
172 |
+
echo 'Ex: <code>4ksdX</code> or <code>4ksdX, koeeXs, ggjXk, aakSc</code>'."\n";
|
173 |
+
echo '</td>'."\n";
|
174 |
+
|
175 |
+
echo '</tr>'."\n";
|
176 |
+
}
|
177 |
+
|
178 |
+
echo '</tbody>'."\n";
|
179 |
+
echo '</table>'."\n";
|
180 |
+
|
181 |
+
echo '<div class="ws-menu-page-hr"></div>'."\n";
|
182 |
+
|
183 |
+
echo '<div class="info" style="margin-bottom:0;">'."\n";
|
184 |
+
echo '<p style="font-size:110%; margin-top:0;"><span>We HIGHLY recommend that you enable logging during your initial testing phase. Logs produce lots of useful details that can help in debugging. Logs can help you find issues in your configuration and/or problems during GetResponse processing. See: <a href="'.esc_attr(admin_url("/admin.php?page=ws-plugin--s2member-logs")).'">Log Files (Debug)</a>.</span></p>'."\n";
|
185 |
+
echo '<p style="font-size:110%; margin-bottom:0;"><span class="ws-menu-page-error">However, it is VERY IMPORTANT to disable logging once you go live. Log files may contain personally identifiable information, credit card numbers, secret API credentials, passwords and/or other sensitive information. We STRONGLY suggest that logging be disabled on a live site (for security reasons).</span></p>'."\n";
|
186 |
+
echo '</div>'."\n";
|
187 |
+
|
188 |
+
echo '</div>'."\n";
|
189 |
+
|
190 |
+
echo '</div>'."\n";
|
191 |
+
|
192 |
+
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_after_getresponse", get_defined_vars());
|
193 |
+
}
|
194 |
+
|
195 |
if(apply_filters("ws_plugin__s2member_during_els_ops_page_during_left_sections_display_aweber", true, get_defined_vars()))
|
196 |
{
|
197 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_before_aweber", get_defined_vars());
|
257 |
|
258 |
echo '<div class="ws-menu-page-section ws-plugin--s2member-opt-in-section">'."\n";
|
259 |
echo '<h3>Double Opt-In Checkbox Field (optional)</h3>'."\n";
|
260 |
+
echo '<p>A Double Opt-In Checkbox will ONLY be displayed, if you\'ve integrated one <em>or more</em> List Servers. See also: <a href="http://www.s2member.com/kb/double-opt-in-checkbox/" target="_blank" rel="external">this KB article</a>.</p>'."\n";
|
261 |
do_action("ws_plugin__s2member_during_els_ops_page_during_left_sections_during_opt_in", get_defined_vars());
|
262 |
|
263 |
echo '<table class="form-table">'."\n";
|
361 |
echo '<option value="2"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_auto_opt_out_transitions"] === "2") ? ' selected="selected"' : '').'>Yes (always automatically transition, even if NOT removed from a previous list)</option>'."\n";
|
362 |
echo '</select><br />'."\n";
|
363 |
echo '<em><strong>*Transitions*</strong> When/if s2Member automatically removes a Member from Lists at their current Level# (based on your configuration in the previous section), this setting tells s2Member that it should <strong>also</strong> transition the Member to any Lists you\'ve configured at the new Access Level# (i.e. Role) they are being changed to. For example, if a Member is demoted from Level #1 to Level #0, do you want s2Member to add them to the Level #0 List(s) after it removes them from the Level #1 List(s)?</em><br /><br />'."\n";
|
364 |
+
echo '<em><strong>*If removed from a previous list, or NOT?*</strong> You can choose your preference above. When/if s2Member automatically transitions a mailing list subscriber, it will first try to remove the subscriber from a previous mailing list. If s2Member is able to remove the subscriber from a previous list before the transition takes place, s2Member will then make an attempt (based on your configuration) to transition the subscriber to a new/different list silently (e.g. without a new confirmation email being sent out). If s2Member is NOT able to remove a subscriber from a previous list, it can (if configured to do so) still transition a subscriber to a new list, by sending the subscriber a new email confirmation letter (e.g. this is NOT silent, because you absolutely NEED the subscriber\'s permission in this case).</em><br /><br />'."\n";
|
365 |
+
echo '<em><strong>*Seamless with MailChimp*</strong> If enabled, Automatic List Transitions work seamlessly with MailChimp. Automatic List Transitions also work with GetResponse/AWeber, but GetResponse/AWeber will ALWAYS send the User/Member a new confirmation email, asking them to confirm changes to their mailing list subscription with you. Work is underway to improve this aspect of s2Member\'s integration with GetResponse/AWeber in a future release. Ideally, a Customer would be transitioned silently behind the scene with GetResponse/AWeber too, when appropriate.</em>'."\n";
|
366 |
echo '</td>'."\n";
|
367 |
|
368 |
echo '</tr>'."\n";
|
includes/menu-pages/menu-pages.css
CHANGED
@@ -37,9 +37,9 @@ div.ws-menu-page
|
|
37 |
margin : 25px 25px 25px 5px;
|
38 |
|
39 |
border-radius : 5px;
|
40 |
-
background : #
|
41 |
-
border : 1px solid #
|
42 |
-
box-shadow : 0 0
|
43 |
}
|
44 |
div.ws-menu-page a
|
45 |
{
|
37 |
margin : 25px 25px 25px 5px;
|
38 |
|
39 |
border-radius : 5px;
|
40 |
+
background : #FFFFFF;
|
41 |
+
border : 1px solid #A1ACBE;
|
42 |
+
box-shadow : 0 0 8px 0 rgba(0, 0, 0, 0.2) !important;
|
43 |
}
|
44 |
div.ws-menu-page a
|
45 |
{
|
includes/menu-pages/paypal-ops.inc.php
CHANGED
@@ -967,7 +967,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
|
|
967 |
|
968 |
echo '<th>'."\n";
|
969 |
echo '<label for="ws-plugin--s2member-triggers-immediate-eot">'."\n";
|
970 |
-
echo 'Refunds/Reversals (trigger Immediate EOT)?'."\n";
|
971 |
echo '</label>'."\n";
|
972 |
echo '</th>'."\n";
|
973 |
|
@@ -976,12 +976,13 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
|
|
976 |
|
977 |
echo '<td>'."\n";
|
978 |
echo '<select name="ws_plugin__s2member_triggers_immediate_eot" id="ws-plugin--s2member-triggers-immediate-eot">'."\n";
|
979 |
-
echo '<option value="none"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "none") ? ' selected="selected"' : '').'>
|
980 |
-
echo '<option value="refunds"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds") ? ' selected="selected"' : '').'>Refunds (refunds ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
981 |
-
echo '<option value="reversals"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "reversals") ? ' selected="selected"' : '').'>Reversals (chargebacks ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
982 |
-
echo '<option value="refunds,reversals"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,reversals") ? ' selected="selected"' : '').'>Refunds
|
|
|
983 |
echo '</select><br />'."\n";
|
984 |
-
echo '<em>This setting will <a href="#" onclick="alert(\'A Refund/Reversal Notification will ALWAYS be processed internally by s2Member, even if no action is taken by s2Member
|
985 |
echo '</td>'."\n";
|
986 |
|
987 |
echo '</tr>'."\n";
|
967 |
|
968 |
echo '<th>'."\n";
|
969 |
echo '<label for="ws-plugin--s2member-triggers-immediate-eot">'."\n";
|
970 |
+
echo 'Refunds/Partial Refunds/Reversals (trigger Immediate EOT)?'."\n";
|
971 |
echo '</label>'."\n";
|
972 |
echo '</th>'."\n";
|
973 |
|
976 |
|
977 |
echo '<td>'."\n";
|
978 |
echo '<select name="ws_plugin__s2member_triggers_immediate_eot" id="ws-plugin--s2member-triggers-immediate-eot">'."\n";
|
979 |
+
echo '<option value="none"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "none") ? ' selected="selected"' : '').'>None (I\'ll review these events manually)</option>'."\n";
|
980 |
+
echo '<option value="refunds"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds") ? ' selected="selected"' : '').'>Full Refunds (full refunds only; ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
981 |
+
echo '<option value="reversals"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "reversals") ? ' selected="selected"' : '').'>Reversals (chargebacks only; ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
982 |
+
echo '<option value="refunds,reversals"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,reversals") ? ' selected="selected"' : '').'>Full Refunds, Reversals (these ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
983 |
+
echo '<option value="refunds,partial_refunds,reversals"'.(($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["triggers_immediate_eot"] === "refunds,partial_refunds,reversals") ? ' selected="selected"' : '').'>Full Refunds, Partial Refunds, Reversals (these ALWAYS trigger an Immediate EOT action)</option>'."\n";
|
984 |
echo '</select><br />'."\n";
|
985 |
+
echo '<em><strong>Note:</strong> s2Member is not equipped to detect partial refunds against multi-payment Subscriptions reliably. Therefore, all refunds processed against Subscriptions (of any kind) are considered <strong>Partial</strong> Refunds. Full refunds (in the eyes of s2Member) occur only against Buy Now transactions where it is easy for s2Member to see that the refund amount is >= the original Buy Now purchase price (i.e. a Full Refund). <strong>Also Note:</strong> This setting (no matter what you choose) will NOT impact s2Member\'s internal API Notifications for Refund/Reversal events. <a href="#" onclick="alert(\'A Full or Partial Refund; and/or a Reversal Notification will ALWAYS be processed internally by s2Member, even if no action is taken by s2Member in accordance with your configuration here.\\n\\nIn this way, you\\\'ll have the full ability to listen for these events on your own (via API Notifications); if you prefer (optional). For more information, check your Dashboard under: `s2Member -› API Notifications -› Refunds/Reversals`.\'); return false;">Click here for details</a>.</em>'."\n";
|
986 |
echo '</td>'."\n";
|
987 |
|
988 |
echo '</tr>'."\n";
|
includes/menu-pages/res-ops.inc.php
CHANGED
@@ -341,6 +341,38 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_res_ops"))
|
|
341 |
do_action ("ws_plugin__s2member_during_res_ops_page_during_left_sections_during_conditionals", get_defined_vars ());
|
342 |
echo '</div>' . "\n";
|
343 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
echo '</div>' . "\n";
|
345 |
|
346 |
do_action ("ws_plugin__s2member_during_res_ops_page_during_left_sections_after_conditionals", get_defined_vars ());
|
341 |
do_action ("ws_plugin__s2member_during_res_ops_page_during_left_sections_during_conditionals", get_defined_vars ());
|
342 |
echo '</div>' . "\n";
|
343 |
|
344 |
+
if((!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ()) && c_ws_plugin__s2member_utils_conds::pro_is_installed())
|
345 |
+
{
|
346 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
347 |
+
|
348 |
+
echo '<h3>Arbitrary PHP Code via <code>[s2If php=""]</code></h3>' . "\n";
|
349 |
+
echo '<p>By default, the <code>[s2If]</code> Shortcode is limited to a specific set of Conditional Tags provided by WordPress and the s2Member plugin; e.g. <code>[s2If current_user_can(access_s2member_level1)]</code>; as one quick example. Arbitrary PHP code is NOT allowed with this syntax.</p>'."\n";
|
350 |
+
echo '<p>However, a second syntax variation exists; where it IS possible to use arbitrary PHP code (but only if enabled below). The second syntax variation uses one <code>php</code> Shortcode Attribute to run your conditional check; e.g. <code>[s2If php="current_user_can(\'access_s2member_level1\')"]</code>. For developers, this has some obvious advantages. The code inside the <code>php</code> attribute is evaluated at runtime, so it\'s possible to accomplish more when necessary. Of course, you could also use a plugin like <a href="https://www.s2member.com/kb/ezphp-plugin/" target="_blank" rel="external">ezPHP</a> to accomplish the same thing (if you prefer).</p>' . "\n";
|
351 |
+
|
352 |
+
echo '<table class="form-table">' . "\n";
|
353 |
+
echo '<tbody>' . "\n";
|
354 |
+
echo '<tr>' . "\n";
|
355 |
+
|
356 |
+
echo '<th>' . "\n";
|
357 |
+
echo '<label for="ws-plugin--s2member-sc-conds-allow-arbitrary-php">' . "\n";
|
358 |
+
echo 'Allow Arbitrary PHP Code via the <code>[s2If php=""]</code> Attribute?' . "\n";
|
359 |
+
echo '</label>' . "\n";
|
360 |
+
echo '</th>' . "\n";
|
361 |
+
|
362 |
+
echo '</tr>' . "\n";
|
363 |
+
echo '<tr>' . "\n";
|
364 |
+
|
365 |
+
echo '<td>' . "\n";
|
366 |
+
echo '<select name="ws_plugin__s2member_sc_conds_allow_arbitrary_php" id="ws-plugin--s2member-sc-conds-allow-arbitrary-php">' . "\n";
|
367 |
+
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sc_conds_allow_arbitrary_php"]) ? ' selected="selected"' : '') . '>No (recommended for best security; e.g. on sites with multiple authors/editors)</option>' . "\n";
|
368 |
+
echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sc_conds_allow_arbitrary_php"]) ? ' selected="selected"' : '') . '>Yes (allow me to use PHP via the [s2If php=""][/s2If] shortcode)</option>' . "\n";
|
369 |
+
echo '</select>' . "\n";
|
370 |
+
echo '</td>' . "\n";
|
371 |
+
|
372 |
+
echo '</tr>' . "\n";
|
373 |
+
echo '</tbody>' . "\n";
|
374 |
+
echo '</table>' . "\n";
|
375 |
+
}
|
376 |
echo '</div>' . "\n";
|
377 |
|
378 |
do_action ("ws_plugin__s2member_during_res_ops_page_during_left_sections_after_conditionals", get_defined_vars ());
|
includes/menu-pages/scripting.inc.php
CHANGED
@@ -13,6 +13,8 @@
|
|
13 |
*
|
14 |
* @package s2Member\Menu_Pages
|
15 |
* @since 3.0
|
|
|
|
|
16 |
*/
|
17 |
if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
18 |
exit ("Do not access this file directly.");
|
@@ -82,27 +84,40 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
82 |
|
83 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
84 |
|
85 |
-
echo '<p><strong>Example #2:</strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-can-full-access-farm.x-php")) . '</p>' . "\n";
|
87 |
|
88 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
89 |
|
90 |
-
echo '<p><strong>Example #
|
91 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content-farm.x-php")) . '</p>' . "\n";
|
92 |
|
93 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
94 |
|
95 |
-
echo '<p><strong>Example #
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-1-farm.x-php")) . '</p>' . "\n";
|
97 |
|
98 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
99 |
|
100 |
-
echo '<p><strong>Example #
|
101 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-2-farm.x-php")) . '</p>' . "\n";
|
102 |
|
103 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
104 |
|
105 |
-
echo '<p><strong>Example #
|
106 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-3-farm.x-php")) . '</p>' . "\n";
|
107 |
|
108 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
@@ -121,8 +136,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
121 |
|
122 |
echo '<p><em><strong>Implementing AND/OR Conditional expressions:</strong></em></p>' . "\n";
|
123 |
echo '<p><em>*Tip: do NOT mix AND/OR expressions.<br /> <strong class="ws-menu-page-error-hilite">BAD</strong> <code>is_user_logged_in() AND is_page(1) OR is_page(2)</code><br />- use one or the other; do NOT mix AND/OR together.</em></p>' . "\n";
|
124 |
-
echo '<p><em><strong class="ws-menu-page-hilite">If you need to have both types of logic, use nesting
|
125 |
-
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting.x-php")) . '</p>' . "\n";
|
|
|
|
|
|
|
126 |
echo '</div>' . "\n";
|
127 |
|
128 |
echo '</div>' . "\n";
|
@@ -150,27 +168,40 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
150 |
|
151 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
152 |
|
153 |
-
echo '<p><strong>Example #2:</strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-can-full-access.x-php")) . '</p>' . "\n";
|
155 |
|
156 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
157 |
|
158 |
-
echo '<p><strong>Example #
|
159 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content.x-php")) . '</p>' . "\n";
|
160 |
|
161 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
162 |
|
163 |
-
echo '<p><strong>Example #
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-1.x-php")) . '</p>' . "\n";
|
165 |
|
166 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
167 |
|
168 |
-
echo '<p><strong>Example #
|
169 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-2.x-php")) . '</p>' . "\n";
|
170 |
|
171 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
172 |
|
173 |
-
echo '<p><strong>Example #
|
174 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-3.x-php")) . '</p>' . "\n";
|
175 |
|
176 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
@@ -189,8 +220,11 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
189 |
|
190 |
echo '<p><em><strong>Implementing AND/OR Conditional expressions:</strong></em></p>' . "\n";
|
191 |
echo '<p><em>*Tip: do NOT mix AND/OR expressions.<br /> <strong class="ws-menu-page-error-hilite">BAD</strong> <code>is_user_logged_in() AND is_page(1) OR is_page(2)</code><br />- use one or the other; do NOT mix AND/OR together.</em></p>' . "\n";
|
192 |
-
echo '<p><em><strong class="ws-menu-page-hilite">If you need to have both types of logic, use nesting
|
193 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting.x-php")) . '</p>' . "\n";
|
|
|
|
|
|
|
194 |
echo '</div>' . "\n";
|
195 |
|
196 |
echo '</div>' . "\n";
|
@@ -427,6 +461,12 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
427 |
|
428 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
429 |
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
echo '<p><strong>To drip content using <code>S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS</code>:</strong></p>' . "\n";
|
431 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-paid-registration-days-dripping.x-php")) . '</p>' . "\n";
|
432 |
|
@@ -435,7 +475,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_scripting"))
|
|
435 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
436 |
|
437 |
echo '<h3>Very Advanced Content Dripping (some PHP required)</h3>' . "\n";
|
438 |
-
echo '<p>If you plan on dripping content in VERY advanced ways, you can tap into s2Member\'s recorded history of all Paid Registration Times. (i.e. <code>' . esc_html ('<?php $time = s2member_paid_registration_time("level1"); ?>') . '</code>) will give you a timestamp at which a Member first paid for Level#1 access. If they\'ve never paid for Level#1 access, the function will return 0. s2Member keeps a recorded history of timestamps associated with each Level that a Member gains access to, throughout the lifetime of their account
|
439 |
echo '<p><strong>Here is the function documentation for PHP/WordPress developers:</strong></p>' . "\n";
|
440 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/s2member-paid-registration-time.x-php")) . '</p>' . "\n";
|
441 |
echo '<p><strong>Here are some actual examples that should give you some ideas:</strong></p>' . "\n";
|
13 |
*
|
14 |
* @package s2Member\Menu_Pages
|
15 |
* @since 3.0
|
16 |
+
*
|
17 |
+
* @TODO Shortcode equivalents using [else] syntax.
|
18 |
*/
|
19 |
if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
20 |
exit ("Do not access this file directly.");
|
84 |
|
85 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
86 |
|
87 |
+
echo '<p><strong>Example #2:</strong> The same as example #1, but this uses <code>[else]</code> syntax.</strong></p>' . "\n";
|
88 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
89 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-is-user-logged-in-else-farm.x-php")) . '</p>' . "\n";
|
90 |
+
|
91 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
92 |
+
|
93 |
+
echo '<p><strong>Example #3:</strong> Full access for any Member with a Level >= 1; also using <code>[else]</code> syntax.</strong></p>' . "\n";
|
94 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
95 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-can-full-access-farm.x-php")) . '</p>' . "\n";
|
96 |
|
97 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
98 |
|
99 |
+
echo '<p><strong>Example #4:</strong> Specific content for each different Member Level.</strong></p>' . "\n";
|
100 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content-farm.x-php")) . '</p>' . "\n";
|
101 |
|
102 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
103 |
|
104 |
+
echo '<p><strong>Example #5:</strong> The same as example #4, but this uses <code>[else]</code> syntax & nesting.</strong></p>' . "\n";
|
105 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
106 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content-else-farm.x-php")) . '</p>' . "\n";
|
107 |
+
|
108 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
109 |
+
|
110 |
+
echo '<p><strong>Example #6:</strong> Simple Conditionals w/ integrated use of [s2Get /].</strong></p>' . "\n";
|
111 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-1-farm.x-php")) . '</p>' . "\n";
|
112 |
|
113 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
114 |
|
115 |
+
echo '<p><strong>Example #7:</strong> Using multiple Conditionals together; also nesting other Shortcodes.</strong></p>' . "\n";
|
116 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-2-farm.x-php")) . '</p>' . "\n";
|
117 |
|
118 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
119 |
|
120 |
+
echo '<p><strong>Example #8:</strong> Using multiple Conditionals together; also nesting Conditionals.</strong></p>' . "\n";
|
121 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-3-farm.x-php")) . '</p>' . "\n";
|
122 |
|
123 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
136 |
|
137 |
echo '<p><em><strong>Implementing AND/OR Conditional expressions:</strong></em></p>' . "\n";
|
138 |
echo '<p><em>*Tip: do NOT mix AND/OR expressions.<br /> <strong class="ws-menu-page-error-hilite">BAD</strong> <code>is_user_logged_in() AND is_page(1) OR is_page(2)</code><br />- use one or the other; do NOT mix AND/OR together.</em></p>' . "\n";
|
139 |
+
echo '<p><em><strong class="ws-menu-page-hilite">If you need to have both types of logic, use nesting...</strong></em></p>' . "\n";
|
140 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting-farm.x-php")) . '</p>' . "\n";
|
141 |
+
echo '<p><em><strong class="ws-menu-page-hilite">Another example, if you use <code>[else]</code> when nesting...</strong></em></p>' . "\n";
|
142 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
143 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting-else-farm.x-php")) . '</p>' . "\n";
|
144 |
echo '</div>' . "\n";
|
145 |
|
146 |
echo '</div>' . "\n";
|
168 |
|
169 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
170 |
|
171 |
+
echo '<p><strong>Example #2:</strong> The same as example #1, but this uses <code>[else]</code> syntax.</strong></p>' . "\n";
|
172 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
173 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-is-user-logged-in-else.x-php")) . '</p>' . "\n";
|
174 |
+
|
175 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
176 |
+
|
177 |
+
echo '<p><strong>Example #3:</strong> Full access for any Member with a Level >= 1; also using <code>[else]</code> syntax.</strong></p>' . "\n";
|
178 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
179 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-can-full-access.x-php")) . '</p>' . "\n";
|
180 |
|
181 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
182 |
|
183 |
+
echo '<p><strong>Example #4:</strong> Specific content for each different Member Level.</strong></p>' . "\n";
|
184 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content.x-php")) . '</p>' . "\n";
|
185 |
|
186 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
187 |
|
188 |
+
echo '<p><strong>Example #5:</strong> The same as example #4, but this uses <code>[else]</code> syntax & nesting.</strong></p>' . "\n";
|
189 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
190 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-current-user-is-specific-content-else.x-php")) . '</p>' . "\n";
|
191 |
+
|
192 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
193 |
+
|
194 |
+
echo '<p><strong>Example #6:</strong> Simple Conditionals w/ integrated use of [s2Get /].</strong></p>' . "\n";
|
195 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-1.x-php")) . '</p>' . "\n";
|
196 |
|
197 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
198 |
|
199 |
+
echo '<p><strong>Example #7:</strong> Using multiple Conditionals together; also nesting other Shortcodes.</strong></p>' . "\n";
|
200 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-2.x-php")) . '</p>' . "\n";
|
201 |
|
202 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
203 |
|
204 |
+
echo '<p><strong>Example #8:</strong> Using multiple Conditionals together; also nesting Conditionals.</strong></p>' . "\n";
|
205 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-supplements-3.x-php")) . '</p>' . "\n";
|
206 |
|
207 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
220 |
|
221 |
echo '<p><em><strong>Implementing AND/OR Conditional expressions:</strong></em></p>' . "\n";
|
222 |
echo '<p><em>*Tip: do NOT mix AND/OR expressions.<br /> <strong class="ws-menu-page-error-hilite">BAD</strong> <code>is_user_logged_in() AND is_page(1) OR is_page(2)</code><br />- use one or the other; do NOT mix AND/OR together.</em></p>' . "\n";
|
223 |
+
echo '<p><em><strong class="ws-menu-page-hilite">If you need to have both types of logic, use nesting...</strong></em></p>' . "\n";
|
224 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting.x-php")) . '</p>' . "\n";
|
225 |
+
echo '<p><em><strong class="ws-menu-page-hilite">Another example, if you use <code>[else]</code> when nesting...</strong></em></p>' . "\n";
|
226 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[else]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
227 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/sc-s2-conditional-nesting-else.x-php")) . '</p>' . "\n";
|
228 |
echo '</div>' . "\n";
|
229 |
|
230 |
echo '</div>' . "\n";
|
461 |
|
462 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
463 |
|
464 |
+
echo '<p><strong>A very simple way to drip content; via the <code>[s2Drip]</code> Shortcode:</strong></p>' . "\n";
|
465 |
+
if(!c_ws_plugin__s2member_utils_conds::pro_is_installed()) echo '<p><em><strong class="ws-menu-page-hilite">NOTE: the use of <code>[s2Drip]</code> requires s2Member Pro.</strong></em></p>' . "\n";
|
466 |
+
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/s2drip-example1.x-php")) . '</p>' . "\n";
|
467 |
+
|
468 |
+
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
469 |
+
|
470 |
echo '<p><strong>To drip content using <code>S2MEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS</code>:</strong></p>' . "\n";
|
471 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/current-user-paid-registration-days-dripping.x-php")) . '</p>' . "\n";
|
472 |
|
475 |
echo '<div class="ws-menu-page-hr"></div>' . "\n";
|
476 |
|
477 |
echo '<h3>Very Advanced Content Dripping (some PHP required)</h3>' . "\n";
|
478 |
+
echo '<p>If you plan on dripping content in VERY advanced ways, you can tap into s2Member\'s recorded history of all Paid Registration Times. (i.e. <code>' . esc_html ('<?php $time = s2member_paid_registration_time("level1"); ?>') . '</code>) will give you a timestamp at which a Member first paid for Level#1 access. If they\'ve never paid for Level#1 access, the function will return 0. s2Member keeps a recorded history of timestamps associated with each Level that a Member gains access to, throughout the lifetime of their account.</p>' . "\n";
|
479 |
echo '<p><strong>Here is the function documentation for PHP/WordPress developers:</strong></p>' . "\n";
|
480 |
echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/s2member-paid-registration-time.x-php")) . '</p>' . "\n";
|
481 |
echo '<p><strong>Here are some actual examples that should give you some ideas:</strong></p>' . "\n";
|
includes/syscon.inc.php
CHANGED
@@ -130,6 +130,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
130 |
$default_options["gateway_debug_logs_extensive"] = "0";
|
131 |
|
132 |
$default_options["lazy_load_css_js"] = "0";
|
|
|
133 |
|
134 |
$default_options["sec_encryption_key"] = "";
|
135 |
$default_options["sec_encryption_key_history"] = array();
|
@@ -167,7 +168,8 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
167 |
$default_options["mms_auto_patch"] = "1";
|
168 |
$default_options["mms_registration_file"] = "wp-login";
|
169 |
$default_options["mms_registration_grants"] = "none";
|
170 |
-
for($n = 0, $v = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++, $v = $v + 5)
|
|
|
171 |
|
172 |
$default_options["login_welcome_page"] = "";
|
173 |
$default_options["login_redirection_override"] = "";
|
@@ -246,10 +248,16 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
246 |
$default_options["sp_email_message"] = sprintf(_x("Thanks %%%%first_name%%%%!\n\n%%%%item_name%%%%\n\nYour order can be retrieved here:\n%%%%sp_access_url%%%%\n(link expires in %%%%sp_access_exp%%%%)\n\nIf you have any trouble, please feel free to contact us.\n\nBest Regards,\n%s", "s2member-front", "s2member"), get_bloginfo("name"));
|
247 |
|
248 |
$default_options["mailchimp_api_key"] = "";
|
|
|
249 |
|
250 |
-
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
|
|
|
|
|
|
|
|
251 |
|
252 |
-
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
|
|
253 |
|
254 |
$default_options["signup_notification_urls"] = "";
|
255 |
$default_options["registration_notification_urls"] = "";
|
@@ -282,6 +290,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
282 |
$default_options["file_download_limit_exceeded_page"] = "";
|
283 |
$default_options["file_download_inline_extensions"] = "";
|
284 |
$default_options["file_download_stream_extensions"] = "";
|
|
|
285 |
|
286 |
$default_options["amazon_s3_files_bucket"] = "";
|
287 |
$default_options["amazon_s3_files_access_key"] = "";
|
@@ -312,7 +321,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
312 |
|
313 |
$default_options["specific_ids"] = "";
|
314 |
|
315 |
-
$default_options["triggers_immediate_eot"] = "refunds,reversals";
|
316 |
$default_options["membership_eot_behavior"] = "demote";
|
317 |
$default_options["eot_time_ext_behavior"] = "extend";
|
318 |
$default_options["auto_eot_system_enabled"] = "1";
|
@@ -354,6 +363,9 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
|
|
354 |
else if($key === "lazy_load_css_js" && (!is_string($value) || !is_numeric($value)))
|
355 |
$value = $default_options[$key];
|
356 |
|
|
|
|
|
|
|
357 |
else if($key === "sec_encryption_key" && (!is_string($value) || !strlen($value)))
|
358 |
$value = $default_options[$key];
|
359 |
|
130 |
$default_options["gateway_debug_logs_extensive"] = "0";
|
131 |
|
132 |
$default_options["lazy_load_css_js"] = "0";
|
133 |
+
$default_options["sc_conds_allow_arbitrary_php"] = "0";
|
134 |
|
135 |
$default_options["sec_encryption_key"] = "";
|
136 |
$default_options["sec_encryption_key_history"] = array();
|
168 |
$default_options["mms_auto_patch"] = "1";
|
169 |
$default_options["mms_registration_file"] = "wp-login";
|
170 |
$default_options["mms_registration_grants"] = "none";
|
171 |
+
for($n = 0, $v = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++, $v = $v + 5)
|
172 |
+
$default_options["mms_registration_blogs_level".$n] = (string)$v;
|
173 |
|
174 |
$default_options["login_welcome_page"] = "";
|
175 |
$default_options["login_redirection_override"] = "";
|
248 |
$default_options["sp_email_message"] = sprintf(_x("Thanks %%%%first_name%%%%!\n\n%%%%item_name%%%%\n\nYour order can be retrieved here:\n%%%%sp_access_url%%%%\n(link expires in %%%%sp_access_exp%%%%)\n\nIf you have any trouble, please feel free to contact us.\n\nBest Regards,\n%s", "s2member-front", "s2member"), get_bloginfo("name"));
|
249 |
|
250 |
$default_options["mailchimp_api_key"] = "";
|
251 |
+
$default_options["getresponse_api_key"] = "";
|
252 |
|
253 |
+
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
254 |
+
$default_options["level".$n."_mailchimp_list_ids"] = "";
|
255 |
+
|
256 |
+
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
257 |
+
$default_options["level".$n."_getresponse_list_ids"] = "";
|
258 |
|
259 |
+
for($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
|
260 |
+
$default_options["level".$n."_aweber_list_ids"] = "";
|
261 |
|
262 |
$default_options["signup_notification_urls"] = "";
|
263 |
$default_options["registration_notification_urls"] = "";
|
290 |
$default_options["file_download_limit_exceeded_page"] = "";
|
291 |
$default_options["file_download_inline_extensions"] = "";
|
292 |
$default_options["file_download_stream_extensions"] = "";
|
293 |
+
$default_options["file_download_content_encodong_none"] = "0";
|
294 |
|
295 |
$default_options["amazon_s3_files_bucket"] = "";
|
296 |
$default_options["amazon_s3_files_access_key"] = "";
|
321 |
|
322 |
$default_options["specific_ids"] = "";
|
323 |
|
324 |
+
$default_options["triggers_immediate_eot"] = "refunds,partial_refunds,reversals";
|
325 |
$default_options["membership_eot_behavior"] = "demote";
|
326 |
$default_options["eot_time_ext_behavior"] = "extend";
|
327 |
$default_options["auto_eot_system_enabled"] = "1";
|
363 |
else if($key === "lazy_load_css_js" && (!is_string($value) || !is_numeric($value)))
|
364 |
$value = $default_options[$key];
|
365 |
|
366 |
+
else if($key === "sc_conds_allow_arbitrary_php" && (!is_string($value) || !is_numeric($value)))
|
367 |
+
$value = $default_options[$key];
|
368 |
+
|
369 |
else if($key === "sec_encryption_key" && (!is_string($value) || !strlen($value)))
|
370 |
$value = $default_options[$key];
|
371 |
|
includes/templates/cfg-files/s2member-files.php
CHANGED
@@ -8,14 +8,15 @@ $ws_plugin__s2member_temp_s_base = (!empty ($base)) ? $base : c_ws_plugin__s2mem
|
|
8 |
// Do NOT use ``site`` URL. Must use the `home` URL here, because that's what WordPress uses in its own `mod_rewrite` implementation.
|
9 |
?>
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
<IfModule mod_env.c>
|
14 |
# No GZIP for script-based file downloads.
|
15 |
SetEnv no-gzip 1
|
16 |
</IfModule>
|
17 |
|
18 |
-
<IfModule
|
|
|
|
|
|
|
19 |
# Enable rewrite and configure base.
|
20 |
RewriteEngine On
|
21 |
RewriteBase <?php echo $ws_plugin__s2member_temp_s_base . "\n"; ?>
|
@@ -101,8 +102,16 @@ Options +FollowSymLinks -Indexes
|
|
101 |
RewriteRule ^(.*)$ %{ENV:s2member_file_download_wp_vdir}?s2member_file_download=%{ENV:s2member_file_download}%{ENV:s2member_file_stream}%{ENV:s2member_file_inline}%{ENV:s2member_file_storage}%{ENV:s2member_file_remote}%{ENV:s2member_file_ssl}%{ENV:s2member_file_download_key}%{ENV:s2member_skip_confirmation} [QSA,L]
|
102 |
</IfModule>
|
103 |
|
104 |
-
<IfModule !
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
106 |
</IfModule>
|
107 |
|
|
|
|
|
|
|
108 |
<?php unset ($ws_plugin__s2member_temp_s_base); ?>
|
8 |
// Do NOT use ``site`` URL. Must use the `home` URL here, because that's what WordPress uses in its own `mod_rewrite` implementation.
|
9 |
?>
|
10 |
|
11 |
+
<IfModule env_module>
|
|
|
|
|
12 |
# No GZIP for script-based file downloads.
|
13 |
SetEnv no-gzip 1
|
14 |
</IfModule>
|
15 |
|
16 |
+
<IfModule rewrite_module>
|
17 |
+
# Enable symlinks (required for rewrites).
|
18 |
+
Options +FollowSymLinks
|
19 |
+
|
20 |
# Enable rewrite and configure base.
|
21 |
RewriteEngine On
|
22 |
RewriteBase <?php echo $ws_plugin__s2member_temp_s_base . "\n"; ?>
|
102 |
RewriteRule ^(.*)$ %{ENV:s2member_file_download_wp_vdir}?s2member_file_download=%{ENV:s2member_file_download}%{ENV:s2member_file_stream}%{ENV:s2member_file_inline}%{ENV:s2member_file_storage}%{ENV:s2member_file_remote}%{ENV:s2member_file_ssl}%{ENV:s2member_file_download_key}%{ENV:s2member_skip_confirmation} [QSA,L]
|
103 |
</IfModule>
|
104 |
|
105 |
+
<IfModule !rewrite_module>
|
106 |
+
<IfModule authz_core_module>
|
107 |
+
Require all denied
|
108 |
+
</IfModule>
|
109 |
+
<IfModule !authz_core_module>
|
110 |
+
deny from all
|
111 |
+
</IfModule>
|
112 |
</IfModule>
|
113 |
|
114 |
+
# Disallow directory indexing here.
|
115 |
+
Options -Indexes
|
116 |
+
|
117 |
<?php unset ($ws_plugin__s2member_temp_s_base); ?>
|
includes/templates/cfg-files/s2member-logs.php
CHANGED
@@ -3,4 +3,12 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
|
|
3 |
exit("Do not access this file directly.");
|
4 |
?>
|
5 |
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
exit("Do not access this file directly.");
|
4 |
?>
|
5 |
|
6 |
+
<IfModule authz_core_module>
|
7 |
+
Require all denied
|
8 |
+
</IfModule>
|
9 |
+
<IfModule !authz_core_module>
|
10 |
+
deny from all
|
11 |
+
</IfModule>
|
12 |
+
|
13 |
+
# Disallow directory indexing here.
|
14 |
+
Options -Indexes
|
includes/translations/s2member.pot
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
# Copyright (C) 2014
|
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: 2014-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -17,8 +17,8 @@ msgctxt "s2member-front"
|
|
17 |
msgid "Max failed logins. Please wait %s and try again."
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
21 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
22 |
#: s2member/includes/classes/profile-in.inc.php:120
|
23 |
#: s2member/includes/classes/sc-profile-in.inc.php:136
|
24 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:66
|
@@ -31,8 +31,8 @@ msgctxt "s2member-front"
|
|
31 |
msgid "First Name"
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
35 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
36 |
#: s2member/includes/classes/profile-in.inc.php:140
|
37 |
#: s2member/includes/classes/sc-profile-in.inc.php:156
|
38 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:72
|
@@ -45,8 +45,8 @@ msgctxt "s2member-front"
|
|
45 |
msgid "Last Name"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
49 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
50 |
#: s2member/includes/classes/profile-in.inc.php:233
|
51 |
#: s2member/includes/classes/profile-in.inc.php:239
|
52 |
#: s2member/includes/classes/sc-profile-in.inc.php:249
|
@@ -55,12 +55,12 @@ msgctxt "s2member-front"
|
|
55 |
msgid "Please type your Password twice to confirm."
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
59 |
msgctxt "s2member-front"
|
60 |
msgid "Password (please type it twice)"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: s2member/includes/classes/custom-reg-fields.inc.php:
|
64 |
#: s2member/includes/classes/profile-in.inc.php:243
|
65 |
#: s2member/includes/classes/sc-profile-in.inc.php:259
|
66 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:94
|
@@ -77,39 +77,37 @@ msgid "as a Member"
|
|
77 |
msgstr ""
|
78 |
|
79 |
#: s2member/includes/classes/files-in.inc.php:108
|
80 |
-
#: s2member/includes/classes/files-in.inc.php:
|
81 |
msgctxt "s2member-front"
|
82 |
-
msgid ""
|
83 |
-
"<strong>404: Sorry, file not found.</strong> Please contact Support for "
|
84 |
-
"assistance."
|
85 |
msgstr ""
|
86 |
|
87 |
#: s2member/includes/classes/files-in.inc.php:121
|
88 |
msgctxt "s2member-front"
|
89 |
-
msgid ""
|
90 |
-
"<strong>503 (Invalid Key):</strong> Sorry, your access to this file has "
|
91 |
-
"expired. Please contact Support for assistance."
|
92 |
msgstr ""
|
93 |
|
94 |
#: s2member/includes/classes/files-in.inc.php:144
|
95 |
msgctxt "s2member-front"
|
96 |
-
msgid ""
|
97 |
-
|
98 |
-
|
99 |
-
|
|
|
|
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: s2member/includes/classes/files-in.inc.php:
|
103 |
msgctxt "s2member-front"
|
104 |
msgid "<strong>503: Access denied.</strong> Invalid File Download specs."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: s2member/includes/classes/files-in.inc.php:
|
108 |
msgctxt "s2member-front"
|
109 |
msgid "Members Only"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: s2member/includes/classes/files-in.inc.php:
|
113 |
msgctxt "s2member-front"
|
114 |
msgid "<strong>401:</strong> Sorry, access denied."
|
115 |
msgstr ""
|
@@ -117,26 +115,25 @@ msgstr ""
|
|
117 |
#. translators: In this translation, `%s` may be filled with an English
|
118 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
119 |
#. if you like.
|
120 |
-
#: s2member/includes/classes/files-in.inc.php:
|
121 |
msgctxt "s2member-admin"
|
122 |
msgid "Unable to update existing Amazon S3 Cross-Domain Policy. %s"
|
123 |
msgstr ""
|
124 |
|
125 |
-
#: s2member/includes/classes/files-in.inc.php:
|
126 |
msgctxt "s2member-admin"
|
127 |
-
msgid ""
|
128 |
-
"Unable to update existing Amazon S3 Cross-Domain Policy. Connection failed."
|
129 |
msgstr ""
|
130 |
|
131 |
#. translators: In this translation, `%s` may be filled with an English
|
132 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
133 |
#. if you like.
|
134 |
-
#: s2member/includes/classes/files-in.inc.php:
|
135 |
msgctxt "s2member-admin"
|
136 |
msgid "Unable to update existing Amazon S3 Bucket Policy. %s"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: s2member/includes/classes/files-in.inc.php:
|
140 |
msgctxt "s2member-admin"
|
141 |
msgid "Unable to update existing Amazon S3 Bucket Policy. Connection failed."
|
142 |
msgstr ""
|
@@ -144,81 +141,61 @@ msgstr ""
|
|
144 |
#. translators: In this translation, `%s` may be filled with an English
|
145 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
146 |
#. if you like.
|
147 |
-
#: s2member/includes/classes/files-in.inc.php:
|
148 |
msgctxt "s2member-admin"
|
149 |
msgid "Unable to update existing Amazon S3 Bucket ACLs. %s"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: s2member/includes/classes/files-in.inc.php:
|
153 |
msgctxt "s2member-admin"
|
154 |
msgid "Unable to update existing Amazon S3 Bucket ACLs. Connection failed."
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: s2member/includes/classes/files-in.inc.php:
|
158 |
msgctxt "s2member-admin"
|
159 |
-
msgid ""
|
160 |
-
"Unable to acquire/read existing Amazon S3 Bucket ACLs. Unexpected response."
|
161 |
msgstr ""
|
162 |
|
163 |
#. translators: In this translation, `%s` may be filled with an English
|
164 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
165 |
#. if you like.
|
166 |
-
#: s2member/includes/classes/files-in.inc.php:
|
167 |
msgctxt "s2member-admin"
|
168 |
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. %s"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: s2member/includes/classes/files-in.inc.php:
|
172 |
msgctxt "s2member-admin"
|
173 |
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. Connection failed."
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: s2member/includes/classes/files-in.inc.php:
|
177 |
msgctxt "s2member-admin"
|
178 |
-
msgid ""
|
179 |
-
"Unable to auto-configure existing Amazon S3 Bucket ACLs. Incomplete Amazon "
|
180 |
-
"S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or "
|
181 |
-
"Secret Key."
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: s2member/includes/classes/files-in.inc.php:
|
185 |
msgctxt "s2member-admin"
|
186 |
-
msgid ""
|
187 |
-
"Unable to delete existing Amazon CloudFront Downloads Distro. Still in a "
|
188 |
-
"`pending` state. Please wait 15 minutes, then try again. There is a certain "
|
189 |
-
"process that s2Member must strictly adhere to when re-configuring your "
|
190 |
-
"Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
|
191 |
-
"again, and re-run s2Member's auto-configuration routine many times, because "
|
192 |
-
"s2Member will likely run into several `pending` challenges, as it works to "
|
193 |
-
"completely re-configure your Amazon CloudFront Distros for you. Thanks for "
|
194 |
-
"your patience. Please wait 15 minutes, then try again."
|
195 |
msgstr ""
|
196 |
|
197 |
#. translators: In this translation, `%s` may be filled with an English
|
198 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
199 |
#. exclude `%s` if you like.
|
200 |
-
#: s2member/includes/classes/files-in.inc.php:
|
201 |
msgctxt "s2member-admin"
|
202 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. %s"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: s2member/includes/classes/files-in.inc.php:
|
206 |
msgctxt "s2member-admin"
|
207 |
-
msgid ""
|
208 |
-
"Unable to delete existing Amazon CloudFront Streaming Distro. Still in a "
|
209 |
-
"`pending` state. Please wait 15 minutes, then try again. There is a certain "
|
210 |
-
"process that s2Member must strictly adhere to when re-configuring your "
|
211 |
-
"Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
|
212 |
-
"again, and re-run s2Member's auto-configuration routine many times, because "
|
213 |
-
"s2Member will likely run into several `pending` challenges, as it works to "
|
214 |
-
"completely re-configure your Amazon CloudFront Distros for you. Thanks for "
|
215 |
-
"your patience. Please wait 15 minutes, then try again."
|
216 |
msgstr ""
|
217 |
|
218 |
#. translators: In this translation, `%s` may be filled with an English
|
219 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
220 |
#. exclude `%s` if you like.
|
221 |
-
#: s2member/includes/classes/files-in.inc.php:
|
222 |
msgctxt "s2member-admin"
|
223 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
|
224 |
msgstr ""
|
@@ -226,8 +203,8 @@ msgstr ""
|
|
226 |
#. translators: In this translation, `%s` may be filled with an English
|
227 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
228 |
#. exclude `%s` if you like.
|
229 |
-
#: s2member/includes/classes/files-in.inc.php:
|
230 |
-
#: s2member/includes/classes/files-in.inc.php:
|
231 |
msgctxt "s2member-admin"
|
232 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
|
233 |
msgstr ""
|
@@ -235,12 +212,12 @@ msgstr ""
|
|
235 |
#. translators: In this translation, `%s` may be filled with an English
|
236 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
237 |
#. if you like.
|
238 |
-
#: s2member/includes/classes/files-in.inc.php:
|
239 |
msgctxt "s2member-admin"
|
240 |
msgid "Unable to update existing Amazon S3 ACLs. %s"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: s2member/includes/classes/files-in.inc.php:
|
244 |
msgctxt "s2member-admin"
|
245 |
msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
|
246 |
msgstr ""
|
@@ -248,14 +225,14 @@ msgstr ""
|
|
248 |
#. translators: In this translation, `%s` may be filled with an English
|
249 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
250 |
#. exclude `%s` if you like.
|
251 |
-
#: s2member/includes/classes/files-in.inc.php:
|
252 |
-
#: s2member/includes/classes/files-in.inc.php:
|
253 |
msgctxt "s2member-admin"
|
254 |
msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
|
255 |
msgstr ""
|
256 |
|
257 |
-
#: s2member/includes/classes/files-in.inc.php:
|
258 |
-
#: s2member/includes/classes/files-in.inc.php:
|
259 |
msgctxt "s2member-admin"
|
260 |
msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
|
261 |
msgstr ""
|
@@ -263,14 +240,14 @@ msgstr ""
|
|
263 |
#. translators: In this translation, `%s` may be filled with an English
|
264 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
265 |
#. exclude `%s` if you like.
|
266 |
-
#: s2member/includes/classes/files-in.inc.php:
|
267 |
-
#: s2member/includes/classes/files-in.inc.php:
|
268 |
msgctxt "s2member-admin"
|
269 |
msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
|
270 |
msgstr ""
|
271 |
|
272 |
-
#: s2member/includes/classes/files-in.inc.php:
|
273 |
-
#: s2member/includes/classes/files-in.inc.php:
|
274 |
msgctxt "s2member-admin"
|
275 |
msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
|
276 |
msgstr ""
|
@@ -278,20 +255,19 @@ msgstr ""
|
|
278 |
#. translators: In this translation, `%s` may be filled with an English
|
279 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
280 |
#. exclude `%s` if you like.
|
281 |
-
#: s2member/includes/classes/files-in.inc.php:
|
282 |
-
#: s2member/includes/classes/files-in.inc.php:
|
283 |
msgctxt "s2member-admin"
|
284 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: s2member/includes/classes/files-in.inc.php:
|
288 |
-
#: s2member/includes/classes/files-in.inc.php:
|
289 |
msgctxt "s2member-admin"
|
290 |
-
msgid ""
|
291 |
-
"Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: s2member/includes/classes/files-in.inc.php:
|
295 |
msgctxt "s2member-admin"
|
296 |
msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
|
297 |
msgstr ""
|
@@ -299,21 +275,19 @@ msgstr ""
|
|
299 |
#. translators: In this translation, `%s` may be filled with an English
|
300 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
301 |
#. exclude `%s` if you like.
|
302 |
-
#: s2member/includes/classes/files-in.inc.php:
|
303 |
-
#: s2member/includes/classes/files-in.inc.php:
|
304 |
msgctxt "s2member-admin"
|
305 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: s2member/includes/classes/files-in.inc.php:
|
309 |
-
#: s2member/includes/classes/files-in.inc.php:
|
310 |
msgctxt "s2member-admin"
|
311 |
-
msgid ""
|
312 |
-
"Unable to acquire existing Amazon CloudFront Origin Access Identity. "
|
313 |
-
"Connection failed."
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: s2member/includes/classes/files-in.inc.php:
|
317 |
msgctxt "s2member-admin"
|
318 |
msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
|
319 |
msgstr ""
|
@@ -321,19 +295,17 @@ msgstr ""
|
|
321 |
#. translators: In this translation, `%s` may be filled with an English
|
322 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
323 |
#. exclude `%s` if you like.
|
324 |
-
#: s2member/includes/classes/files-in.inc.php:
|
325 |
msgctxt "s2member-admin"
|
326 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: s2member/includes/classes/files-in.inc.php:
|
330 |
msgctxt "s2member-admin"
|
331 |
-
msgid ""
|
332 |
-
"Unable to acquire existing Amazon CloudFront Streaming Distro. Connection "
|
333 |
-
"failed."
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: s2member/includes/classes/files-in.inc.php:
|
337 |
msgctxt "s2member-admin"
|
338 |
msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
|
339 |
msgstr ""
|
@@ -341,82 +313,65 @@ msgstr ""
|
|
341 |
#. translators: In this translation, `%s` may be filled with an English
|
342 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
343 |
#. exclude `%s` if you like.
|
344 |
-
#: s2member/includes/classes/files-in.inc.php:
|
345 |
msgctxt "s2member-admin"
|
346 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: s2member/includes/classes/files-in.inc.php:
|
350 |
msgctxt "s2member-admin"
|
351 |
-
msgid ""
|
352 |
-
"Unable to acquire existing Amazon CloudFront Downloads Distro. Connection "
|
353 |
-
"failed."
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: s2member/includes/classes/files-in.inc.php:
|
357 |
msgctxt "s2member-admin"
|
358 |
-
msgid ""
|
359 |
-
"Unable to auto-configure Amazon CloudFront Distros. Incomplete Amazon "
|
360 |
-
"CloudFront configuration options. Missing of one: Amazon CloudFront Private "
|
361 |
-
"Key-Pair-ID, or Private Key file contents."
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: s2member/includes/classes/files-in.inc.php:
|
365 |
msgctxt "s2member-admin"
|
366 |
-
msgid ""
|
367 |
-
"Unable to auto-configure Amazon S3/CloudFront Distros. Incomplete Amazon S3 "
|
368 |
-
"configuration options. Missing one of: Amazon S3 Bucket, Access Key, or "
|
369 |
-
"Secret Key. You must provide s2Member with an Amazon S3 configuration before "
|
370 |
-
"enabling CloudFront."
|
371 |
msgstr ""
|
372 |
|
373 |
#. translators: In this translation, `%s` may be filled with an English
|
374 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
375 |
#. exclude `%s` if you like.
|
376 |
-
#: s2member/includes/classes/files-in.inc.php:
|
377 |
msgctxt "s2member-admin"
|
378 |
msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
|
379 |
msgstr ""
|
380 |
|
381 |
-
#: s2member/includes/classes/files-in.inc.php:
|
382 |
msgctxt "s2member-admin"
|
383 |
-
msgid ""
|
384 |
-
"Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid "
|
385 |
-
"Access ID."
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: s2member/includes/classes/files-in.inc.php:
|
389 |
msgctxt "s2member-admin"
|
390 |
-
msgid ""
|
391 |
-
"Unable to delete existing Amazon CloudFront Origin Access Identity. "
|
392 |
-
"Connection failed."
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: s2member/includes/classes/files-in.inc.php:
|
396 |
msgctxt "s2member-admin"
|
397 |
-
msgid ""
|
398 |
-
"Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid "
|
399 |
-
"Access ID, ETag, or XML config."
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: s2member/includes/classes/files-in.inc.php:
|
403 |
-
#: s2member/includes/classes/files-in.inc.php:
|
404 |
-
#: s2member/includes/classes/files-in.inc.php:
|
405 |
msgctxt "s2member-admin"
|
406 |
msgid "Created by s2Member, for S3 Bucket: %s."
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: s2member/includes/classes/files-in.inc.php:
|
410 |
msgctxt "s2member-admin"
|
411 |
-
msgid ""
|
412 |
-
"Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected "
|
413 |
-
"response."
|
414 |
msgstr ""
|
415 |
|
416 |
#. translators: In this translation, `%s` may be filled with an English
|
417 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
418 |
#. exclude `%s` if you like.
|
419 |
-
#: s2member/includes/classes/files-in.inc.php:
|
420 |
msgctxt "s2member-admin"
|
421 |
msgid "Existing Amazon CloudFront Distro NOT found. %s"
|
422 |
msgstr ""
|
@@ -424,67 +379,55 @@ msgstr ""
|
|
424 |
#. translators: In this translation, `%s` may be filled with an English
|
425 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
426 |
#. exclude `%s` if you like.
|
427 |
-
#: s2member/includes/classes/files-in.inc.php:
|
428 |
msgctxt "s2member-admin"
|
429 |
msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: s2member/includes/classes/files-in.inc.php:
|
433 |
msgctxt "s2member-admin"
|
434 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: s2member/includes/classes/files-in.inc.php:
|
438 |
msgctxt "s2member-admin"
|
439 |
-
msgid ""
|
440 |
-
"Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/"
|
441 |
-
"or Distro type."
|
442 |
msgstr ""
|
443 |
|
444 |
#. translators: In this translation, `%s` may be filled with an English
|
445 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
446 |
#. exclude `%s` if you like.
|
447 |
-
#: s2member/includes/classes/files-in.inc.php:
|
448 |
-
#: s2member/includes/classes/files-in.inc.php:
|
449 |
msgctxt "s2member-admin"
|
450 |
msgid "Unable to disable existing Amazon CloudFront Distro. %s"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: s2member/includes/classes/files-in.inc.php:
|
454 |
-
#: s2member/includes/classes/files-in.inc.php:
|
455 |
msgctxt "s2member-admin"
|
456 |
msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: s2member/includes/classes/files-in.inc.php:
|
460 |
msgctxt "s2member-admin"
|
461 |
-
msgid ""
|
462 |
-
"Existing Amazon CloudFront Distro cannot be disabled at this time. Still in "
|
463 |
-
"a `pending` state. Please wait 15 minutes, then try again. There is a "
|
464 |
-
"certain process that s2Member must strictly adhere to when re-configuring "
|
465 |
-
"your Amazon CloudFront Distros. You may have to tick the auto-configure "
|
466 |
-
"checkbox again, and re-run s2Member's auto-configuration routine many times, "
|
467 |
-
"because s2Member will likely run into several `pending` challenges, as it "
|
468 |
-
"works to completely re-configure your Amazon CloudFront Distros for you. "
|
469 |
-
"Thanks for your patience. Please wait 15 minutes, then try again."
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: s2member/includes/classes/files-in.inc.php:
|
473 |
msgctxt "s2member-admin"
|
474 |
-
msgid ""
|
475 |
-
"Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, "
|
476 |
-
"ETag, or XML config."
|
477 |
msgstr ""
|
478 |
|
479 |
#. translators: In this translation, `%s` may be filled with an English
|
480 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
481 |
#. exclude `%s` if you like.
|
482 |
-
#: s2member/includes/classes/files-in.inc.php:
|
483 |
msgctxt "s2member-admin"
|
484 |
msgid "Unable to delete existing Amazon CloudFront Distro. %s"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: s2member/includes/classes/files-in.inc.php:
|
488 |
msgctxt "s2member-admin"
|
489 |
msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
|
490 |
msgstr ""
|
@@ -492,70 +435,45 @@ msgstr ""
|
|
492 |
#. translators: In this translation, `%s` may be filled with an English
|
493 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
494 |
#. exclude `%s` if you like.
|
495 |
-
#: s2member/includes/classes/files-in.inc.php:
|
496 |
msgctxt "s2member-admin"
|
497 |
-
msgid ""
|
498 |
-
"Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a "
|
499 |
-
"`pending` state after having been disabled by s2Member. Please wait 15 "
|
500 |
-
"minutes, then try again. There is a certain process that s2Member must "
|
501 |
-
"strictly adhere to when re-configuring your Amazon CloudFront Distros. You "
|
502 |
-
"may have to tick the auto-configure checkbox again, and re-run s2Member's "
|
503 |
-
"auto-configuration routine many times, because s2Member will likely run into "
|
504 |
-
"several `pending` challenges, as it works to completely re-configure your "
|
505 |
-
"Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 "
|
506 |
-
"minutes, then try again."
|
507 |
msgstr ""
|
508 |
|
509 |
#. translators: In this translation, `%s` may be filled with an English
|
510 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
511 |
#. exclude `%s` if you like.
|
512 |
-
#: s2member/includes/classes/files-in.inc.php:
|
513 |
msgctxt "s2member-admin"
|
514 |
msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: s2member/includes/classes/files-in.inc.php:
|
518 |
msgctxt "s2member-admin"
|
519 |
-
msgid ""
|
520 |
-
"Unable to check status of existing Amazon CloudFront Distro. Connection "
|
521 |
-
"failed."
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: s2member/includes/classes/files-in.inc.php:
|
525 |
msgctxt "s2member-admin"
|
526 |
-
msgid ""
|
527 |
-
"Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a "
|
528 |
-
"`pending` state. Please wait 15 minutes, then try again. There is a certain "
|
529 |
-
"process that s2Member must strictly adhere to when re-configuring your "
|
530 |
-
"Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
|
531 |
-
"again, and re-run s2Member's auto-configuration routine many times, because "
|
532 |
-
"s2Member will likely run into several `pending` challenges, as it works to "
|
533 |
-
"completely re-configure your Amazon CloudFront Distros for you. Thanks for "
|
534 |
-
"your patience. Please wait 15 minutes, then try again."
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: s2member/includes/classes/files-in.inc.php:
|
538 |
msgctxt "s2member-admin"
|
539 |
-
msgid ""
|
540 |
-
"Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or "
|
541 |
-
"ETag."
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: s2member/includes/classes/files-in.inc.php:
|
545 |
msgctxt "s2member-admin"
|
546 |
-
msgid ""
|
547 |
-
"Unable to create/read Amazon CloudFront Downloads Distro. Unexpected "
|
548 |
-
"response."
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: s2member/includes/classes/files-in.inc.php:
|
552 |
msgctxt "s2member-admin"
|
553 |
-
msgid ""
|
554 |
-
"Unable to create/read Amazon CloudFront Streaming Distro. Unexpected "
|
555 |
-
"response."
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: s2member/includes/classes/files-in.inc.php:
|
559 |
msgctxt "s2member-admin"
|
560 |
msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
|
561 |
msgstr ""
|
@@ -567,61 +485,45 @@ msgstr ""
|
|
567 |
|
568 |
#: s2member/includes/classes/login-checks.inc.php:76
|
569 |
msgctxt "s2member-front"
|
570 |
-
msgid ""
|
571 |
-
"<strong>ERROR</strong>: Max simultaneous logins for username: %1$s. Please "
|
572 |
-
"wait %2$s and try again."
|
573 |
msgstr ""
|
574 |
|
575 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
|
576 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
|
577 |
msgctxt "s2member-front"
|
578 |
-
msgid ""
|
579 |
-
"<strong>Thank you! (you MUST check your email before proceeding).</"
|
580 |
-
"strong><br /><br />* Note: It can take <em>(up to 15 minutes)</em> for Email "
|
581 |
-
"Confirmation with important details. If you don't receive email confirmation "
|
582 |
-
"in the next 15 minutes, please contact Support."
|
583 |
msgstr ""
|
584 |
|
585 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
|
586 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
|
587 |
msgctxt "s2member-front"
|
588 |
-
msgid ""
|
589 |
-
"<strong>** Sandbox Mode **</strong> You may NOT receive this Email in "
|
590 |
-
"Sandbox Mode. Sandbox addresses are usually bogus (for testing)."
|
591 |
msgstr ""
|
592 |
|
593 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:67
|
594 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:65
|
595 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
596 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
597 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
598 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
599 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
600 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
601 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:156
|
602 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:167
|
603 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:178
|
604 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:189
|
605 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:120
|
606 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:131
|
607 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
608 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
609 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
610 |
msgctxt "s2member-front"
|
611 |
msgid "Back To Home Page"
|
612 |
msgstr ""
|
613 |
|
614 |
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:64
|
615 |
msgctxt "s2member-front"
|
616 |
-
msgid ""
|
617 |
-
"<strong>Thank you! (this is a preview, no action necessary).</strong><br /"
|
618 |
-
"><br />* Note: each of your Customers are returned back to your site "
|
619 |
-
"immediately after they complete checkout. This Return Page displays a "
|
620 |
-
"message and instructions for the Customer. s2Member may change the message "
|
621 |
-
"and instructions dynamically, based on what the Customer is actually doing "
|
622 |
-
"<em>(i.e. based on the type of transaction that is taking place)</em>.<br /"
|
623 |
-
"><br /><em>* With <a href=\"%s\" target=\"_blank\">s2Member Pro</a> "
|
624 |
-
"installed, it is possible to customize this Return Page in various ways.</em>"
|
625 |
msgstr ""
|
626 |
|
627 |
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:65
|
@@ -630,59 +532,47 @@ msgctxt "s2member-front"
|
|
630 |
msgid "Continue (Click Here)"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
634 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
635 |
msgctxt "s2member-front"
|
636 |
msgid "Thank you! You've been updated to:"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
640 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
641 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:145
|
642 |
msgctxt "s2member-front"
|
643 |
msgid "Please Log Back In (Click Here)"
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
647 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
648 |
msgctxt "s2member-front"
|
649 |
-
msgid ""
|
650 |
-
"<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact "
|
651 |
-
"Support for assistance.<br /><br />The existing User ID is associated with "
|
652 |
-
"an Administrator. Stopping here. Otherwise, an Administrator could lose "
|
653 |
-
"access. Please make sure that you are NOT logged in as an Administrator "
|
654 |
-
"while testing."
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
658 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
659 |
msgctxt "s2member-front"
|
660 |
-
msgid ""
|
661 |
-
"<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact "
|
662 |
-
"Support for assistance.<br /><br />Could not get the existing User ID from "
|
663 |
-
"the DB."
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:
|
667 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
668 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:188
|
669 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:130
|
670 |
msgctxt "s2member-front"
|
671 |
-
msgid ""
|
672 |
-
"<strong>Page Expired:</strong> Duplicate Return-Data.<br />Please contact "
|
673 |
-
"Support if you need any assistance."
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
677 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
678 |
msgctxt "s2member-front"
|
679 |
-
msgid ""
|
680 |
-
"<strong>Thank you! Your account has been approved.<br />The next step is to "
|
681 |
-
"Register a Username for immediate access.</strong>"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
685 |
-
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:
|
686 |
msgctxt "s2member-front"
|
687 |
msgid "Please Register Now (Click Here)"
|
688 |
msgstr ""
|
@@ -694,27 +584,17 @@ msgstr ""
|
|
694 |
|
695 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:155
|
696 |
msgctxt "s2member-front"
|
697 |
-
msgid ""
|
698 |
-
"<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
|
699 |
-
"Support for assistance.<br /><br />The existing User ID is associated with "
|
700 |
-
"an Administrator. Stopping here. Otherwise, an Administrator could lose "
|
701 |
-
"access. Please make sure that you are NOT logged in as an Administrator "
|
702 |
-
"while testing."
|
703 |
msgstr ""
|
704 |
|
705 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:166
|
706 |
msgctxt "s2member-front"
|
707 |
-
msgid ""
|
708 |
-
"<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
|
709 |
-
"Support for assistance.<br /><br />Could not get the existing User ID from "
|
710 |
-
"the DB."
|
711 |
msgstr ""
|
712 |
|
713 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:177
|
714 |
msgctxt "s2member-front"
|
715 |
-
msgid ""
|
716 |
-
"<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
|
717 |
-
"Support for assistance.<br /><br />Missing User/Member details."
|
718 |
msgstr ""
|
719 |
|
720 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:108
|
@@ -724,48 +604,22 @@ msgstr ""
|
|
724 |
|
725 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:119
|
726 |
msgctxt "s2member-front"
|
727 |
-
msgid ""
|
728 |
-
"<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact "
|
729 |
-
"Support for assistance."
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
733 |
msgctxt "s2member-front"
|
734 |
-
msgid ""
|
735 |
-
"<strong>ERROR:</strong> Unexpected <code>txn_type/status</code>.<br />The "
|
736 |
-
"<code>txn_type/status</code> did not meet requirements.<br />Please contact "
|
737 |
-
"Support for assistance."
|
738 |
msgstr ""
|
739 |
|
740 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
741 |
msgctxt "s2member-front"
|
742 |
-
msgid ""
|
743 |
-
"<strong>ERROR:</strong> Unable to verify <code>$_SERVER[\"HTTP_HOST\"]</"
|
744 |
-
"code>.<br />Please contact Support for assistance.<br /><br />If you are the "
|
745 |
-
"site owner, please check the <code>custom</code> value in your Button Code. "
|
746 |
-
"It MUST start with your domain name."
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: s2member/includes/classes/paypal-return-in.inc.php:
|
750 |
msgctxt "s2member-front"
|
751 |
-
msgid ""
|
752 |
-
"<strong>ERROR:</strong> Unable to verify <code>$_POST</code> vars.<br /"
|
753 |
-
">Please contact Support for assistance.<br /><br />This is most likely "
|
754 |
-
"related to an invalid configuration of s2Member, or a problem with server "
|
755 |
-
"compatibility. If you are the site owner, and you're absolutely SURE that "
|
756 |
-
"your configuration is valid, you may want to run some tests on your server, "
|
757 |
-
"just to be sure <code>$_POST</code> variables are populated, and that your "
|
758 |
-
"server is able to connect/communicate with your Payment Gateway over an "
|
759 |
-
"HTTPS connection.<br /><br />s2Member uses the <code>WP_Http</code> class "
|
760 |
-
"for remote connections; which will try to use <code>cURL</code> first, and "
|
761 |
-
"then fall back on the <code>FOPEN</code> method when <code>cURL</code> is "
|
762 |
-
"not available. On a Windows server, you may have to disable your <code>cURL</"
|
763 |
-
"code> extension; and instead, set <code>allow_url_fopen = yes</code> in your "
|
764 |
-
"php.ini file. The <code>cURL</code> extension (usually) does NOT support SSL "
|
765 |
-
"connections on a Windows server.<br /><br />Please see <a href=\"http://www."
|
766 |
-
"s2member.com/forums/topic/ideal-server-configuration-for-s2member/\" target="
|
767 |
-
"\"_blank\">this thread</a> for details regarding the ideal server "
|
768 |
-
"configuration for s2Member."
|
769 |
msgstr ""
|
770 |
|
771 |
#. translators: Exclude `%2$s` and `%3$s`. These are English details returned
|
@@ -789,8 +643,7 @@ msgstr ""
|
|
789 |
#: s2member/includes/classes/paypal-utilities.inc.php:232
|
790 |
#: s2member/includes/classes/paypal-utilities.inc.php:238
|
791 |
msgctxt "s2member-front"
|
792 |
-
msgid ""
|
793 |
-
"Error #%s. Transaction declined. Please use an alternate funding source."
|
794 |
msgstr ""
|
795 |
|
796 |
#: s2member/includes/classes/paypal-utilities.inc.php:235
|
@@ -822,10 +675,7 @@ msgstr ""
|
|
822 |
|
823 |
#: s2member/includes/classes/paypal-utilities.inc.php:369
|
824 |
msgctxt "s2member-front"
|
825 |
-
msgid ""
|
826 |
-
" Please contact PayPal Merchant Technical Support (www.paypal.com/mts) and "
|
827 |
-
"request `Recurring Billing` service, and also ask to have `Reference "
|
828 |
-
"Transactions` enabled for Recurring Billing via Express Checkout."
|
829 |
msgstr ""
|
830 |
|
831 |
#: s2member/includes/classes/profile-in.inc.php:78
|
@@ -843,6 +693,8 @@ msgstr ""
|
|
843 |
|
844 |
#: s2member/includes/classes/profile-in.inc.php:98
|
845 |
#: s2member/includes/classes/sc-profile-in.inc.php:114
|
|
|
|
|
846 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:78
|
847 |
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:46
|
848 |
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:78
|
@@ -894,16 +746,12 @@ msgstr ""
|
|
894 |
#: s2member/includes/classes/register-in.inc.php:48
|
895 |
#: s2member/includes/classes/sp-access.inc.php:132
|
896 |
msgctxt "s2member-front"
|
897 |
-
msgid ""
|
898 |
-
"<strong>Your Link Expired:</strong><br />Please contact Support if you need "
|
899 |
-
"assistance."
|
900 |
msgstr ""
|
901 |
|
902 |
#: s2member/includes/classes/registrations.inc.php:450
|
903 |
msgctxt "s2member-front"
|
904 |
-
msgid ""
|
905 |
-
"s2Member security violation. You attempted to POST administrative variables "
|
906 |
-
"that will NOT be trusted in a NON-administrative zone!"
|
907 |
msgstr ""
|
908 |
|
909 |
#: s2member/includes/classes/return-templates.inc.php:50
|
@@ -923,9 +771,7 @@ msgstr ""
|
|
923 |
|
924 |
#: s2member/includes/classes/return-templates.inc.php:77
|
925 |
msgctxt "s2member-front"
|
926 |
-
msgid ""
|
927 |
-
"If you need assistance, please <a href=\"%s\" target=\"_blank\">contact "
|
928 |
-
"support</a>."
|
929 |
msgstr ""
|
930 |
|
931 |
#: s2member/includes/classes/sc-paypal-button-e.inc.php:77
|
@@ -937,6 +783,9 @@ msgstr ""
|
|
937 |
#: s2member/includes/templates/buttons/paypal-ccaps-checkout-button.php:34
|
938 |
#: s2member/includes/templates/buttons/paypal-checkout-button.php:46
|
939 |
#: s2member/includes/templates/buttons/paypal-sp-checkout-button.php:34
|
|
|
|
|
|
|
940 |
msgctxt "s2member-front paypal-button-lang-code"
|
941 |
msgid "en_US"
|
942 |
msgstr ""
|
@@ -982,17 +831,13 @@ msgstr ""
|
|
982 |
|
983 |
#: s2member/includes/classes/translations.inc.php:123
|
984 |
msgctxt "s2member-front"
|
985 |
-
msgid ""
|
986 |
-
"Your account is now active. <a href=\"%1$s\">Visit site</a> or <a href=\"%2$s"
|
987 |
-
"\">Log in</a>."
|
988 |
msgstr ""
|
989 |
|
990 |
#: s2member/includes/classes/translations.inc.php:144
|
991 |
#: s2member/includes/classes/translations.inc.php:166
|
992 |
msgctxt "s2member-front"
|
993 |
-
msgid ""
|
994 |
-
"By filling out the form below, you can <strong>add a site to your account</"
|
995 |
-
"strong>."
|
996 |
msgstr ""
|
997 |
|
998 |
#: s2member/includes/classes/translations.inc.php:144
|
@@ -1239,22 +1084,347 @@ msgid_plural "for %1$s %3$s"
|
|
1239 |
msgstr[0] ""
|
1240 |
msgstr[1] ""
|
1241 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1242 |
#: s2member/includes/syscon.inc.php:84
|
1243 |
msgctxt "s2member-front recaptcha-lang-code"
|
1244 |
msgid "en"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: s2member/includes/syscon.inc.php:
|
1248 |
msgctxt "s2member-front"
|
1249 |
msgid "Yes, I want to receive updates via email."
|
1250 |
msgstr ""
|
1251 |
|
1252 |
-
#: s2member/includes/syscon.inc.php:
|
1253 |
msgctxt "s2member-front"
|
1254 |
msgid "[%s] Username/Password"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: s2member/includes/syscon.inc.php:
|
1258 |
msgctxt "s2member-front"
|
1259 |
msgid ""
|
1260 |
"Your Username/Password for:\n"
|
@@ -1265,12 +1435,12 @@ msgid ""
|
|
1265 |
"%%%%wp_login_url%%%%"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
-
#: s2member/includes/syscon.inc.php:
|
1269 |
msgctxt "s2member-front"
|
1270 |
msgid "[%s] New User Registration"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#: s2member/includes/syscon.inc.php:
|
1274 |
msgctxt "s2member-front"
|
1275 |
msgid ""
|
1276 |
"New User Registration on your site:\n"
|
@@ -1282,13 +1452,13 @@ msgid ""
|
|
1282 |
"IP Address: %%%%user_ip%%%%"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: s2member/includes/syscon.inc.php:
|
1286 |
#: s2member-pro/includes/syscon.inc.php:94
|
1287 |
msgctxt "s2member-front"
|
1288 |
msgid "Congratulations! (your membership has been approved)"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: s2member/includes/syscon.inc.php:
|
1292 |
msgctxt "s2member-front"
|
1293 |
msgid ""
|
1294 |
"Thanks %%%%first_name%%%%! Your membership has been approved.\n"
|
@@ -1304,16 +1474,15 @@ msgid ""
|
|
1304 |
"%s"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: s2member/includes/syscon.inc.php:
|
1308 |
msgctxt "s2member-front"
|
1309 |
msgid "Thank you! Your account has been updated."
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: s2member/includes/syscon.inc.php:
|
1313 |
msgctxt "s2member-front"
|
1314 |
msgid ""
|
1315 |
-
"Thanks %%%%first_name%%%%! Your account now has access to: %%%%item_name
|
1316 |
-
"%.\n"
|
1317 |
"\n"
|
1318 |
"If you have any trouble, please feel free to contact us.\n"
|
1319 |
"\n"
|
@@ -1321,13 +1490,13 @@ msgid ""
|
|
1321 |
"%s"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: s2member/includes/syscon.inc.php:
|
1325 |
#: s2member-pro/includes/syscon.inc.php:98
|
1326 |
msgctxt "s2member-front"
|
1327 |
msgid "Thank You! (instructions for access)"
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: s2member/includes/syscon.inc.php:
|
1331 |
msgctxt "s2member-front"
|
1332 |
msgid ""
|
1333 |
"Thanks %%%%first_name%%%%!\n"
|
@@ -1344,32 +1513,32 @@ msgid ""
|
|
1344 |
"%s"
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: s2member/includes/syscon.inc.php:
|
1348 |
msgctxt "s2member-front"
|
1349 |
msgid "Free Subscriber"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: s2member/includes/syscon.inc.php:
|
1353 |
msgctxt "s2member-front"
|
1354 |
msgid "Bronze Member"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: s2member/includes/syscon.inc.php:
|
1358 |
msgctxt "s2member-front"
|
1359 |
msgid "Silver Member"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: s2member/includes/syscon.inc.php:
|
1363 |
msgctxt "s2member-front"
|
1364 |
msgid "Gold Member"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: s2member/includes/syscon.inc.php:
|
1368 |
msgctxt "s2member-front"
|
1369 |
msgid "Platinum Member"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#: s2member/includes/syscon.inc.php:
|
1373 |
msgctxt "s2member-front"
|
1374 |
msgid "Level %s Member"
|
1375 |
msgstr ""
|
@@ -1470,10 +1639,7 @@ msgstr ""
|
|
1470 |
|
1471 |
#: s2member/includes/templates/errors/ip-restrictions.php:13
|
1472 |
msgctxt "s2member-front"
|
1473 |
-
msgid ""
|
1474 |
-
"<strong>503: Service Temporarily Unavailable</strong><br />Too many IP "
|
1475 |
-
"addresses accessing one secure area<em>!</em><br />Please contact Support if "
|
1476 |
-
"you need assistance."
|
1477 |
msgstr ""
|
1478 |
|
1479 |
#: s2member/includes/templates/options/paypal-currencies.php:6
|
@@ -2264,17 +2430,14 @@ msgctxt "s2member-front"
|
|
2264 |
msgid ""
|
2265 |
"ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
|
2266 |
"\n"
|
2267 |
-
"This is most likely related to an invalid AliPay configuration. If you are "
|
2268 |
-
"the site owner, please check: s2Member -› AliPay Options."
|
2269 |
msgstr ""
|
2270 |
|
2271 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:116
|
2272 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:115
|
2273 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:113
|
2274 |
msgctxt "s2member-front"
|
2275 |
-
msgid ""
|
2276 |
-
"<strong>Billing termination confirmed.</strong> Your account has been "
|
2277 |
-
"cancelled."
|
2278 |
msgstr ""
|
2279 |
|
2280 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:124
|
@@ -2295,84 +2458,76 @@ msgstr ""
|
|
2295 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:155
|
2296 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:148
|
2297 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:153
|
2298 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
2299 |
msgctxt "s2member-front"
|
2300 |
msgid "You're <strong>NOT</strong> logged in."
|
2301 |
msgstr ""
|
2302 |
|
2303 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:288
|
2304 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:626
|
2305 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2306 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2307 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2308 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2309 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2310 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2311 |
msgctxt "s2member-front"
|
2312 |
-
msgid ""
|
2313 |
-
"<strong>Thank you.</strong> Your account has been updated.<br />— "
|
2314 |
-
"Please <a href=\"%s\" rel=\"nofollow\">log back in</a> now."
|
2315 |
msgstr ""
|
2316 |
|
2317 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
|
2318 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:743
|
2319 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2320 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2321 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2322 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2323 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2324 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2325 |
msgctxt "s2member-front"
|
2326 |
-
msgid ""
|
2327 |
-
"<strong>Thank you.</strong> Your account has been approved.<br />— "
|
2328 |
-
"Please <a href=\"%s\" rel=\"nofollow\">login</a>."
|
2329 |
msgstr ""
|
2330 |
|
2331 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:501
|
2332 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:525
|
2333 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:752
|
2334 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:773
|
2335 |
-
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:
|
2336 |
-
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:
|
2337 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2338 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2339 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2340 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2341 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2342 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2343 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2344 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2345 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2346 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2347 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2348 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2349 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:
|
2350 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:
|
2351 |
-
msgctxt "s2member-front"
|
2352 |
-
msgid ""
|
2353 |
-
"<strong>Oops.</strong> A slight problem. Please contact Support for "
|
2354 |
-
"assistance."
|
2355 |
msgstr ""
|
2356 |
|
2357 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
|
2358 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:764
|
2359 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2360 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2361 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2362 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2363 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2364 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2365 |
msgctxt "s2member-front"
|
2366 |
-
msgid ""
|
2367 |
-
"<strong>Thank you.</strong> Your account has been approved.<br />— "
|
2368 |
-
"You'll receive an email momentarily."
|
2369 |
msgstr ""
|
2370 |
|
2371 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
|
2372 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
2373 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:
|
2374 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
2375 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
2376 |
msgctxt "s2member-front"
|
2377 |
msgid "<strong>Unknown error.</strong> Please contact Support for assistance."
|
2378 |
msgstr ""
|
@@ -2559,38 +2714,31 @@ msgctxt "s2member-front"
|
|
2559 |
msgid "12 December"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
-
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:
|
2563 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:
|
2564 |
msgctxt "s2member-front"
|
2565 |
-
msgid ""
|
2566 |
-
"<strong>Thank you.</strong> Please <a href=\"%s\" rel=\"nofollow\">login</a>."
|
2567 |
msgstr ""
|
2568 |
|
2569 |
-
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:
|
2570 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:
|
2571 |
msgctxt "s2member-front"
|
2572 |
msgid "<strong>Thank you.</strong> You'll receive an email momentarily."
|
2573 |
msgstr ""
|
2574 |
|
2575 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:205
|
2576 |
msgctxt "s2member-admin"
|
2577 |
-
msgid ""
|
2578 |
-
"Authorize.Net configuration error. Please configure your Authorize.Net API "
|
2579 |
-
"Login ID."
|
2580 |
msgstr ""
|
2581 |
|
2582 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:208
|
2583 |
msgctxt "s2member-admin"
|
2584 |
-
msgid ""
|
2585 |
-
"Authorize.Net configuration error. Your Authorize.Net API Transaction Key is "
|
2586 |
-
"not yet configured."
|
2587 |
msgstr ""
|
2588 |
|
2589 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:211
|
2590 |
msgctxt "s2member-admin"
|
2591 |
-
msgid ""
|
2592 |
-
"Authorize.Net configuration error. Your Authorize.Net Secret MD5 Hash is not "
|
2593 |
-
"yet configured."
|
2594 |
msgstr ""
|
2595 |
|
2596 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
|
@@ -2598,8 +2746,7 @@ msgstr ""
|
|
2598 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
|
2599 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:597
|
2600 |
msgctxt "s2member-front"
|
2601 |
-
msgid ""
|
2602 |
-
"You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
|
2603 |
msgstr ""
|
2604 |
|
2605 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:236
|
@@ -2623,9 +2770,7 @@ msgstr ""
|
|
2623 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:272
|
2624 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:608
|
2625 |
msgctxt "s2member-front"
|
2626 |
-
msgid ""
|
2627 |
-
"You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing "
|
2628 |
-
"information."
|
2629 |
msgstr ""
|
2630 |
|
2631 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
|
@@ -2641,25 +2786,19 @@ msgstr ""
|
|
2641 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:302
|
2642 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:308
|
2643 |
msgctxt "s2member-front"
|
2644 |
-
msgid ""
|
2645 |
-
"Nothing to update. You have NO recurring fees. Or, your billing profile is "
|
2646 |
-
"no longer active. Please contact Support if you need assistance."
|
2647 |
msgstr ""
|
2648 |
|
2649 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
|
2650 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:314
|
2651 |
msgctxt "s2member-admin"
|
2652 |
-
msgid ""
|
2653 |
-
"Invalid form configuration. Missing \"level\" attribute. Membership Level. "
|
2654 |
-
"Must be numeric [0-%s]."
|
2655 |
msgstr ""
|
2656 |
|
2657 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
|
2658 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:317
|
2659 |
msgctxt "s2member-admin"
|
2660 |
-
msgid ""
|
2661 |
-
"Invalid form configuration. Invalid \"level\" attribute. Membership Level. "
|
2662 |
-
"Must be numeric [0-%s]."
|
2663 |
msgstr ""
|
2664 |
|
2665 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
|
@@ -2667,10 +2806,7 @@ msgstr ""
|
|
2667 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:320
|
2668 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:426
|
2669 |
msgctxt "s2member-admin"
|
2670 |
-
msgid ""
|
2671 |
-
"Invalid form configuration. Invalid \"ccaps\" attribute. Custom "
|
2672 |
-
"Capabilities. When provided, must be all lowercase [a-z_0-9,]. A preceding `-"
|
2673 |
-
"all,` directive is also acceptable."
|
2674 |
msgstr ""
|
2675 |
|
2676 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
|
@@ -2678,9 +2814,7 @@ msgstr ""
|
|
2678 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:323
|
2679 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:468
|
2680 |
msgctxt "s2member-admin"
|
2681 |
-
msgid ""
|
2682 |
-
"Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When "
|
2683 |
-
"provided, must be numeric."
|
2684 |
msgstr ""
|
2685 |
|
2686 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
|
@@ -2688,9 +2822,7 @@ msgstr ""
|
|
2688 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:326
|
2689 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:471
|
2690 |
msgctxt "s2member-admin"
|
2691 |
-
msgid ""
|
2692 |
-
"Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When "
|
2693 |
-
"provided, must be >= 1."
|
2694 |
msgstr ""
|
2695 |
|
2696 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
|
@@ -2698,9 +2830,7 @@ msgstr ""
|
|
2698 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:329
|
2699 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:474
|
2700 |
msgctxt "s2member-admin"
|
2701 |
-
msgid ""
|
2702 |
-
"Invalid form configuration. Missing \"tt\" attribute. The Trial Term. When "
|
2703 |
-
"\"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
|
2704 |
msgstr ""
|
2705 |
|
2706 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
|
@@ -2708,81 +2838,61 @@ msgstr ""
|
|
2708 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:332
|
2709 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:477
|
2710 |
msgctxt "s2member-admin"
|
2711 |
-
msgid ""
|
2712 |
-
"Invalid form configuration. Invalid \"tt\" attribute. The Trial Term. When "
|
2713 |
-
"\"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
|
2714 |
msgstr ""
|
2715 |
|
2716 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
|
2717 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:335
|
2718 |
msgctxt "s2member-admin"
|
2719 |
-
msgid ""
|
2720 |
-
"Invalid form configuration. Invalid \"custom\" attribute. When provided, "
|
2721 |
-
"must start with your domain name."
|
2722 |
msgstr ""
|
2723 |
|
2724 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
|
2725 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:340
|
2726 |
msgctxt "s2member-admin"
|
2727 |
-
msgid ""
|
2728 |
-
"Invalid form configuration. Missing \"ids\" attribute. Must contain comma-"
|
2729 |
-
"delimited Post/Page IDs."
|
2730 |
msgstr ""
|
2731 |
|
2732 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
|
2733 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:343
|
2734 |
msgctxt "s2member-admin"
|
2735 |
-
msgid ""
|
2736 |
-
"Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-"
|
2737 |
-
"delimited Post/Page IDs. Must contain [0-9,] only."
|
2738 |
msgstr ""
|
2739 |
|
2740 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
|
2741 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:346
|
2742 |
msgctxt "s2member-admin"
|
2743 |
-
msgid ""
|
2744 |
-
"Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page "
|
2745 |
-
"Expiration (in hours). Must be numeric."
|
2746 |
msgstr ""
|
2747 |
|
2748 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
|
2749 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:349
|
2750 |
msgctxt "s2member-admin"
|
2751 |
-
msgid ""
|
2752 |
-
"Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
|
2753 |
-
"Expiration (in hours). Must be numeric."
|
2754 |
msgstr ""
|
2755 |
|
2756 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
|
2757 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:352
|
2758 |
msgctxt "s2member-admin"
|
2759 |
-
msgid ""
|
2760 |
-
"Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
|
2761 |
-
"Expiration (in hours). Must be >= 1."
|
2762 |
msgstr ""
|
2763 |
|
2764 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
|
2765 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:355
|
2766 |
msgctxt "s2member-admin"
|
2767 |
-
msgid ""
|
2768 |
-
"Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
|
2769 |
-
"Expiration (in hours). Must be <= 43800."
|
2770 |
msgstr ""
|
2771 |
|
2772 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
|
2773 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:358
|
2774 |
msgctxt "s2member-admin"
|
2775 |
-
msgid ""
|
2776 |
-
"Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. "
|
2777 |
-
"Please check Shortcode Attributes."
|
2778 |
msgstr ""
|
2779 |
|
2780 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
|
2781 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:361
|
2782 |
msgctxt "s2member-admin"
|
2783 |
-
msgid ""
|
2784 |
-
"Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. "
|
2785 |
-
"Please check Shortcode Attributes."
|
2786 |
msgstr ""
|
2787 |
|
2788 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
|
@@ -2790,9 +2900,7 @@ msgstr ""
|
|
2790 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:364
|
2791 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:432
|
2792 |
msgctxt "s2member-admin"
|
2793 |
-
msgid ""
|
2794 |
-
"Invalid form configuration. Missing \"desc\" attribute. Please provide a "
|
2795 |
-
"Description for this form."
|
2796 |
msgstr ""
|
2797 |
|
2798 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
|
@@ -2800,9 +2908,7 @@ msgstr ""
|
|
2800 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:367
|
2801 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:435
|
2802 |
msgctxt "s2member-admin"
|
2803 |
-
msgid ""
|
2804 |
-
"Invalid form configuration. Your \"desc\" (Description) attribute must be <= "
|
2805 |
-
"100 characters long."
|
2806 |
msgstr ""
|
2807 |
|
2808 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
|
@@ -2810,17 +2916,13 @@ msgstr ""
|
|
2810 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:370
|
2811 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:438
|
2812 |
msgctxt "s2member-admin"
|
2813 |
-
msgid ""
|
2814 |
-
"Invalid form configuration. Missing \"custom\" attribute. Must start with "
|
2815 |
-
"your domain name."
|
2816 |
msgstr ""
|
2817 |
|
2818 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
|
2819 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:373
|
2820 |
msgctxt "s2member-admin"
|
2821 |
-
msgid ""
|
2822 |
-
"Invalid form configuration. Invalid \"custom\" attribute. Must start with "
|
2823 |
-
"your domain name."
|
2824 |
msgstr ""
|
2825 |
|
2826 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
|
@@ -2828,9 +2930,7 @@ msgstr ""
|
|
2828 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:376
|
2829 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:444
|
2830 |
msgctxt "s2member-admin"
|
2831 |
-
msgid ""
|
2832 |
-
"Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character "
|
2833 |
-
"Currency Code."
|
2834 |
msgstr ""
|
2835 |
|
2836 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
|
@@ -2838,9 +2938,7 @@ msgstr ""
|
|
2838 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:379
|
2839 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:447
|
2840 |
msgctxt "s2member-admin"
|
2841 |
-
msgid ""
|
2842 |
-
"Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character "
|
2843 |
-
"Currency Code."
|
2844 |
msgstr ""
|
2845 |
|
2846 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
|
@@ -2848,9 +2946,7 @@ msgstr ""
|
|
2848 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:400
|
2849 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:537
|
2850 |
msgctxt "s2member-admin"
|
2851 |
-
msgid ""
|
2852 |
-
"Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. "
|
2853 |
-
"Must be >= 0.00."
|
2854 |
msgstr ""
|
2855 |
|
2856 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
|
@@ -2858,9 +2954,7 @@ msgstr ""
|
|
2858 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:403
|
2859 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:540
|
2860 |
msgctxt "s2member-admin"
|
2861 |
-
msgid ""
|
2862 |
-
"Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
|
2863 |
-
"Must be numeric."
|
2864 |
msgstr ""
|
2865 |
|
2866 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
|
@@ -2868,228 +2962,163 @@ msgstr ""
|
|
2868 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:406
|
2869 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:543
|
2870 |
msgctxt "s2member-admin"
|
2871 |
-
msgid ""
|
2872 |
-
"Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
|
2873 |
-
"Must be >= 0.00."
|
2874 |
msgstr ""
|
2875 |
|
2876 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:344
|
2877 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:472
|
2878 |
msgctxt "s2member-admin"
|
2879 |
-
msgid ""
|
2880 |
-
"Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
|
2881 |
-
"Must be <= 99999.00."
|
2882 |
msgstr ""
|
2883 |
|
2884 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
|
2885 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:414
|
2886 |
msgctxt "s2member-front"
|
2887 |
-
msgid ""
|
2888 |
-
"You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing "
|
2889 |
-
"plan."
|
2890 |
msgstr ""
|
2891 |
|
2892 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
|
2893 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:417
|
2894 |
msgctxt "s2member-front"
|
2895 |
-
msgid ""
|
2896 |
-
"You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this "
|
2897 |
-
"purchase."
|
2898 |
msgstr ""
|
2899 |
|
2900 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
|
2901 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:420
|
2902 |
msgctxt "s2member-admin"
|
2903 |
-
msgid ""
|
2904 |
-
"Invalid form configuration. Missing \"level\" attribute. Membership Level. "
|
2905 |
-
"Must be numeric [1-%s], or an asterisk (*)."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
|
2909 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:423
|
2910 |
msgctxt "s2member-admin"
|
2911 |
-
msgid ""
|
2912 |
-
"Invalid form configuration. Invalid \"level\" attribute. Membership Level. "
|
2913 |
-
"Must be numeric [1-%s], or an asterisk (*)."
|
2914 |
msgstr ""
|
2915 |
|
2916 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
|
2917 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:429
|
2918 |
msgctxt "s2member-admin"
|
2919 |
-
msgid ""
|
2920 |
-
"Invalid form configuration. Missing or invalid \"ccaps\" attribute. When "
|
2921 |
-
"\"level\" is \"*\" for (Independent Custom Capabilities), \"ccaps\" is "
|
2922 |
-
"required. All lowercase [a-z_0-9,]. A preceding `-all,` directive is also "
|
2923 |
-
"acceptable."
|
2924 |
msgstr ""
|
2925 |
|
2926 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
|
2927 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:441
|
2928 |
msgctxt "s2member-admin"
|
2929 |
-
msgid ""
|
2930 |
-
"Invalid form configuration. Invalid \"custom\" attribute. Must start with "
|
2931 |
-
"matching domain."
|
2932 |
msgstr ""
|
2933 |
|
2934 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
|
2935 |
msgctxt "s2member-admin"
|
2936 |
-
msgid ""
|
2937 |
-
"Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
|
2938 |
-
"Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
|
2939 |
msgstr ""
|
2940 |
|
2941 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
|
2942 |
msgctxt "s2member-admin"
|
2943 |
-
msgid ""
|
2944 |
-
"Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
|
2945 |
-
"Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
|
2949 |
msgctxt "s2member-admin"
|
2950 |
-
msgid ""
|
2951 |
-
"Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
|
2952 |
-
"Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
|
2953 |
msgstr ""
|
2954 |
|
2955 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
|
2956 |
msgctxt "s2member-admin"
|
2957 |
-
msgid ""
|
2958 |
-
"Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
|
2959 |
-
"Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
|
2960 |
msgstr ""
|
2961 |
|
2962 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
|
2963 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:480
|
2964 |
msgctxt "s2member-admin"
|
2965 |
-
msgid ""
|
2966 |
-
"Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
|
2967 |
-
"provided, must be numeric."
|
2968 |
msgstr ""
|
2969 |
|
2970 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
|
2971 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:483
|
2972 |
msgctxt "s2member-admin"
|
2973 |
-
msgid ""
|
2974 |
-
"Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
|
2975 |
-
"provided, must be >= 0.00."
|
2976 |
msgstr ""
|
2977 |
|
2978 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:415
|
2979 |
msgctxt "s2member-admin"
|
2980 |
-
msgid ""
|
2981 |
-
"Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
|
2982 |
-
"provided, must be <= 99999.00."
|
2983 |
msgstr ""
|
2984 |
|
2985 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
|
2986 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:489
|
2987 |
msgctxt "s2member-admin"
|
2988 |
-
msgid ""
|
2989 |
-
"Invalid form configuration. Missing \"rp\" attribute. The Regular Period. "
|
2990 |
-
"Must be >= 1."
|
2991 |
msgstr ""
|
2992 |
|
2993 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
|
2994 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:492
|
2995 |
msgctxt "s2member-admin"
|
2996 |
-
msgid ""
|
2997 |
-
"Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. "
|
2998 |
-
"Must be numeric."
|
2999 |
msgstr ""
|
3000 |
|
3001 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
|
3002 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:495
|
3003 |
msgctxt "s2member-admin"
|
3004 |
-
msgid ""
|
3005 |
-
"Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. "
|
3006 |
-
"Must be >= 1."
|
3007 |
msgstr ""
|
3008 |
|
3009 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
|
3010 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:498
|
3011 |
msgctxt "s2member-admin"
|
3012 |
-
msgid ""
|
3013 |
-
"Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must "
|
3014 |
-
"be one of D,W,M,Y,L."
|
3015 |
msgstr ""
|
3016 |
|
3017 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
|
3018 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:501
|
3019 |
msgctxt "s2member-admin"
|
3020 |
-
msgid ""
|
3021 |
-
"Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must "
|
3022 |
-
"be one of D,W,M,Y,L."
|
3023 |
msgstr ""
|
3024 |
|
3025 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:433
|
3026 |
msgctxt "s2member-admin"
|
3027 |
-
msgid ""
|
3028 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3029 |
-
"\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) is < 7, and "
|
3030 |
-
"\"rr\" is not \"BN\" (Buy Now)."
|
3031 |
msgstr ""
|
3032 |
|
3033 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
|
3034 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:504
|
3035 |
msgctxt "s2member-admin"
|
3036 |
-
msgid ""
|
3037 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3038 |
-
"\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) > 365, and \"rr"
|
3039 |
-
"\" is not \"BN\" (Buy Now)."
|
3040 |
msgstr ""
|
3041 |
|
3042 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
|
3043 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:507
|
3044 |
msgctxt "s2member-admin"
|
3045 |
-
msgid ""
|
3046 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3047 |
-
"\" (Regular Term) attribute is \"W\", \"rp\" (Regular Period) > 52, and \"rr"
|
3048 |
-
"\" is not \"BN\" (Buy Now)."
|
3049 |
msgstr ""
|
3050 |
|
3051 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
|
3052 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:510
|
3053 |
msgctxt "s2member-admin"
|
3054 |
-
msgid ""
|
3055 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3056 |
-
"\" (Regular Term) attribute is \"M\", \"rp\" (Regular Period) > 12, and \"rr"
|
3057 |
-
"\" is not \"BN\" (Buy Now)."
|
3058 |
msgstr ""
|
3059 |
|
3060 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
|
3061 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:519
|
3062 |
msgctxt "s2member-admin"
|
3063 |
-
msgid ""
|
3064 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3065 |
-
"\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 1, and \"rr"
|
3066 |
-
"\" is not \"BN\" (Buy Now)."
|
3067 |
msgstr ""
|
3068 |
|
3069 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
|
3070 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:522
|
3071 |
msgctxt "s2member-admin"
|
3072 |
-
msgid ""
|
3073 |
-
"Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt"
|
3074 |
-
"\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) "
|
3075 |
-
"> 1."
|
3076 |
msgstr ""
|
3077 |
|
3078 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
|
3079 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:525
|
3080 |
msgctxt "s2member-admin"
|
3081 |
-
msgid ""
|
3082 |
-
"Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt"
|
3083 |
-
"\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN"
|
3084 |
-
"\" (Buy Now)."
|
3085 |
msgstr ""
|
3086 |
|
3087 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
|
3088 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:528
|
3089 |
msgctxt "s2member-admin"
|
3090 |
-
msgid ""
|
3091 |
-
"Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please "
|
3092 |
-
"check Shortcode Attributes."
|
3093 |
msgstr ""
|
3094 |
|
3095 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
|
@@ -3097,68 +3126,49 @@ msgstr ""
|
|
3097 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:531
|
3098 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:534
|
3099 |
msgctxt "s2member-admin"
|
3100 |
-
msgid ""
|
3101 |
-
"Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please "
|
3102 |
-
"check Shortcode Attributes."
|
3103 |
msgstr ""
|
3104 |
|
3105 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
|
3106 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:549
|
3107 |
msgctxt "s2member-admin"
|
3108 |
-
msgid ""
|
3109 |
-
"Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. "
|
3110 |
-
"When provided, must be 0, 1, or BN."
|
3111 |
msgstr ""
|
3112 |
|
3113 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
|
3114 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:552
|
3115 |
msgctxt "s2member-admin"
|
3116 |
-
msgid ""
|
3117 |
-
"Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr"
|
3118 |
-
"\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial "
|
3119 |
-
"Period) is not \"0\"."
|
3120 |
msgstr ""
|
3121 |
|
3122 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
|
3123 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:555
|
3124 |
msgctxt "s2member-admin"
|
3125 |
-
msgid ""
|
3126 |
-
"Invalid form configuration. Invalid \"level, rr\" attributes. The \"level"
|
3127 |
-
"\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr"
|
3128 |
-
"\" is not \"BN\" (Buy Now)."
|
3129 |
msgstr ""
|
3130 |
|
3131 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
|
3132 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:558
|
3133 |
msgctxt "s2member-admin"
|
3134 |
-
msgid ""
|
3135 |
-
"Invalid form configuration. Invalid \"ta, tp, tt\" attributes. Trial Period. "
|
3136 |
-
"When provided, these cannot be exactly the same as your \"ra, rp, rt\" "
|
3137 |
-
"attributes."
|
3138 |
msgstr ""
|
3139 |
|
3140 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
|
3141 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:561
|
3142 |
msgctxt "s2member-admin"
|
3143 |
-
msgid ""
|
3144 |
-
"Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times "
|
3145 |
-
"(fixed). When provided, must be numeric."
|
3146 |
msgstr ""
|
3147 |
|
3148 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
|
3149 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:564
|
3150 |
msgctxt "s2member-admin"
|
3151 |
-
msgid ""
|
3152 |
-
"Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times "
|
3153 |
-
"(fixed). When provided, must be >= 1."
|
3154 |
msgstr ""
|
3155 |
|
3156 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
|
3157 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:567
|
3158 |
msgctxt "s2member-admin"
|
3159 |
-
msgid ""
|
3160 |
-
"Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt"
|
3161 |
-
"\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
|
3162 |
msgstr ""
|
3163 |
|
3164 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:520
|
@@ -3182,9 +3192,7 @@ msgstr ""
|
|
3182 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:611
|
3183 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:761
|
3184 |
msgctxt "s2member-admin"
|
3185 |
-
msgid ""
|
3186 |
-
"Unable to process. You are an Administrator. Stopping here for security. "
|
3187 |
-
"Otherwise, an Administrator could lose access."
|
3188 |
msgstr ""
|
3189 |
|
3190 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
|
@@ -3238,9 +3246,7 @@ msgstr ""
|
|
3238 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:726
|
3239 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:818
|
3240 |
msgctxt "s2member-front"
|
3241 |
-
msgid ""
|
3242 |
-
"Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try "
|
3243 |
-
"again."
|
3244 |
msgstr ""
|
3245 |
|
3246 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
|
@@ -3250,9 +3256,7 @@ msgstr ""
|
|
3250 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:729
|
3251 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:821
|
3252 |
msgctxt "s2member-front"
|
3253 |
-
msgid ""
|
3254 |
-
"Missing Card Verification Code. It's on the back of your Card. 3-4 digits. "
|
3255 |
-
"Please try again."
|
3256 |
msgstr ""
|
3257 |
|
3258 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
|
@@ -3262,9 +3266,7 @@ msgstr ""
|
|
3262 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:732
|
3263 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:824
|
3264 |
msgctxt "s2member-front"
|
3265 |
-
msgid ""
|
3266 |
-
"Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try "
|
3267 |
-
"again."
|
3268 |
msgstr ""
|
3269 |
|
3270 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
|
@@ -3424,17 +3426,13 @@ msgstr ""
|
|
3424 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:675
|
3425 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:755
|
3426 |
msgctxt "s2member-front"
|
3427 |
-
msgid ""
|
3428 |
-
"You must <a href=\"%s\" rel=\"nofollow\">log in</a> to modify your billing "
|
3429 |
-
"plan."
|
3430 |
msgstr ""
|
3431 |
|
3432 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:678
|
3433 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:758
|
3434 |
msgctxt "s2member-front"
|
3435 |
-
msgid ""
|
3436 |
-
"You must <a href=\"%s\" rel=\"nofollow\">log in</a> before making this "
|
3437 |
-
"purchase."
|
3438 |
msgstr ""
|
3439 |
|
3440 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:765
|
@@ -3444,43 +3442,35 @@ msgid "Unknown form submission type. Please contact Support."
|
|
3444 |
msgstr ""
|
3445 |
|
3446 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:169
|
3447 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:
|
3448 |
msgctxt "s2member-front"
|
3449 |
-
msgid ""
|
3450 |
-
"<strong>Thank you.</strong> Your purchase has been approved.<br />— "
|
3451 |
-
"Please <a href=\"%s\" rel=\"nofollow\">click here</a> to proceed."
|
3452 |
msgstr ""
|
3453 |
|
3454 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:176
|
3455 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:
|
3456 |
msgctxt "s2member-front"
|
3457 |
-
msgid ""
|
3458 |
-
"<strong>Oops.</strong> Unable to generate Access Link. Please contact "
|
3459 |
-
"Support for assistance."
|
3460 |
msgstr ""
|
3461 |
|
3462 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:110
|
3463 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:115
|
3464 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
3465 |
msgctxt "s2member-front"
|
3466 |
msgid "<strong>Confirmed.</strong> Your billing information has been updated."
|
3467 |
msgstr ""
|
3468 |
|
3469 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:122
|
3470 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:131
|
3471 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
3472 |
msgctxt "s2member-front"
|
3473 |
-
msgid ""
|
3474 |
-
"<strong>Unable to update.</strong> You have NO recurring fees. Or, your "
|
3475 |
-
"billing profile is no longer active. Please contact Support if you need "
|
3476 |
-
"assistance."
|
3477 |
msgstr ""
|
3478 |
|
3479 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:131
|
3480 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:148
|
3481 |
msgctxt "s2member-front"
|
3482 |
-
msgid ""
|
3483 |
-
"<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance."
|
3484 |
msgstr ""
|
3485 |
|
3486 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:666
|
@@ -3558,9 +3548,7 @@ msgstr ""
|
|
3558 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:600
|
3559 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:615
|
3560 |
msgctxt "s2member-front"
|
3561 |
-
msgid ""
|
3562 |
-
"<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s, then %s</strong>)</"
|
3563 |
-
"div>"
|
3564 |
msgstr ""
|
3565 |
|
3566 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:923
|
@@ -3580,8 +3568,7 @@ msgstr ""
|
|
3580 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1028
|
3581 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657
|
3582 |
msgctxt "s2member-front"
|
3583 |
-
msgid ""
|
3584 |
-
"<div>Sorry, your Coupon cannot be applied to this particular purchase.</div>"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1032
|
@@ -3619,44 +3606,34 @@ msgctxt "s2member-front"
|
|
3619 |
msgid ""
|
3620 |
"ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
|
3621 |
"\n"
|
3622 |
-
"This is most likely related to an invalid ClickBank configuration. If you "
|
3623 |
-
"are the site owner, please check: s2Member -› ClickBank Options."
|
3624 |
msgstr ""
|
3625 |
|
3626 |
#: s2member-pro/includes/classes/gateways/clickbank/clickbank-utilities.inc.php:168
|
3627 |
msgctxt "s2member-front"
|
3628 |
-
msgid ""
|
3629 |
-
"<strong>Reminder:</strong> Purchases at this site will appear on your credit "
|
3630 |
-
"card or bank statement as: <code>ClickBank</code> or <code>CLKBANK*COM</"
|
3631 |
-
"code>."
|
3632 |
msgstr ""
|
3633 |
|
3634 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:123
|
3635 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:247
|
3636 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:263
|
3637 |
msgctxt "s2member-front"
|
3638 |
-
msgid ""
|
3639 |
-
"<strong>Unable to cancel at this time.</strong> Your account is pending "
|
3640 |
-
"other changes. Please try again in 15 minutes."
|
3641 |
msgstr ""
|
3642 |
|
3643 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:135
|
3644 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:128
|
3645 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:257
|
3646 |
msgctxt "s2member-front"
|
3647 |
-
msgid ""
|
3648 |
-
"Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to cancel your "
|
3649 |
-
"Subscription."
|
3650 |
msgstr ""
|
3651 |
|
3652 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
3653 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:
|
3654 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
3655 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:
|
3656 |
msgctxt "s2member-front"
|
3657 |
-
msgid ""
|
3658 |
-
"<strong>Sorry.</strong> Your account is pending other changes. Please try "
|
3659 |
-
"again in 15 minutes."
|
3660 |
msgstr ""
|
3661 |
|
3662 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:378
|
@@ -3692,20 +3669,17 @@ msgstr ""
|
|
3692 |
|
3693 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:208
|
3694 |
msgctxt "s2member-admin"
|
3695 |
-
msgid ""
|
3696 |
-
"PayPal configuration error. Your PayPal API Username is not yet configured."
|
3697 |
msgstr ""
|
3698 |
|
3699 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:211
|
3700 |
msgctxt "s2member-admin"
|
3701 |
-
msgid ""
|
3702 |
-
"PayPal configuration error. Your PayPal API Password is not yet configured."
|
3703 |
msgstr ""
|
3704 |
|
3705 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:214
|
3706 |
msgctxt "s2member-admin"
|
3707 |
-
msgid ""
|
3708 |
-
"PayPal configuration error. Your PayPal API Signature is not yet configured."
|
3709 |
msgstr ""
|
3710 |
|
3711 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:283
|
@@ -3715,120 +3689,86 @@ msgstr ""
|
|
3715 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:135
|
3716 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:139
|
3717 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:79
|
3718 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
3719 |
msgctxt "s2member-front"
|
3720 |
-
msgid ""
|
3721 |
-
"Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to update your "
|
3722 |
-
"billing information."
|
3723 |
msgstr ""
|
3724 |
|
3725 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:286
|
3726 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:305
|
3727 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:127
|
3728 |
msgctxt "s2member-front"
|
3729 |
-
msgid ""
|
3730 |
-
"<strong>Unable to update at this time.</strong> Your account is pending "
|
3731 |
-
"other changes. Please try again in 15 minutes."
|
3732 |
msgstr ""
|
3733 |
|
3734 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:382
|
3735 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:450
|
3736 |
msgctxt "s2member-admin"
|
3737 |
-
msgid ""
|
3738 |
-
"Invalid form configuration. Missing \"dg\" attribute. Digital indicator. "
|
3739 |
-
"Must be numeric [0-1]."
|
3740 |
msgstr ""
|
3741 |
|
3742 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:385
|
3743 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:453
|
3744 |
msgctxt "s2member-admin"
|
3745 |
-
msgid ""
|
3746 |
-
"Invalid form configuration. Invalid \"dg\" attribute. Digital indicator. "
|
3747 |
-
"Must be numeric [0-1]."
|
3748 |
msgstr ""
|
3749 |
|
3750 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:388
|
3751 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:456
|
3752 |
msgctxt "s2member-admin"
|
3753 |
-
msgid ""
|
3754 |
-
"Invalid form configuration. Missing \"ns\" attribute. Shipping "
|
3755 |
-
"configuration. Must be numeric [0-2]."
|
3756 |
msgstr ""
|
3757 |
|
3758 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:391
|
3759 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:459
|
3760 |
msgctxt "s2member-admin"
|
3761 |
-
msgid ""
|
3762 |
-
"Invalid form configuration. Invalid \"ns\" attribute. Shipping "
|
3763 |
-
"configuration. Must be numeric [0-2]."
|
3764 |
msgstr ""
|
3765 |
|
3766 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:394
|
3767 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:462
|
3768 |
msgctxt "s2member-admin"
|
3769 |
-
msgid ""
|
3770 |
-
"Invalid form configuration. Invalid \"ns\" attribute. Shipping "
|
3771 |
-
"configuration. Must be 1 with \"dg\" (digital) items."
|
3772 |
msgstr ""
|
3773 |
|
3774 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:397
|
3775 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:465
|
3776 |
msgctxt "s2member-admin"
|
3777 |
-
msgid ""
|
3778 |
-
"Invalid form configuration. Invalid \"lc\" attribute. Locale Code. When "
|
3779 |
-
"provided, must be a 2 character country code."
|
3780 |
msgstr ""
|
3781 |
|
3782 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:409
|
3783 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:546
|
3784 |
msgctxt "s2member-admin"
|
3785 |
-
msgid ""
|
3786 |
-
"Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
|
3787 |
-
"Must be <= 10000.00."
|
3788 |
msgstr ""
|
3789 |
|
3790 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:486
|
3791 |
msgctxt "s2member-admin"
|
3792 |
-
msgid ""
|
3793 |
-
"Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
|
3794 |
-
"provided, must be <= 10000.00."
|
3795 |
msgstr ""
|
3796 |
|
3797 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:513
|
3798 |
msgctxt "s2member-admin"
|
3799 |
-
msgid ""
|
3800 |
-
"Invalid Payflow form configuration. Invalid \"rt, rp, rr\" attributes. "
|
3801 |
-
"Payflow supports a specific set of recurring intervals. Pro Forms can be "
|
3802 |
-
"configured to charge: weekly, bi-weekly, monthly, quarterly, semi-yearly or "
|
3803 |
-
"yearly. Any other combination results in this error. This is a Payflow "
|
3804 |
-
"limitation."
|
3805 |
msgstr ""
|
3806 |
|
3807 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:516
|
3808 |
msgctxt "s2member-admin"
|
3809 |
-
msgid ""
|
3810 |
-
"Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
|
3811 |
-
"\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 5, and \"rr"
|
3812 |
-
"\" is not \"BN\" (Buy Now)."
|
3813 |
msgstr ""
|
3814 |
|
3815 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:570
|
3816 |
msgctxt "s2member-admin"
|
3817 |
-
msgid ""
|
3818 |
-
"Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr"
|
3819 |
-
"\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be "
|
3820 |
-
"numeric."
|
3821 |
msgstr ""
|
3822 |
|
3823 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:573
|
3824 |
msgctxt "s2member-admin"
|
3825 |
-
msgid ""
|
3826 |
-
"Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr"
|
3827 |
-
"\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be "
|
3828 |
-
">= 0."
|
3829 |
msgstr ""
|
3830 |
|
3831 |
-
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:
|
3832 |
msgctxt "s2member-front"
|
3833 |
msgid "<strong>No Subscr. ID.</strong> Please contact Support for assistance."
|
3834 |
msgstr ""
|
@@ -3888,6 +3828,117 @@ msgctxt "s2member-front"
|
|
3888 |
msgid "My Profile Summary"
|
3889 |
msgstr ""
|
3890 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3891 |
#: s2member-pro/includes/syscon.inc.php:95
|
3892 |
msgctxt "s2member-front"
|
3893 |
msgid ""
|
@@ -3899,8 +3950,7 @@ msgid ""
|
|
3899 |
"Charges today: $%%%%initial%%%%\n"
|
3900 |
"Recurring charges: $%%%%recurring/regular_cycle%%%%\n"
|
3901 |
"\n"
|
3902 |
-
"Your Username/Password will arrive shortly, in a separate email. If you have "
|
3903 |
-
"any trouble, please feel free to contact us.\n"
|
3904 |
"\n"
|
3905 |
"Best Regards,\n"
|
3906 |
"%s"
|
@@ -3932,20 +3982,6 @@ msgctxt "s2member-front"
|
|
3932 |
msgid "Confirm Cancellation"
|
3933 |
msgstr ""
|
3934 |
|
3935 |
-
#: s2member-pro/includes/templates/forms/authnet-cancellation-form.php:36
|
3936 |
-
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:198
|
3937 |
-
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:81
|
3938 |
-
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:179
|
3939 |
-
#: s2member-pro/includes/templates/forms/authnet-update-form.php:117
|
3940 |
-
#: s2member-pro/includes/templates/forms/paypal-cancellation-form.php:36
|
3941 |
-
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:198
|
3942 |
-
#: s2member-pro/includes/templates/forms/paypal-registration-form.php:81
|
3943 |
-
#: s2member-pro/includes/templates/forms/paypal-sp-checkout-form.php:179
|
3944 |
-
#: s2member-pro/includes/templates/forms/paypal-update-form.php:117
|
3945 |
-
msgctxt "s2member-front"
|
3946 |
-
msgid "Submit Form"
|
3947 |
-
msgstr ""
|
3948 |
-
|
3949 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:21
|
3950 |
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:21
|
3951 |
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:21
|
@@ -3978,14 +4014,6 @@ msgctxt "s2member-front"
|
|
3978 |
msgid "Apply Coupon"
|
3979 |
msgstr ""
|
3980 |
|
3981 |
-
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:62
|
3982 |
-
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:30
|
3983 |
-
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:62
|
3984 |
-
#: s2member-pro/includes/templates/forms/paypal-registration-form.php:30
|
3985 |
-
msgctxt "s2member-front"
|
3986 |
-
msgid "Create Profile"
|
3987 |
-
msgstr ""
|
3988 |
-
|
3989 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:84
|
3990 |
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:52
|
3991 |
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:84
|
1 |
+
# Copyright (C) 2014
|
2 |
# This file is distributed under the same license as the package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: 140328\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
|
7 |
+
"POT-Creation-Date: 2014-03-29 00:07:53+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
17 |
msgid "Max failed logins. Please wait %s and try again."
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:339
|
21 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:475
|
22 |
#: s2member/includes/classes/profile-in.inc.php:120
|
23 |
#: s2member/includes/classes/sc-profile-in.inc.php:136
|
24 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:66
|
31 |
msgid "First Name"
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:351
|
35 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:490
|
36 |
#: s2member/includes/classes/profile-in.inc.php:140
|
37 |
#: s2member/includes/classes/sc-profile-in.inc.php:156
|
38 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:72
|
45 |
msgid "Last Name"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:448
|
49 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:453
|
50 |
#: s2member/includes/classes/profile-in.inc.php:233
|
51 |
#: s2member/includes/classes/profile-in.inc.php:239
|
52 |
#: s2member/includes/classes/sc-profile-in.inc.php:249
|
55 |
msgid "Please type your Password twice to confirm."
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:449
|
59 |
msgctxt "s2member-front"
|
60 |
msgid "Password (please type it twice)"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: s2member/includes/classes/custom-reg-fields.inc.php:457
|
64 |
#: s2member/includes/classes/profile-in.inc.php:243
|
65 |
#: s2member/includes/classes/sc-profile-in.inc.php:259
|
66 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:94
|
77 |
msgstr ""
|
78 |
|
79 |
#: s2member/includes/classes/files-in.inc.php:108
|
80 |
+
#: s2member/includes/classes/files-in.inc.php:280
|
81 |
msgctxt "s2member-front"
|
82 |
+
msgid "<strong>404: Sorry, file not found.</strong> Please contact Support for assistance."
|
|
|
|
|
83 |
msgstr ""
|
84 |
|
85 |
#: s2member/includes/classes/files-in.inc.php:121
|
86 |
msgctxt "s2member-front"
|
87 |
+
msgid "<strong>503 (Invalid Key):</strong> Sorry, your access to this file has expired. Please contact Support for assistance."
|
|
|
|
|
88 |
msgstr ""
|
89 |
|
90 |
#: s2member/includes/classes/files-in.inc.php:144
|
91 |
msgctxt "s2member-front"
|
92 |
+
msgid "<strong>503: Basic File Downloads are NOT enabled yet.</strong> Please contact Support for assistance. If you are the site owner, please configure: <code>s2Member -› General Options -› Membership Options Page</code>."
|
93 |
+
msgstr ""
|
94 |
+
|
95 |
+
#: s2member/includes/classes/files-in.inc.php:157
|
96 |
+
msgctxt "s2member-front"
|
97 |
+
msgid "<strong>503: Basic File Downloads are NOT enabled yet.</strong> Please contact Support for assistance. If you are the site owner, please configure: <code>s2Member -› Download Options -› Basic Download Restrictions</code>."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: s2member/includes/classes/files-in.inc.php:519
|
101 |
msgctxt "s2member-front"
|
102 |
msgid "<strong>503: Access denied.</strong> Invalid File Download specs."
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: s2member/includes/classes/files-in.inc.php:613
|
106 |
msgctxt "s2member-front"
|
107 |
msgid "Members Only"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: s2member/includes/classes/files-in.inc.php:619
|
111 |
msgctxt "s2member-front"
|
112 |
msgid "<strong>401:</strong> Sorry, access denied."
|
113 |
msgstr ""
|
115 |
#. translators: In this translation, `%s` may be filled with an English
|
116 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
117 |
#. if you like.
|
118 |
+
#: s2member/includes/classes/files-in.inc.php:758
|
119 |
msgctxt "s2member-admin"
|
120 |
msgid "Unable to update existing Amazon S3 Cross-Domain Policy. %s"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: s2member/includes/classes/files-in.inc.php:761
|
124 |
msgctxt "s2member-admin"
|
125 |
+
msgid "Unable to update existing Amazon S3 Cross-Domain Policy. Connection failed."
|
|
|
126 |
msgstr ""
|
127 |
|
128 |
#. translators: In this translation, `%s` may be filled with an English
|
129 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
130 |
#. if you like.
|
131 |
+
#: s2member/includes/classes/files-in.inc.php:765
|
132 |
msgctxt "s2member-admin"
|
133 |
msgid "Unable to update existing Amazon S3 Bucket Policy. %s"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: s2member/includes/classes/files-in.inc.php:768
|
137 |
msgctxt "s2member-admin"
|
138 |
msgid "Unable to update existing Amazon S3 Bucket Policy. Connection failed."
|
139 |
msgstr ""
|
141 |
#. translators: In this translation, `%s` may be filled with an English
|
142 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
143 |
#. if you like.
|
144 |
+
#: s2member/includes/classes/files-in.inc.php:772
|
145 |
msgctxt "s2member-admin"
|
146 |
msgid "Unable to update existing Amazon S3 Bucket ACLs. %s"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: s2member/includes/classes/files-in.inc.php:775
|
150 |
msgctxt "s2member-admin"
|
151 |
msgid "Unable to update existing Amazon S3 Bucket ACLs. Connection failed."
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: s2member/includes/classes/files-in.inc.php:778
|
155 |
msgctxt "s2member-admin"
|
156 |
+
msgid "Unable to acquire/read existing Amazon S3 Bucket ACLs. Unexpected response."
|
|
|
157 |
msgstr ""
|
158 |
|
159 |
#. translators: In this translation, `%s` may be filled with an English
|
160 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
161 |
#. if you like.
|
162 |
+
#: s2member/includes/classes/files-in.inc.php:782
|
163 |
msgctxt "s2member-admin"
|
164 |
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. %s"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: s2member/includes/classes/files-in.inc.php:785
|
168 |
msgctxt "s2member-admin"
|
169 |
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. Connection failed."
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: s2member/includes/classes/files-in.inc.php:788
|
173 |
msgctxt "s2member-admin"
|
174 |
+
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."
|
|
|
|
|
|
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: s2member/includes/classes/files-in.inc.php:888
|
178 |
msgctxt "s2member-admin"
|
179 |
+
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."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
msgstr ""
|
181 |
|
182 |
#. translators: In this translation, `%s` may be filled with an English
|
183 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
184 |
#. exclude `%s` if you like.
|
185 |
+
#: s2member/includes/classes/files-in.inc.php:895
|
186 |
msgctxt "s2member-admin"
|
187 |
msgid "Unable to delete existing Amazon CloudFront Downloads Distro. %s"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: s2member/includes/classes/files-in.inc.php:907
|
191 |
msgctxt "s2member-admin"
|
192 |
+
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."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
msgstr ""
|
194 |
|
195 |
#. translators: In this translation, `%s` may be filled with an English
|
196 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
197 |
#. exclude `%s` if you like.
|
198 |
+
#: s2member/includes/classes/files-in.inc.php:914
|
199 |
msgctxt "s2member-admin"
|
200 |
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
|
201 |
msgstr ""
|
203 |
#. translators: In this translation, `%s` may be filled with an English
|
204 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
205 |
#. exclude `%s` if you like.
|
206 |
+
#: s2member/includes/classes/files-in.inc.php:930
|
207 |
+
#: s2member/includes/classes/files-in.inc.php:1114
|
208 |
msgctxt "s2member-admin"
|
209 |
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
|
210 |
msgstr ""
|
212 |
#. translators: In this translation, `%s` may be filled with an English
|
213 |
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
|
214 |
#. if you like.
|
215 |
+
#: s2member/includes/classes/files-in.inc.php:971
|
216 |
msgctxt "s2member-admin"
|
217 |
msgid "Unable to update existing Amazon S3 ACLs. %s"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: s2member/includes/classes/files-in.inc.php:974
|
221 |
msgctxt "s2member-admin"
|
222 |
msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
|
223 |
msgstr ""
|
225 |
#. translators: In this translation, `%s` may be filled with an English
|
226 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
227 |
#. exclude `%s` if you like.
|
228 |
+
#: s2member/includes/classes/files-in.inc.php:978
|
229 |
+
#: s2member/includes/classes/files-in.inc.php:1401
|
230 |
msgctxt "s2member-admin"
|
231 |
msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: s2member/includes/classes/files-in.inc.php:981
|
235 |
+
#: s2member/includes/classes/files-in.inc.php:1404
|
236 |
msgctxt "s2member-admin"
|
237 |
msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
|
238 |
msgstr ""
|
240 |
#. translators: In this translation, `%s` may be filled with an English
|
241 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
242 |
#. exclude `%s` if you like.
|
243 |
+
#: s2member/includes/classes/files-in.inc.php:985
|
244 |
+
#: s2member/includes/classes/files-in.inc.php:1378
|
245 |
msgctxt "s2member-admin"
|
246 |
msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: s2member/includes/classes/files-in.inc.php:988
|
250 |
+
#: s2member/includes/classes/files-in.inc.php:1381
|
251 |
msgctxt "s2member-admin"
|
252 |
msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
|
253 |
msgstr ""
|
255 |
#. translators: In this translation, `%s` may be filled with an English
|
256 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
257 |
#. exclude `%s` if you like.
|
258 |
+
#: s2member/includes/classes/files-in.inc.php:992
|
259 |
+
#: s2member/includes/classes/files-in.inc.php:1159
|
260 |
msgctxt "s2member-admin"
|
261 |
msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: s2member/includes/classes/files-in.inc.php:995
|
265 |
+
#: s2member/includes/classes/files-in.inc.php:1162
|
266 |
msgctxt "s2member-admin"
|
267 |
+
msgid "Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
|
|
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: s2member/includes/classes/files-in.inc.php:998
|
271 |
msgctxt "s2member-admin"
|
272 |
msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
|
273 |
msgstr ""
|
275 |
#. translators: In this translation, `%s` may be filled with an English
|
276 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
277 |
#. exclude `%s` if you like.
|
278 |
+
#: s2member/includes/classes/files-in.inc.php:1002
|
279 |
+
#: s2member/includes/classes/files-in.inc.php:1071
|
280 |
msgctxt "s2member-admin"
|
281 |
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: s2member/includes/classes/files-in.inc.php:1005
|
285 |
+
#: s2member/includes/classes/files-in.inc.php:1074
|
286 |
msgctxt "s2member-admin"
|
287 |
+
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Connection failed."
|
|
|
|
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: s2member/includes/classes/files-in.inc.php:1008
|
291 |
msgctxt "s2member-admin"
|
292 |
msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
|
293 |
msgstr ""
|
295 |
#. translators: In this translation, `%s` may be filled with an English
|
296 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
297 |
#. exclude `%s` if you like.
|
298 |
+
#: s2member/includes/classes/files-in.inc.php:1012
|
299 |
msgctxt "s2member-admin"
|
300 |
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: s2member/includes/classes/files-in.inc.php:1015
|
304 |
msgctxt "s2member-admin"
|
305 |
+
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. Connection failed."
|
|
|
|
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: s2member/includes/classes/files-in.inc.php:1018
|
309 |
msgctxt "s2member-admin"
|
310 |
msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
|
311 |
msgstr ""
|
313 |
#. translators: In this translation, `%s` may be filled with an English
|
314 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
315 |
#. exclude `%s` if you like.
|
316 |
+
#: s2member/includes/classes/files-in.inc.php:1022
|
317 |
msgctxt "s2member-admin"
|
318 |
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: s2member/includes/classes/files-in.inc.php:1025
|
322 |
msgctxt "s2member-admin"
|
323 |
+
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. Connection failed."
|
|
|
|
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: s2member/includes/classes/files-in.inc.php:1028
|
327 |
msgctxt "s2member-admin"
|
328 |
+
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."
|
|
|
|
|
|
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: s2member/includes/classes/files-in.inc.php:1031
|
332 |
msgctxt "s2member-admin"
|
333 |
+
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."
|
|
|
|
|
|
|
|
|
334 |
msgstr ""
|
335 |
|
336 |
#. translators: In this translation, `%s` may be filled with an English
|
337 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
338 |
#. exclude `%s` if you like.
|
339 |
+
#: s2member/includes/classes/files-in.inc.php:1067
|
340 |
msgctxt "s2member-admin"
|
341 |
msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: s2member/includes/classes/files-in.inc.php:1077
|
345 |
msgctxt "s2member-admin"
|
346 |
+
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid Access ID."
|
|
|
|
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: s2member/includes/classes/files-in.inc.php:1117
|
350 |
msgctxt "s2member-admin"
|
351 |
+
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Connection failed."
|
|
|
|
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: s2member/includes/classes/files-in.inc.php:1120
|
355 |
msgctxt "s2member-admin"
|
356 |
+
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid Access ID, ETag, or XML config."
|
|
|
|
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: s2member/includes/classes/files-in.inc.php:1146
|
360 |
+
#: s2member/includes/classes/files-in.inc.php:1365
|
361 |
+
#: s2member/includes/classes/files-in.inc.php:1388
|
362 |
msgctxt "s2member-admin"
|
363 |
msgid "Created by s2Member, for S3 Bucket: %s."
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: s2member/includes/classes/files-in.inc.php:1155
|
367 |
msgctxt "s2member-admin"
|
368 |
+
msgid "Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected response."
|
|
|
|
|
369 |
msgstr ""
|
370 |
|
371 |
#. translators: In this translation, `%s` may be filled with an English
|
372 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
373 |
#. exclude `%s` if you like.
|
374 |
+
#: s2member/includes/classes/files-in.inc.php:1199
|
375 |
msgctxt "s2member-admin"
|
376 |
msgid "Existing Amazon CloudFront Distro NOT found. %s"
|
377 |
msgstr ""
|
379 |
#. translators: In this translation, `%s` may be filled with an English
|
380 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
381 |
#. exclude `%s` if you like.
|
382 |
+
#: s2member/includes/classes/files-in.inc.php:1203
|
383 |
msgctxt "s2member-admin"
|
384 |
msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: s2member/includes/classes/files-in.inc.php:1206
|
388 |
msgctxt "s2member-admin"
|
389 |
msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: s2member/includes/classes/files-in.inc.php:1209
|
393 |
msgctxt "s2member-admin"
|
394 |
+
msgid "Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/or Distro type."
|
|
|
|
|
395 |
msgstr ""
|
396 |
|
397 |
#. translators: In this translation, `%s` may be filled with an English
|
398 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
399 |
#. exclude `%s` if you like.
|
400 |
+
#: s2member/includes/classes/files-in.inc.php:1251
|
401 |
+
#: s2member/includes/classes/files-in.inc.php:1324
|
402 |
msgctxt "s2member-admin"
|
403 |
msgid "Unable to disable existing Amazon CloudFront Distro. %s"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: s2member/includes/classes/files-in.inc.php:1254
|
407 |
+
#: s2member/includes/classes/files-in.inc.php:1327
|
408 |
msgctxt "s2member-admin"
|
409 |
msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: s2member/includes/classes/files-in.inc.php:1257
|
413 |
msgctxt "s2member-admin"
|
414 |
+
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."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: s2member/includes/classes/files-in.inc.php:1263
|
418 |
msgctxt "s2member-admin"
|
419 |
+
msgid "Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, ETag, or XML config."
|
|
|
|
|
420 |
msgstr ""
|
421 |
|
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:1306
|
426 |
msgctxt "s2member-admin"
|
427 |
msgid "Unable to delete existing Amazon CloudFront Distro. %s"
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: s2member/includes/classes/files-in.inc.php:1309
|
431 |
msgctxt "s2member-admin"
|
432 |
msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
|
433 |
msgstr ""
|
435 |
#. translators: In this translation, `%s` may be filled with an English
|
436 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
437 |
#. exclude `%s` if you like.
|
438 |
+
#: s2member/includes/classes/files-in.inc.php:1313
|
439 |
msgctxt "s2member-admin"
|
440 |
+
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."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
msgstr ""
|
442 |
|
443 |
#. translators: In this translation, `%s` may be filled with an English
|
444 |
#. message, which comes from the Amazon CloudFront API call. Feel free to
|
445 |
#. exclude `%s` if you like.
|
446 |
+
#: s2member/includes/classes/files-in.inc.php:1317
|
447 |
msgctxt "s2member-admin"
|
448 |
msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: s2member/includes/classes/files-in.inc.php:1320
|
452 |
msgctxt "s2member-admin"
|
453 |
+
msgid "Unable to check status of existing Amazon CloudFront Distro. Connection failed."
|
|
|
|
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: s2member/includes/classes/files-in.inc.php:1330
|
457 |
msgctxt "s2member-admin"
|
458 |
+
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."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: s2member/includes/classes/files-in.inc.php:1333
|
462 |
msgctxt "s2member-admin"
|
463 |
+
msgid "Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or ETag."
|
|
|
|
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: s2member/includes/classes/files-in.inc.php:1374
|
467 |
msgctxt "s2member-admin"
|
468 |
+
msgid "Unable to create/read Amazon CloudFront Downloads Distro. Unexpected response."
|
|
|
|
|
469 |
msgstr ""
|
470 |
|
471 |
+
#: s2member/includes/classes/files-in.inc.php:1397
|
472 |
msgctxt "s2member-admin"
|
473 |
+
msgid "Unable to create/read Amazon CloudFront Streaming Distro. Unexpected response."
|
|
|
|
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: s2member/includes/classes/files-in.inc.php:1408
|
477 |
msgctxt "s2member-admin"
|
478 |
msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
|
479 |
msgstr ""
|
485 |
|
486 |
#: s2member/includes/classes/login-checks.inc.php:76
|
487 |
msgctxt "s2member-front"
|
488 |
+
msgid "<strong>ERROR</strong>: Max simultaneous logins for username: %1$s. Please wait %2$s and try again."
|
|
|
|
|
489 |
msgstr ""
|
490 |
|
491 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
|
492 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
|
493 |
msgctxt "s2member-front"
|
494 |
+
msgid "<strong>Thank you! (you MUST check your email before proceeding).</strong><br /><br />* Note: It can take <em>(up to 15 minutes)</em> for Email Confirmation with important details. If you don't receive email confirmation in the next 15 minutes, please contact Support."
|
|
|
|
|
|
|
|
|
495 |
msgstr ""
|
496 |
|
497 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
|
498 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
|
499 |
msgctxt "s2member-front"
|
500 |
+
msgid "<strong>** Sandbox Mode **</strong> You may NOT receive this Email in Sandbox Mode. Sandbox addresses are usually bogus (for testing)."
|
|
|
|
|
501 |
msgstr ""
|
502 |
|
503 |
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:67
|
504 |
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:65
|
505 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:204
|
506 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:215
|
507 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:226
|
508 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:251
|
509 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:262
|
510 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:372
|
511 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:156
|
512 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:167
|
513 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:178
|
514 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:189
|
515 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:120
|
516 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:131
|
517 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:95
|
518 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:112
|
519 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:138
|
520 |
msgctxt "s2member-front"
|
521 |
msgid "Back To Home Page"
|
522 |
msgstr ""
|
523 |
|
524 |
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:64
|
525 |
msgctxt "s2member-front"
|
526 |
+
msgid "<strong>Thank you! (this is a preview, no action necessary).</strong><br /><br />* Note: each of your Customers are returned back to your site immediately after they complete checkout. This Return Page displays a message and instructions for the Customer. s2Member may change the message and instructions dynamically, based on what the Customer is actually doing <em>(i.e. based on the type of transaction that is taking place)</em>.<br /><br /><em>* With <a href=\"%s\" target=\"_blank\">s2Member Pro</a> installed, it is possible to customize this Return Page in various ways.</em>"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
msgstr ""
|
528 |
|
529 |
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:65
|
532 |
msgid "Continue (Click Here)"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:192
|
536 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:239
|
537 |
msgctxt "s2member-front"
|
538 |
msgid "Thank you! You've been updated to:"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:193
|
542 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:240
|
543 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:145
|
544 |
msgctxt "s2member-front"
|
545 |
msgid "Please Log Back In (Click Here)"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:203
|
549 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:250
|
550 |
msgctxt "s2member-front"
|
551 |
+
msgid "<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact Support for assistance.<br /><br />The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing."
|
|
|
|
|
|
|
|
|
|
|
552 |
msgstr ""
|
553 |
|
554 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:214
|
555 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:261
|
556 |
msgctxt "s2member-front"
|
557 |
+
msgid "<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact Support for assistance.<br /><br />Could not get the existing User ID from the DB."
|
|
|
|
|
|
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:225
|
561 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:371
|
562 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:188
|
563 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:130
|
564 |
msgctxt "s2member-front"
|
565 |
+
msgid "<strong>Page Expired:</strong> Duplicate Return-Data.<br />Please contact Support if you need any assistance."
|
|
|
|
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:332
|
569 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:355
|
570 |
msgctxt "s2member-front"
|
571 |
+
msgid "<strong>Thank you! Your account has been approved.<br />The next step is to Register a Username for immediate access.</strong>"
|
|
|
|
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:333
|
575 |
+
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:356
|
576 |
msgctxt "s2member-front"
|
577 |
msgid "Please Register Now (Click Here)"
|
578 |
msgstr ""
|
584 |
|
585 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:155
|
586 |
msgctxt "s2member-front"
|
587 |
+
msgid "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />The existing User ID is associated with an Administrator. Stopping here. Otherwise, an Administrator could lose access. Please make sure that you are NOT logged in as an Administrator while testing."
|
|
|
|
|
|
|
|
|
|
|
588 |
msgstr ""
|
589 |
|
590 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:166
|
591 |
msgctxt "s2member-front"
|
592 |
+
msgid "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />Could not get the existing User ID from the DB."
|
|
|
|
|
|
|
593 |
msgstr ""
|
594 |
|
595 |
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:177
|
596 |
msgctxt "s2member-front"
|
597 |
+
msgid "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />Missing User/Member details."
|
|
|
|
|
598 |
msgstr ""
|
599 |
|
600 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:108
|
604 |
|
605 |
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:119
|
606 |
msgctxt "s2member-front"
|
607 |
+
msgid "<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact Support for assistance."
|
|
|
|
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:94
|
611 |
msgctxt "s2member-front"
|
612 |
+
msgid "<strong>ERROR:</strong> Unexpected <code>txn_type/status</code>.<br />The <code>txn_type/status</code> did not meet requirements.<br />Please contact Support for assistance."
|
|
|
|
|
|
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:111
|
616 |
msgctxt "s2member-front"
|
617 |
+
msgid "<strong>ERROR:</strong> Unable to verify <code>$_SERVER[\"HTTP_HOST\"]</code>.<br />Please contact Support for assistance.<br /><br />If you are the site owner, please check the <code>custom</code> value in your Button Code. It MUST start with your domain name."
|
|
|
|
|
|
|
|
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: s2member/includes/classes/paypal-return-in.inc.php:137
|
621 |
msgctxt "s2member-front"
|
622 |
+
msgid "<strong>ERROR:</strong> Unable to verify <code>$_POST</code> vars.<br />Please contact Support for assistance.<br /><br />This is most likely related to an invalid configuration of s2Member, or a problem with server compatibility. If you are the site owner, and you're absolutely SURE that your configuration is valid, you may want to run some tests on your server, just to be sure <code>$_POST</code> variables are populated, and that your server is able to connect/communicate with your Payment Gateway over an HTTPS connection.<br /><br />s2Member uses the <code>WP_Http</code> class for remote connections; which will try to use <code>cURL</code> first, and then fall back on the <code>FOPEN</code> method when <code>cURL</code> is not available. On a Windows server, you may have to disable your <code>cURL</code> extension; and instead, set <code>allow_url_fopen = yes</code> in your php.ini file. The <code>cURL</code> extension (usually) does NOT support SSL connections on a Windows server.<br /><br />Please see <a href=\"http://www.s2member.com/forums/topic/ideal-server-configuration-for-s2member/\" target=\"_blank\">this thread</a> for details regarding the ideal server configuration for s2Member."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
623 |
msgstr ""
|
624 |
|
625 |
#. translators: Exclude `%2$s` and `%3$s`. These are English details returned
|
643 |
#: s2member/includes/classes/paypal-utilities.inc.php:232
|
644 |
#: s2member/includes/classes/paypal-utilities.inc.php:238
|
645 |
msgctxt "s2member-front"
|
646 |
+
msgid "Error #%s. Transaction declined. Please use an alternate funding source."
|
|
|
647 |
msgstr ""
|
648 |
|
649 |
#: s2member/includes/classes/paypal-utilities.inc.php:235
|
675 |
|
676 |
#: s2member/includes/classes/paypal-utilities.inc.php:369
|
677 |
msgctxt "s2member-front"
|
678 |
+
msgid " Please contact PayPal Merchant Technical Support (www.paypal.com/mts) and request `Recurring Billing` service, and also ask to have `Reference Transactions` enabled for Recurring Billing via Express Checkout."
|
|
|
|
|
|
|
679 |
msgstr ""
|
680 |
|
681 |
#: s2member/includes/classes/profile-in.inc.php:78
|
693 |
|
694 |
#: s2member/includes/classes/profile-in.inc.php:98
|
695 |
#: s2member/includes/classes/sc-profile-in.inc.php:114
|
696 |
+
#: s2member-pro/includes/separates/gateways/google/google-min.js:1
|
697 |
+
#: s2member-pro/includes/separates/gateways/google/google.js:39
|
698 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:78
|
699 |
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:46
|
700 |
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:78
|
746 |
#: s2member/includes/classes/register-in.inc.php:48
|
747 |
#: s2member/includes/classes/sp-access.inc.php:132
|
748 |
msgctxt "s2member-front"
|
749 |
+
msgid "<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance."
|
|
|
|
|
750 |
msgstr ""
|
751 |
|
752 |
#: s2member/includes/classes/registrations.inc.php:450
|
753 |
msgctxt "s2member-front"
|
754 |
+
msgid "s2Member security violation. You attempted to POST administrative variables that will NOT be trusted in a NON-administrative zone!"
|
|
|
|
|
755 |
msgstr ""
|
756 |
|
757 |
#: s2member/includes/classes/return-templates.inc.php:50
|
771 |
|
772 |
#: s2member/includes/classes/return-templates.inc.php:77
|
773 |
msgctxt "s2member-front"
|
774 |
+
msgid "If you need assistance, please <a href=\"%s\" target=\"_blank\">contact support</a>."
|
|
|
|
|
775 |
msgstr ""
|
776 |
|
777 |
#: s2member/includes/classes/sc-paypal-button-e.inc.php:77
|
783 |
#: s2member/includes/templates/buttons/paypal-ccaps-checkout-button.php:34
|
784 |
#: s2member/includes/templates/buttons/paypal-checkout-button.php:46
|
785 |
#: s2member/includes/templates/buttons/paypal-sp-checkout-button.php:34
|
786 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
787 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:270
|
788 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:562
|
789 |
msgctxt "s2member-front paypal-button-lang-code"
|
790 |
msgid "en_US"
|
791 |
msgstr ""
|
831 |
|
832 |
#: s2member/includes/classes/translations.inc.php:123
|
833 |
msgctxt "s2member-front"
|
834 |
+
msgid "Your account is now active. <a href=\"%1$s\">Visit site</a> or <a href=\"%2$s\">Log in</a>."
|
|
|
|
|
835 |
msgstr ""
|
836 |
|
837 |
#: s2member/includes/classes/translations.inc.php:144
|
838 |
#: s2member/includes/classes/translations.inc.php:166
|
839 |
msgctxt "s2member-front"
|
840 |
+
msgid "By filling out the form below, you can <strong>add a site to your account</strong>."
|
|
|
|
|
841 |
msgstr ""
|
842 |
|
843 |
#: s2member/includes/classes/translations.inc.php:144
|
1084 |
msgstr[0] ""
|
1085 |
msgstr[1] ""
|
1086 |
|
1087 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:32
|
1088 |
+
msgctxt "s2member-front"
|
1089 |
+
msgid "— Confirm File Download —"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
|
1093 |
+
msgctxt "s2member-front"
|
1094 |
+
msgid "You`ve downloaded %s protected %s in the last %s."
|
1095 |
+
msgstr ""
|
1096 |
+
|
1097 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
|
1098 |
+
msgctxt "s2member-front"
|
1099 |
+
msgid "file"
|
1100 |
+
msgstr ""
|
1101 |
+
|
1102 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
|
1103 |
+
msgctxt "s2member-front"
|
1104 |
+
msgid "files"
|
1105 |
+
msgstr ""
|
1106 |
+
|
1107 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
|
1108 |
+
msgctxt "s2member-front"
|
1109 |
+
msgid "24 hours"
|
1110 |
+
msgstr ""
|
1111 |
+
|
1112 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
|
1113 |
+
msgctxt "s2member-front"
|
1114 |
+
msgid "%s days"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1118 |
+
msgctxt "s2member-front"
|
1119 |
+
msgid "You`re entitled to UNLIMITED downloads though (so, no worries)."
|
1120 |
+
msgstr ""
|
1121 |
+
|
1122 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1123 |
+
msgctxt "s2member-front"
|
1124 |
+
msgid "You`re entitled to %s unique %s %s."
|
1125 |
+
msgstr ""
|
1126 |
+
|
1127 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1128 |
+
msgctxt "s2member-front"
|
1129 |
+
msgid "download"
|
1130 |
+
msgstr ""
|
1131 |
+
|
1132 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1133 |
+
msgctxt "s2member-front"
|
1134 |
+
msgid "downloads"
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1138 |
+
msgctxt "s2member-front"
|
1139 |
+
msgid "each day"
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
|
1143 |
+
msgctxt "s2member-front"
|
1144 |
+
msgid "every %s-day period"
|
1145 |
+
msgstr ""
|
1146 |
+
|
1147 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:80
|
1148 |
+
#: s2member/includes/s2member.js:87 s2member/includes/s2member.js:94
|
1149 |
+
#: s2member/includes/s2member.js:130 s2member/includes/s2member.js:185
|
1150 |
+
#: s2member/includes/s2member.js:192 s2member/includes/s2member.js:199
|
1151 |
+
#: s2member/includes/s2member.js:231 s2member/includes/s2member.js:263
|
1152 |
+
#: s2member/includes/s2member.js:290
|
1153 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
1154 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:66
|
1155 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:73
|
1156 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:160
|
1157 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:167
|
1158 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:232
|
1159 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:239
|
1160 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:246
|
1161 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:253
|
1162 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:497
|
1163 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:504
|
1164 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:769
|
1165 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:776
|
1166 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:783
|
1167 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:790
|
1168 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
1169 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:66
|
1170 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:73
|
1171 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:160
|
1172 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:167
|
1173 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:232
|
1174 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:239
|
1175 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:246
|
1176 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:253
|
1177 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:537
|
1178 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:544
|
1179 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:857
|
1180 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:864
|
1181 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:871
|
1182 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:878
|
1183 |
+
msgctxt "s2member-front"
|
1184 |
+
msgid "— Oops, you missed something: —"
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:87
|
1188 |
+
#: s2member/includes/s2member.js:192
|
1189 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
1190 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:239
|
1191 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:776
|
1192 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
1193 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:239
|
1194 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:864
|
1195 |
+
msgctxt "s2member-front"
|
1196 |
+
msgid "Passwords do not match up. Please try again."
|
1197 |
+
msgstr ""
|
1198 |
+
|
1199 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:94
|
1200 |
+
#: s2member/includes/s2member.js:199
|
1201 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
1202 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:246
|
1203 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:783
|
1204 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
1205 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:246
|
1206 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:871
|
1207 |
+
msgctxt "s2member-front"
|
1208 |
+
msgid "Password MUST be at least 6 characters. Please try again."
|
1209 |
+
msgstr ""
|
1210 |
+
|
1211 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:330
|
1212 |
+
msgctxt "s2member-front"
|
1213 |
+
msgid "Strength indicator"
|
1214 |
+
msgstr ""
|
1215 |
+
|
1216 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:331
|
1217 |
+
msgctxt "s2member-front"
|
1218 |
+
msgid "Very weak"
|
1219 |
+
msgstr ""
|
1220 |
+
|
1221 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:332
|
1222 |
+
msgctxt "s2member-front"
|
1223 |
+
msgid "Weak"
|
1224 |
+
msgstr ""
|
1225 |
+
|
1226 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:333
|
1227 |
+
msgctxt "s2member-front"
|
1228 |
+
msgid "Medium"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:334
|
1232 |
+
msgctxt "s2member-front"
|
1233 |
+
msgid "Strong"
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:335
|
1237 |
+
msgctxt "s2member-front"
|
1238 |
+
msgid "Mismatch"
|
1239 |
+
msgstr ""
|
1240 |
+
|
1241 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:364
|
1242 |
+
msgctxt "s2member-front"
|
1243 |
+
msgid "Please check at least one of the boxes."
|
1244 |
+
msgstr ""
|
1245 |
+
|
1246 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:369
|
1247 |
+
msgctxt "s2member-front"
|
1248 |
+
msgid "Required. This box must be checked."
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:375
|
1252 |
+
msgctxt "s2member-front"
|
1253 |
+
msgid "Please select one of the options."
|
1254 |
+
msgstr ""
|
1255 |
+
|
1256 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:380
|
1257 |
+
msgctxt "s2member-front"
|
1258 |
+
msgid "Please select at least one of the options."
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:384
|
1262 |
+
msgctxt "s2member-front"
|
1263 |
+
msgid "This is a required field, please try again."
|
1264 |
+
msgstr ""
|
1265 |
+
|
1266 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:390
|
1267 |
+
msgctxt "s2member-front"
|
1268 |
+
msgid "Must be numeric (with or without decimals, commas allowed)."
|
1269 |
+
msgstr ""
|
1270 |
+
|
1271 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:394
|
1272 |
+
msgctxt "s2member-front"
|
1273 |
+
msgid "Must be numeric (with or without decimals, no commas)."
|
1274 |
+
msgstr ""
|
1275 |
+
|
1276 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:398
|
1277 |
+
msgctxt "s2member-front"
|
1278 |
+
msgid "Must be an integer (a whole number, without any decimals)."
|
1279 |
+
msgstr ""
|
1280 |
+
|
1281 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:402
|
1282 |
+
msgctxt "s2member-front"
|
1283 |
+
msgid "Must be an integer > 0 (whole number, no decimals, greater than 0)."
|
1284 |
+
msgstr ""
|
1285 |
+
|
1286 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:406
|
1287 |
+
msgctxt "s2member-front"
|
1288 |
+
msgid "Must be a float (floating point number, decimals required)."
|
1289 |
+
msgstr ""
|
1290 |
+
|
1291 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:410
|
1292 |
+
msgctxt "s2member-front"
|
1293 |
+
msgid "Must be a float > 0 (floating point number, decimals required, greater than 0)."
|
1294 |
+
msgstr ""
|
1295 |
+
|
1296 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:414
|
1297 |
+
msgctxt "s2member-front"
|
1298 |
+
msgid "Must be a date (required date format: dd/mm/yyyy)."
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:418
|
1302 |
+
msgctxt "s2member-front"
|
1303 |
+
msgid "Must be a valid email address."
|
1304 |
+
msgstr ""
|
1305 |
+
|
1306 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:422
|
1307 |
+
msgctxt "s2member-front"
|
1308 |
+
msgid ""
|
1309 |
+
"Please use a personal email address.\n"
|
1310 |
+
"Addresses like <%s@> are problematic."
|
1311 |
+
msgstr ""
|
1312 |
+
|
1313 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:426
|
1314 |
+
msgctxt "s2member-front"
|
1315 |
+
msgid "Must be a full URL (starting with http or https)."
|
1316 |
+
msgstr ""
|
1317 |
+
|
1318 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:430
|
1319 |
+
msgctxt "s2member-front"
|
1320 |
+
msgid "Must be a domain name (domain name only, without http)."
|
1321 |
+
msgstr ""
|
1322 |
+
|
1323 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:434
|
1324 |
+
msgctxt "s2member-front"
|
1325 |
+
msgid "Must be a phone # (10 digits w/possible hyphens,spaces,brackets)."
|
1326 |
+
msgstr ""
|
1327 |
+
|
1328 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:438
|
1329 |
+
msgctxt "s2member-front"
|
1330 |
+
msgid "Must be a US zipcode (5-9 digits w/possible hyphen)."
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:442
|
1334 |
+
msgctxt "s2member-front"
|
1335 |
+
msgid "Must be a Canadian zipcode (6 alpha-numerics w/possible space)."
|
1336 |
+
msgstr ""
|
1337 |
+
|
1338 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:446
|
1339 |
+
msgctxt "s2member-front"
|
1340 |
+
msgid "Must be a zipcode (either a US or Canadian zipcode)."
|
1341 |
+
msgstr ""
|
1342 |
+
|
1343 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:450
|
1344 |
+
msgctxt "s2member-front"
|
1345 |
+
msgid "Please use alphanumerics, spaces & punctuation only."
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:454
|
1349 |
+
msgctxt "s2member-front"
|
1350 |
+
msgid "Please use alphanumerics & spaces only."
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:458
|
1354 |
+
msgctxt "s2member-front"
|
1355 |
+
msgid "Please use alphanumerics & punctuation only (no spaces)."
|
1356 |
+
msgstr ""
|
1357 |
+
|
1358 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:462
|
1359 |
+
msgctxt "s2member-front"
|
1360 |
+
msgid "Please use alphanumerics only (no spaces/punctuation)."
|
1361 |
+
msgstr ""
|
1362 |
+
|
1363 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:466
|
1364 |
+
msgctxt "s2member-front"
|
1365 |
+
msgid "Please use alphabetics only (no digits/spaces/punctuation)."
|
1366 |
+
msgstr ""
|
1367 |
+
|
1368 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:470
|
1369 |
+
msgctxt "s2member-front"
|
1370 |
+
msgid "Please use numeric digits only."
|
1371 |
+
msgstr ""
|
1372 |
+
|
1373 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
|
1374 |
+
msgctxt "s2member-front"
|
1375 |
+
msgid "Must be exactly %s %s."
|
1376 |
+
msgstr ""
|
1377 |
+
|
1378 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
|
1379 |
+
#: s2member/includes/s2member.js:480
|
1380 |
+
msgctxt "s2member-front"
|
1381 |
+
msgid "digit"
|
1382 |
+
msgstr ""
|
1383 |
+
|
1384 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
|
1385 |
+
#: s2member/includes/s2member.js:480
|
1386 |
+
msgctxt "s2member-front"
|
1387 |
+
msgid "digits"
|
1388 |
+
msgstr ""
|
1389 |
+
|
1390 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
|
1391 |
+
#: s2member/includes/s2member.js:480
|
1392 |
+
msgctxt "s2member-front"
|
1393 |
+
msgid "character"
|
1394 |
+
msgstr ""
|
1395 |
+
|
1396 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
|
1397 |
+
#: s2member/includes/s2member.js:480
|
1398 |
+
msgctxt "s2member-front"
|
1399 |
+
msgid "characters"
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:480
|
1403 |
+
msgctxt "s2member-front"
|
1404 |
+
msgid "Must be at least %s %s."
|
1405 |
+
msgstr ""
|
1406 |
+
|
1407 |
+
#: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:533
|
1408 |
+
msgctxt "s2member-front"
|
1409 |
+
msgid "Processing"
|
1410 |
+
msgstr ""
|
1411 |
+
|
1412 |
#: s2member/includes/syscon.inc.php:84
|
1413 |
msgctxt "s2member-front recaptcha-lang-code"
|
1414 |
msgid "en"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
+
#: s2member/includes/syscon.inc.php:153
|
1418 |
msgctxt "s2member-front"
|
1419 |
msgid "Yes, I want to receive updates via email."
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: s2member/includes/syscon.inc.php:208
|
1423 |
msgctxt "s2member-front"
|
1424 |
msgid "[%s] Username/Password"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: s2member/includes/syscon.inc.php:209
|
1428 |
msgctxt "s2member-front"
|
1429 |
msgid ""
|
1430 |
"Your Username/Password for:\n"
|
1435 |
"%%%%wp_login_url%%%%"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
+
#: s2member/includes/syscon.inc.php:212
|
1439 |
msgctxt "s2member-front"
|
1440 |
msgid "[%s] New User Registration"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: s2member/includes/syscon.inc.php:213
|
1444 |
msgctxt "s2member-front"
|
1445 |
msgid ""
|
1446 |
"New User Registration on your site:\n"
|
1452 |
"IP Address: %%%%user_ip%%%%"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: s2member/includes/syscon.inc.php:235
|
1456 |
#: s2member-pro/includes/syscon.inc.php:94
|
1457 |
msgctxt "s2member-front"
|
1458 |
msgid "Congratulations! (your membership has been approved)"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
+
#: s2member/includes/syscon.inc.php:236
|
1462 |
msgctxt "s2member-front"
|
1463 |
msgid ""
|
1464 |
"Thanks %%%%first_name%%%%! Your membership has been approved.\n"
|
1474 |
"%s"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: s2member/includes/syscon.inc.php:239 s2member/includes/syscon.inc.php:243
|
1478 |
msgctxt "s2member-front"
|
1479 |
msgid "Thank you! Your account has been updated."
|
1480 |
msgstr ""
|
1481 |
|
1482 |
+
#: s2member/includes/syscon.inc.php:240 s2member/includes/syscon.inc.php:244
|
1483 |
msgctxt "s2member-front"
|
1484 |
msgid ""
|
1485 |
+
"Thanks %%%%first_name%%%%! Your account now has access to: %%%%item_name%%%%.\n"
|
|
|
1486 |
"\n"
|
1487 |
"If you have any trouble, please feel free to contact us.\n"
|
1488 |
"\n"
|
1490 |
"%s"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: s2member/includes/syscon.inc.php:247
|
1494 |
#: s2member-pro/includes/syscon.inc.php:98
|
1495 |
msgctxt "s2member-front"
|
1496 |
msgid "Thank You! (instructions for access)"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: s2member/includes/syscon.inc.php:248
|
1500 |
msgctxt "s2member-front"
|
1501 |
msgid ""
|
1502 |
"Thanks %%%%first_name%%%%!\n"
|
1513 |
"%s"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
#: s2member/includes/syscon.inc.php:282
|
1517 |
msgctxt "s2member-front"
|
1518 |
msgid "Free Subscriber"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: s2member/includes/syscon.inc.php:282
|
1522 |
msgctxt "s2member-front"
|
1523 |
msgid "Bronze Member"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
+
#: s2member/includes/syscon.inc.php:282
|
1527 |
msgctxt "s2member-front"
|
1528 |
msgid "Silver Member"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: s2member/includes/syscon.inc.php:282
|
1532 |
msgctxt "s2member-front"
|
1533 |
msgid "Gold Member"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
+
#: s2member/includes/syscon.inc.php:282
|
1537 |
msgctxt "s2member-front"
|
1538 |
msgid "Platinum Member"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: s2member/includes/syscon.inc.php:282
|
1542 |
msgctxt "s2member-front"
|
1543 |
msgid "Level %s Member"
|
1544 |
msgstr ""
|
1639 |
|
1640 |
#: s2member/includes/templates/errors/ip-restrictions.php:13
|
1641 |
msgctxt "s2member-front"
|
1642 |
+
msgid "<strong>503: Service Temporarily Unavailable</strong><br />Too many IP addresses accessing one secure area<em>!</em><br />Please contact Support if you need assistance."
|
|
|
|
|
|
|
1643 |
msgstr ""
|
1644 |
|
1645 |
#: s2member/includes/templates/options/paypal-currencies.php:6
|
2430 |
msgid ""
|
2431 |
"ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
|
2432 |
"\n"
|
2433 |
+
"This is most likely related to an invalid AliPay configuration. If you are the site owner, please check: s2Member -› AliPay Options."
|
|
|
2434 |
msgstr ""
|
2435 |
|
2436 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:116
|
2437 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:115
|
2438 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:113
|
2439 |
msgctxt "s2member-front"
|
2440 |
+
msgid "<strong>Billing termination confirmed.</strong> Your account has been cancelled."
|
|
|
|
|
2441 |
msgstr ""
|
2442 |
|
2443 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:124
|
2458 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:155
|
2459 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:148
|
2460 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:153
|
2461 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:145
|
2462 |
msgctxt "s2member-front"
|
2463 |
msgid "You're <strong>NOT</strong> logged in."
|
2464 |
msgstr ""
|
2465 |
|
2466 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:288
|
2467 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:626
|
2468 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:339
|
2469 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:662
|
2470 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:409
|
2471 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:747
|
2472 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:474
|
2473 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:911
|
2474 |
msgctxt "s2member-front"
|
2475 |
+
msgid "<strong>Thank you.</strong> Your account has been updated.<br />— Please <a href=\"%s\" rel=\"nofollow\">log back in</a> now."
|
|
|
|
|
2476 |
msgstr ""
|
2477 |
|
2478 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
|
2479 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:743
|
2480 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:499
|
2481 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:815
|
2482 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:586
|
2483 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:899
|
2484 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:742
|
2485 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1065
|
2486 |
msgctxt "s2member-front"
|
2487 |
+
msgid "<strong>Thank you.</strong> Your account has been approved.<br />— Please <a href=\"%s\" rel=\"nofollow\">login</a>."
|
|
|
|
|
2488 |
msgstr ""
|
2489 |
|
2490 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:501
|
2491 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:525
|
2492 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:752
|
2493 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:773
|
2494 |
+
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:124
|
2495 |
+
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:141
|
2496 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:508
|
2497 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:529
|
2498 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:824
|
2499 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:845
|
2500 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:595
|
2501 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:616
|
2502 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:908
|
2503 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:929
|
2504 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:751
|
2505 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:772
|
2506 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1074
|
2507 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1095
|
2508 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:124
|
2509 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:141
|
2510 |
+
msgctxt "s2member-front"
|
2511 |
+
msgid "<strong>Oops.</strong> A slight problem. Please contact Support for assistance."
|
|
|
|
|
2512 |
msgstr ""
|
2513 |
|
2514 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
|
2515 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:764
|
2516 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:520
|
2517 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:836
|
2518 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:607
|
2519 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:920
|
2520 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:763
|
2521 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1086
|
2522 |
msgctxt "s2member-front"
|
2523 |
+
msgid "<strong>Thank you.</strong> Your account has been approved.<br />— You'll receive an email momentarily."
|
|
|
|
|
2524 |
msgstr ""
|
2525 |
|
2526 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
|
2527 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:856
|
2528 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-pf-in.inc.php:940
|
2529 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1106
|
2530 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:136
|
2531 |
msgctxt "s2member-front"
|
2532 |
msgid "<strong>Unknown error.</strong> Please contact Support for assistance."
|
2533 |
msgstr ""
|
2714 |
msgid "12 December"
|
2715 |
msgstr ""
|
2716 |
|
2717 |
+
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:117
|
2718 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:117
|
2719 |
msgctxt "s2member-front"
|
2720 |
+
msgid "<strong>Thank you.</strong> Please <a href=\"%s\" rel=\"nofollow\">login</a>."
|
|
|
2721 |
msgstr ""
|
2722 |
|
2723 |
+
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:134
|
2724 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:134
|
2725 |
msgctxt "s2member-front"
|
2726 |
msgid "<strong>Thank you.</strong> You'll receive an email momentarily."
|
2727 |
msgstr ""
|
2728 |
|
2729 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:205
|
2730 |
msgctxt "s2member-admin"
|
2731 |
+
msgid "Authorize.Net configuration error. Please configure your Authorize.Net API Login ID."
|
|
|
|
|
2732 |
msgstr ""
|
2733 |
|
2734 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:208
|
2735 |
msgctxt "s2member-admin"
|
2736 |
+
msgid "Authorize.Net configuration error. Your Authorize.Net API Transaction Key is not yet configured."
|
|
|
|
|
2737 |
msgstr ""
|
2738 |
|
2739 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:211
|
2740 |
msgctxt "s2member-admin"
|
2741 |
+
msgid "Authorize.Net configuration error. Your Authorize.Net Secret MD5 Hash is not yet configured."
|
|
|
|
|
2742 |
msgstr ""
|
2743 |
|
2744 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
|
2746 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
|
2747 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:597
|
2748 |
msgctxt "s2member-front"
|
2749 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
|
|
|
2750 |
msgstr ""
|
2751 |
|
2752 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:236
|
2770 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:272
|
2771 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:608
|
2772 |
msgctxt "s2member-front"
|
2773 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing information."
|
|
|
|
|
2774 |
msgstr ""
|
2775 |
|
2776 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
|
2786 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:302
|
2787 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:308
|
2788 |
msgctxt "s2member-front"
|
2789 |
+
msgid "Nothing to update. You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance."
|
|
|
|
|
2790 |
msgstr ""
|
2791 |
|
2792 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
|
2793 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:314
|
2794 |
msgctxt "s2member-admin"
|
2795 |
+
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [0-%s]."
|
|
|
|
|
2796 |
msgstr ""
|
2797 |
|
2798 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
|
2799 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:317
|
2800 |
msgctxt "s2member-admin"
|
2801 |
+
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [0-%s]."
|
|
|
|
|
2802 |
msgstr ""
|
2803 |
|
2804 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
|
2806 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:320
|
2807 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:426
|
2808 |
msgctxt "s2member-admin"
|
2809 |
+
msgid "Invalid form configuration. Invalid \"ccaps\" attribute. Custom Capabilities. When provided, must be all lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
|
|
|
|
|
|
|
2810 |
msgstr ""
|
2811 |
|
2812 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
|
2814 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:323
|
2815 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:468
|
2816 |
msgctxt "s2member-admin"
|
2817 |
+
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be numeric."
|
|
|
|
|
2818 |
msgstr ""
|
2819 |
|
2820 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
|
2822 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:326
|
2823 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:471
|
2824 |
msgctxt "s2member-admin"
|
2825 |
+
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be >= 1."
|
|
|
|
|
2826 |
msgstr ""
|
2827 |
|
2828 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
|
2830 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:329
|
2831 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:474
|
2832 |
msgctxt "s2member-admin"
|
2833 |
+
msgid "Invalid form configuration. Missing \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
|
|
|
|
|
2834 |
msgstr ""
|
2835 |
|
2836 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
|
2838 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:332
|
2839 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:477
|
2840 |
msgctxt "s2member-admin"
|
2841 |
+
msgid "Invalid form configuration. Invalid \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
|
|
|
|
|
2842 |
msgstr ""
|
2843 |
|
2844 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
|
2845 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:335
|
2846 |
msgctxt "s2member-admin"
|
2847 |
+
msgid "Invalid form configuration. Invalid \"custom\" attribute. When provided, must start with your domain name."
|
|
|
|
|
2848 |
msgstr ""
|
2849 |
|
2850 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
|
2851 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:340
|
2852 |
msgctxt "s2member-admin"
|
2853 |
+
msgid "Invalid form configuration. Missing \"ids\" attribute. Must contain comma-delimited Post/Page IDs."
|
|
|
|
|
2854 |
msgstr ""
|
2855 |
|
2856 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
|
2857 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:343
|
2858 |
msgctxt "s2member-admin"
|
2859 |
+
msgid "Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-delimited Post/Page IDs. Must contain [0-9,] only."
|
|
|
|
|
2860 |
msgstr ""
|
2861 |
|
2862 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
|
2863 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:346
|
2864 |
msgctxt "s2member-admin"
|
2865 |
+
msgid "Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
|
|
|
|
|
2866 |
msgstr ""
|
2867 |
|
2868 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
|
2869 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:349
|
2870 |
msgctxt "s2member-admin"
|
2871 |
+
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
|
|
|
|
|
2872 |
msgstr ""
|
2873 |
|
2874 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
|
2875 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:352
|
2876 |
msgctxt "s2member-admin"
|
2877 |
+
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be >= 1."
|
|
|
|
|
2878 |
msgstr ""
|
2879 |
|
2880 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
|
2881 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:355
|
2882 |
msgctxt "s2member-admin"
|
2883 |
+
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be <= 43800."
|
|
|
|
|
2884 |
msgstr ""
|
2885 |
|
2886 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
|
2887 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:358
|
2888 |
msgctxt "s2member-admin"
|
2889 |
+
msgid "Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
|
|
|
|
|
2890 |
msgstr ""
|
2891 |
|
2892 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
|
2893 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:361
|
2894 |
msgctxt "s2member-admin"
|
2895 |
+
msgid "Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
|
|
|
|
|
2896 |
msgstr ""
|
2897 |
|
2898 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
|
2900 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:364
|
2901 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:432
|
2902 |
msgctxt "s2member-admin"
|
2903 |
+
msgid "Invalid form configuration. Missing \"desc\" attribute. Please provide a Description for this form."
|
|
|
|
|
2904 |
msgstr ""
|
2905 |
|
2906 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
|
2908 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:367
|
2909 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:435
|
2910 |
msgctxt "s2member-admin"
|
2911 |
+
msgid "Invalid form configuration. Your \"desc\" (Description) attribute must be <= 100 characters long."
|
|
|
|
|
2912 |
msgstr ""
|
2913 |
|
2914 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
|
2916 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:370
|
2917 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:438
|
2918 |
msgctxt "s2member-admin"
|
2919 |
+
msgid "Invalid form configuration. Missing \"custom\" attribute. Must start with your domain name."
|
|
|
|
|
2920 |
msgstr ""
|
2921 |
|
2922 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
|
2923 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:373
|
2924 |
msgctxt "s2member-admin"
|
2925 |
+
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with your domain name."
|
|
|
|
|
2926 |
msgstr ""
|
2927 |
|
2928 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
|
2930 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:376
|
2931 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:444
|
2932 |
msgctxt "s2member-admin"
|
2933 |
+
msgid "Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character Currency Code."
|
|
|
|
|
2934 |
msgstr ""
|
2935 |
|
2936 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
|
2938 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:379
|
2939 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:447
|
2940 |
msgctxt "s2member-admin"
|
2941 |
+
msgid "Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character Currency Code."
|
|
|
|
|
2942 |
msgstr ""
|
2943 |
|
2944 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
|
2946 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:400
|
2947 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:537
|
2948 |
msgctxt "s2member-admin"
|
2949 |
+
msgid "Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. Must be >= 0.00."
|
|
|
|
|
2950 |
msgstr ""
|
2951 |
|
2952 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
|
2954 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:403
|
2955 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:540
|
2956 |
msgctxt "s2member-admin"
|
2957 |
+
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be numeric."
|
|
|
|
|
2958 |
msgstr ""
|
2959 |
|
2960 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
|
2962 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:406
|
2963 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:543
|
2964 |
msgctxt "s2member-admin"
|
2965 |
+
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be >= 0.00."
|
|
|
|
|
2966 |
msgstr ""
|
2967 |
|
2968 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:344
|
2969 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:472
|
2970 |
msgctxt "s2member-admin"
|
2971 |
+
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be <= 99999.00."
|
|
|
|
|
2972 |
msgstr ""
|
2973 |
|
2974 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
|
2975 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:414
|
2976 |
msgctxt "s2member-front"
|
2977 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing plan."
|
|
|
|
|
2978 |
msgstr ""
|
2979 |
|
2980 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
|
2981 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:417
|
2982 |
msgctxt "s2member-front"
|
2983 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this purchase."
|
|
|
|
|
2984 |
msgstr ""
|
2985 |
|
2986 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
|
2987 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:420
|
2988 |
msgctxt "s2member-admin"
|
2989 |
+
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
|
|
|
|
|
2990 |
msgstr ""
|
2991 |
|
2992 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
|
2993 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:423
|
2994 |
msgctxt "s2member-admin"
|
2995 |
+
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
|
|
|
|
|
2996 |
msgstr ""
|
2997 |
|
2998 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
|
2999 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:429
|
3000 |
msgctxt "s2member-admin"
|
3001 |
+
msgid "Invalid form configuration. Missing or invalid \"ccaps\" attribute. When \"level\" is \"*\" for (Independent Custom Capabilities), \"ccaps\" is required. All lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
|
|
|
|
|
|
|
|
|
3002 |
msgstr ""
|
3003 |
|
3004 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
|
3005 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:441
|
3006 |
msgctxt "s2member-admin"
|
3007 |
+
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with matching domain."
|
|
|
|
|
3008 |
msgstr ""
|
3009 |
|
3010 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
|
3011 |
msgctxt "s2member-admin"
|
3012 |
+
msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
|
|
|
|
|
3013 |
msgstr ""
|
3014 |
|
3015 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
|
3016 |
msgctxt "s2member-admin"
|
3017 |
+
msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
|
|
|
|
|
3018 |
msgstr ""
|
3019 |
|
3020 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
|
3021 |
msgctxt "s2member-admin"
|
3022 |
+
msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
|
|
|
|
|
3023 |
msgstr ""
|
3024 |
|
3025 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
|
3026 |
msgctxt "s2member-admin"
|
3027 |
+
msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
|
|
|
|
|
3028 |
msgstr ""
|
3029 |
|
3030 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
|
3031 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:480
|
3032 |
msgctxt "s2member-admin"
|
3033 |
+
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be numeric."
|
|
|
|
|
3034 |
msgstr ""
|
3035 |
|
3036 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
|
3037 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:483
|
3038 |
msgctxt "s2member-admin"
|
3039 |
+
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be >= 0.00."
|
|
|
|
|
3040 |
msgstr ""
|
3041 |
|
3042 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:415
|
3043 |
msgctxt "s2member-admin"
|
3044 |
+
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be <= 99999.00."
|
|
|
|
|
3045 |
msgstr ""
|
3046 |
|
3047 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
|
3048 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:489
|
3049 |
msgctxt "s2member-admin"
|
3050 |
+
msgid "Invalid form configuration. Missing \"rp\" attribute. The Regular Period. Must be >= 1."
|
|
|
|
|
3051 |
msgstr ""
|
3052 |
|
3053 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
|
3054 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:492
|
3055 |
msgctxt "s2member-admin"
|
3056 |
+
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be numeric."
|
|
|
|
|
3057 |
msgstr ""
|
3058 |
|
3059 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
|
3060 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:495
|
3061 |
msgctxt "s2member-admin"
|
3062 |
+
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be >= 1."
|
|
|
|
|
3063 |
msgstr ""
|
3064 |
|
3065 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
|
3066 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:498
|
3067 |
msgctxt "s2member-admin"
|
3068 |
+
msgid "Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
|
|
|
|
|
3069 |
msgstr ""
|
3070 |
|
3071 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
|
3072 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:501
|
3073 |
msgctxt "s2member-admin"
|
3074 |
+
msgid "Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
|
|
|
|
|
3075 |
msgstr ""
|
3076 |
|
3077 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:433
|
3078 |
msgctxt "s2member-admin"
|
3079 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) is < 7, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3080 |
msgstr ""
|
3081 |
|
3082 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
|
3083 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:504
|
3084 |
msgctxt "s2member-admin"
|
3085 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) > 365, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3086 |
msgstr ""
|
3087 |
|
3088 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
|
3089 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:507
|
3090 |
msgctxt "s2member-admin"
|
3091 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"W\", \"rp\" (Regular Period) > 52, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3092 |
msgstr ""
|
3093 |
|
3094 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
|
3095 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:510
|
3096 |
msgctxt "s2member-admin"
|
3097 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"M\", \"rp\" (Regular Period) > 12, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3098 |
msgstr ""
|
3099 |
|
3100 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
|
3101 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:519
|
3102 |
msgctxt "s2member-admin"
|
3103 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 1, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3104 |
msgstr ""
|
3105 |
|
3106 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
|
3107 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:522
|
3108 |
msgctxt "s2member-admin"
|
3109 |
+
msgid "Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) > 1."
|
|
|
|
|
|
|
3110 |
msgstr ""
|
3111 |
|
3112 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
|
3113 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:525
|
3114 |
msgctxt "s2member-admin"
|
3115 |
+
msgid "Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3116 |
msgstr ""
|
3117 |
|
3118 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
|
3119 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:528
|
3120 |
msgctxt "s2member-admin"
|
3121 |
+
msgid "Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
|
|
|
|
|
3122 |
msgstr ""
|
3123 |
|
3124 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
|
3126 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:531
|
3127 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:534
|
3128 |
msgctxt "s2member-admin"
|
3129 |
+
msgid "Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
|
|
|
|
|
3130 |
msgstr ""
|
3131 |
|
3132 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
|
3133 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:549
|
3134 |
msgctxt "s2member-admin"
|
3135 |
+
msgid "Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. When provided, must be 0, 1, or BN."
|
|
|
|
|
3136 |
msgstr ""
|
3137 |
|
3138 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
|
3139 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:552
|
3140 |
msgctxt "s2member-admin"
|
3141 |
+
msgid "Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial Period) is not \"0\"."
|
|
|
|
|
|
|
3142 |
msgstr ""
|
3143 |
|
3144 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
|
3145 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:555
|
3146 |
msgctxt "s2member-admin"
|
3147 |
+
msgid "Invalid form configuration. Invalid \"level, rr\" attributes. The \"level\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3148 |
msgstr ""
|
3149 |
|
3150 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
|
3151 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:558
|
3152 |
msgctxt "s2member-admin"
|
3153 |
+
msgid "Invalid form configuration. Invalid \"ta, tp, tt\" attributes. Trial Period. When provided, these cannot be exactly the same as your \"ra, rp, rt\" attributes."
|
|
|
|
|
|
|
3154 |
msgstr ""
|
3155 |
|
3156 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
|
3157 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:561
|
3158 |
msgctxt "s2member-admin"
|
3159 |
+
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be numeric."
|
|
|
|
|
3160 |
msgstr ""
|
3161 |
|
3162 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
|
3163 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:564
|
3164 |
msgctxt "s2member-admin"
|
3165 |
+
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be >= 1."
|
|
|
|
|
3166 |
msgstr ""
|
3167 |
|
3168 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
|
3169 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:567
|
3170 |
msgctxt "s2member-admin"
|
3171 |
+
msgid "Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
|
|
|
|
|
3172 |
msgstr ""
|
3173 |
|
3174 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:520
|
3192 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:611
|
3193 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:761
|
3194 |
msgctxt "s2member-admin"
|
3195 |
+
msgid "Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access."
|
|
|
|
|
3196 |
msgstr ""
|
3197 |
|
3198 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
|
3246 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:726
|
3247 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:818
|
3248 |
msgctxt "s2member-front"
|
3249 |
+
msgid "Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again."
|
|
|
|
|
3250 |
msgstr ""
|
3251 |
|
3252 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
|
3256 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:729
|
3257 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:821
|
3258 |
msgctxt "s2member-front"
|
3259 |
+
msgid "Missing Card Verification Code. It's on the back of your Card. 3-4 digits. Please try again."
|
|
|
|
|
3260 |
msgstr ""
|
3261 |
|
3262 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
|
3266 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:732
|
3267 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:824
|
3268 |
msgctxt "s2member-front"
|
3269 |
+
msgid "Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again."
|
|
|
|
|
3270 |
msgstr ""
|
3271 |
|
3272 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
|
3426 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:675
|
3427 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:755
|
3428 |
msgctxt "s2member-front"
|
3429 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to modify your billing plan."
|
|
|
|
|
3430 |
msgstr ""
|
3431 |
|
3432 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:678
|
3433 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:758
|
3434 |
msgctxt "s2member-front"
|
3435 |
+
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> before making this purchase."
|
|
|
|
|
3436 |
msgstr ""
|
3437 |
|
3438 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:765
|
3442 |
msgstr ""
|
3443 |
|
3444 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:169
|
3445 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:288
|
3446 |
msgctxt "s2member-front"
|
3447 |
+
msgid "<strong>Thank you.</strong> Your purchase has been approved.<br />— Please <a href=\"%s\" rel=\"nofollow\">click here</a> to proceed."
|
|
|
|
|
3448 |
msgstr ""
|
3449 |
|
3450 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:176
|
3451 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:295
|
3452 |
msgctxt "s2member-front"
|
3453 |
+
msgid "<strong>Oops.</strong> Unable to generate Access Link. Please contact Support for assistance."
|
|
|
|
|
3454 |
msgstr ""
|
3455 |
|
3456 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:110
|
3457 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:115
|
3458 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:118
|
3459 |
msgctxt "s2member-front"
|
3460 |
msgid "<strong>Confirmed.</strong> Your billing information has been updated."
|
3461 |
msgstr ""
|
3462 |
|
3463 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:122
|
3464 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:131
|
3465 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:130
|
3466 |
msgctxt "s2member-front"
|
3467 |
+
msgid "<strong>Unable to update.</strong> You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance."
|
|
|
|
|
|
|
3468 |
msgstr ""
|
3469 |
|
3470 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:131
|
3471 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:148
|
3472 |
msgctxt "s2member-front"
|
3473 |
+
msgid "<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance."
|
|
|
3474 |
msgstr ""
|
3475 |
|
3476 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:666
|
3548 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:600
|
3549 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:615
|
3550 |
msgctxt "s2member-front"
|
3551 |
+
msgid "<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s, then %s</strong>)</div>"
|
|
|
|
|
3552 |
msgstr ""
|
3553 |
|
3554 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:923
|
3568 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1028
|
3569 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657
|
3570 |
msgctxt "s2member-front"
|
3571 |
+
msgid "<div>Sorry, your Coupon cannot be applied to this particular purchase.</div>"
|
|
|
3572 |
msgstr ""
|
3573 |
|
3574 |
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1032
|
3606 |
msgid ""
|
3607 |
"ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
|
3608 |
"\n"
|
3609 |
+
"This is most likely related to an invalid ClickBank configuration. If you are the site owner, please check: s2Member -› ClickBank Options."
|
|
|
3610 |
msgstr ""
|
3611 |
|
3612 |
#: s2member-pro/includes/classes/gateways/clickbank/clickbank-utilities.inc.php:168
|
3613 |
msgctxt "s2member-front"
|
3614 |
+
msgid "<strong>Reminder:</strong> Purchases at this site will appear on your credit card or bank statement as: <code>ClickBank</code> or <code>CLKBANK*COM</code>."
|
|
|
|
|
|
|
3615 |
msgstr ""
|
3616 |
|
3617 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:123
|
3618 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:247
|
3619 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:263
|
3620 |
msgctxt "s2member-front"
|
3621 |
+
msgid "<strong>Unable to cancel at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
|
|
|
|
|
3622 |
msgstr ""
|
3623 |
|
3624 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:135
|
3625 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:128
|
3626 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:257
|
3627 |
msgctxt "s2member-front"
|
3628 |
+
msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to cancel your Subscription."
|
|
|
|
|
3629 |
msgstr ""
|
3630 |
|
3631 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:351
|
3632 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:674
|
3633 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:491
|
3634 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:923
|
3635 |
msgctxt "s2member-front"
|
3636 |
+
msgid "<strong>Sorry.</strong> Your account is pending other changes. Please try again in 15 minutes."
|
|
|
|
|
3637 |
msgstr ""
|
3638 |
|
3639 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:378
|
3669 |
|
3670 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:208
|
3671 |
msgctxt "s2member-admin"
|
3672 |
+
msgid "PayPal configuration error. Your PayPal API Username is not yet configured."
|
|
|
3673 |
msgstr ""
|
3674 |
|
3675 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:211
|
3676 |
msgctxt "s2member-admin"
|
3677 |
+
msgid "PayPal configuration error. Your PayPal API Password is not yet configured."
|
|
|
3678 |
msgstr ""
|
3679 |
|
3680 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:214
|
3681 |
msgctxt "s2member-admin"
|
3682 |
+
msgid "PayPal configuration error. Your PayPal API Signature is not yet configured."
|
|
|
3683 |
msgstr ""
|
3684 |
|
3685 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:283
|
3689 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:135
|
3690 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:139
|
3691 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:79
|
3692 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:134
|
3693 |
msgctxt "s2member-front"
|
3694 |
+
msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to update your billing information."
|
|
|
|
|
3695 |
msgstr ""
|
3696 |
|
3697 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:286
|
3698 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:305
|
3699 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:127
|
3700 |
msgctxt "s2member-front"
|
3701 |
+
msgid "<strong>Unable to update at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
|
|
|
|
|
3702 |
msgstr ""
|
3703 |
|
3704 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:382
|
3705 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:450
|
3706 |
msgctxt "s2member-admin"
|
3707 |
+
msgid "Invalid form configuration. Missing \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
|
|
|
|
|
3708 |
msgstr ""
|
3709 |
|
3710 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:385
|
3711 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:453
|
3712 |
msgctxt "s2member-admin"
|
3713 |
+
msgid "Invalid form configuration. Invalid \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
|
|
|
|
|
3714 |
msgstr ""
|
3715 |
|
3716 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:388
|
3717 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:456
|
3718 |
msgctxt "s2member-admin"
|
3719 |
+
msgid "Invalid form configuration. Missing \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
|
|
|
|
|
3720 |
msgstr ""
|
3721 |
|
3722 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:391
|
3723 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:459
|
3724 |
msgctxt "s2member-admin"
|
3725 |
+
msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
|
|
|
|
|
3726 |
msgstr ""
|
3727 |
|
3728 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:394
|
3729 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:462
|
3730 |
msgctxt "s2member-admin"
|
3731 |
+
msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be 1 with \"dg\" (digital) items."
|
|
|
|
|
3732 |
msgstr ""
|
3733 |
|
3734 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:397
|
3735 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:465
|
3736 |
msgctxt "s2member-admin"
|
3737 |
+
msgid "Invalid form configuration. Invalid \"lc\" attribute. Locale Code. When provided, must be a 2 character country code."
|
|
|
|
|
3738 |
msgstr ""
|
3739 |
|
3740 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:409
|
3741 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:546
|
3742 |
msgctxt "s2member-admin"
|
3743 |
+
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be <= 10000.00."
|
|
|
|
|
3744 |
msgstr ""
|
3745 |
|
3746 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:486
|
3747 |
msgctxt "s2member-admin"
|
3748 |
+
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be <= 10000.00."
|
|
|
|
|
3749 |
msgstr ""
|
3750 |
|
3751 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:513
|
3752 |
msgctxt "s2member-admin"
|
3753 |
+
msgid "Invalid Payflow form configuration. Invalid \"rt, rp, rr\" attributes. Payflow supports a specific set of recurring intervals. Pro Forms can be configured to charge: weekly, bi-weekly, monthly, quarterly, semi-yearly or yearly. Any other combination results in this error. This is a Payflow limitation."
|
|
|
|
|
|
|
|
|
|
|
3754 |
msgstr ""
|
3755 |
|
3756 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:516
|
3757 |
msgctxt "s2member-admin"
|
3758 |
+
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 5, and \"rr\" is not \"BN\" (Buy Now)."
|
|
|
|
|
|
|
3759 |
msgstr ""
|
3760 |
|
3761 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:570
|
3762 |
msgctxt "s2member-admin"
|
3763 |
+
msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be numeric."
|
|
|
|
|
|
|
3764 |
msgstr ""
|
3765 |
|
3766 |
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:573
|
3767 |
msgctxt "s2member-admin"
|
3768 |
+
msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be >= 0."
|
|
|
|
|
|
|
3769 |
msgstr ""
|
3770 |
|
3771 |
+
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:140
|
3772 |
msgctxt "s2member-front"
|
3773 |
msgid "<strong>No Subscr. ID.</strong> Please contact Support for assistance."
|
3774 |
msgstr ""
|
3828 |
msgid "My Profile Summary"
|
3829 |
msgstr ""
|
3830 |
|
3831 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3832 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:73
|
3833 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:167
|
3834 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:253
|
3835 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:504
|
3836 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:790
|
3837 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3838 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:73
|
3839 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:167
|
3840 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:253
|
3841 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:544
|
3842 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:878
|
3843 |
+
msgctxt "s2member-front"
|
3844 |
+
msgid "Security Code missing. Please try again."
|
3845 |
+
msgstr ""
|
3846 |
+
|
3847 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3848 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:142
|
3849 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:479
|
3850 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:751
|
3851 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3852 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:142
|
3853 |
+
msgctxt "s2member-front"
|
3854 |
+
msgid "Please choose a Billing Method."
|
3855 |
+
msgstr ""
|
3856 |
+
|
3857 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3858 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:323
|
3859 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:575
|
3860 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3861 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:327
|
3862 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:619
|
3863 |
+
msgctxt "s2member-front"
|
3864 |
+
msgid "Calculating Sales Tax..."
|
3865 |
+
msgstr ""
|
3866 |
+
|
3867 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3868 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:323
|
3869 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:575
|
3870 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3871 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:327
|
3872 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:619
|
3873 |
+
msgctxt "s2member-front"
|
3874 |
+
msgid "calculating sales tax..."
|
3875 |
+
msgstr ""
|
3876 |
+
|
3877 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3878 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:334
|
3879 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:586
|
3880 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3881 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:338
|
3882 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:630
|
3883 |
+
msgctxt "s2member-front"
|
3884 |
+
msgid "<strong>Sales Tax%s:</strong> %s<br /><strong>— Total%s:</strong> %s"
|
3885 |
+
msgstr ""
|
3886 |
+
|
3887 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3888 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:334
|
3889 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:586
|
3890 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3891 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:338
|
3892 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:630
|
3893 |
+
msgctxt "s2member-front"
|
3894 |
+
msgid "Today"
|
3895 |
+
msgstr ""
|
3896 |
+
|
3897 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3898 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:648
|
3899 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3900 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:692
|
3901 |
+
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:62
|
3902 |
+
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:30
|
3903 |
+
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:62
|
3904 |
+
#: s2member-pro/includes/templates/forms/paypal-registration-form.php:30
|
3905 |
+
msgctxt "s2member-front"
|
3906 |
+
msgid "Create Profile"
|
3907 |
+
msgstr ""
|
3908 |
+
|
3909 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
|
3910 |
+
#: s2member-pro/includes/separates/gateways/authnet/authnet.js:649
|
3911 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3912 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:693
|
3913 |
+
msgctxt "s2member-front"
|
3914 |
+
msgid "Your Profile"
|
3915 |
+
msgstr ""
|
3916 |
+
|
3917 |
+
#: s2member-pro/includes/separates/gateways/google/google-min.js:1
|
3918 |
+
#: s2member-pro/includes/separates/gateways/google/google.js:49
|
3919 |
+
msgctxt "s2member-front"
|
3920 |
+
msgid "Thank you! Please check your email for further details."
|
3921 |
+
msgstr ""
|
3922 |
+
|
3923 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
|
3924 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:269
|
3925 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:270
|
3926 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:561
|
3927 |
+
#: s2member-pro/includes/separates/gateways/paypal/paypal.js:562
|
3928 |
+
#: s2member-pro/includes/templates/forms/authnet-cancellation-form.php:36
|
3929 |
+
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:198
|
3930 |
+
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:81
|
3931 |
+
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:179
|
3932 |
+
#: s2member-pro/includes/templates/forms/authnet-update-form.php:117
|
3933 |
+
#: s2member-pro/includes/templates/forms/paypal-cancellation-form.php:36
|
3934 |
+
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:198
|
3935 |
+
#: s2member-pro/includes/templates/forms/paypal-registration-form.php:81
|
3936 |
+
#: s2member-pro/includes/templates/forms/paypal-sp-checkout-form.php:179
|
3937 |
+
#: s2member-pro/includes/templates/forms/paypal-update-form.php:117
|
3938 |
+
msgctxt "s2member-front"
|
3939 |
+
msgid "Submit Form"
|
3940 |
+
msgstr ""
|
3941 |
+
|
3942 |
#: s2member-pro/includes/syscon.inc.php:95
|
3943 |
msgctxt "s2member-front"
|
3944 |
msgid ""
|
3950 |
"Charges today: $%%%%initial%%%%\n"
|
3951 |
"Recurring charges: $%%%%recurring/regular_cycle%%%%\n"
|
3952 |
"\n"
|
3953 |
+
"Your Username/Password will arrive shortly, in a separate email. If you have any trouble, please feel free to contact us.\n"
|
|
|
3954 |
"\n"
|
3955 |
"Best Regards,\n"
|
3956 |
"%s"
|
3982 |
msgid "Confirm Cancellation"
|
3983 |
msgstr ""
|
3984 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3985 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:21
|
3986 |
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:21
|
3987 |
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:21
|
4014 |
msgid "Apply Coupon"
|
4015 |
msgstr ""
|
4016 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4017 |
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:84
|
4018 |
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:52
|
4019 |
#: s2member-pro/includes/templates/forms/paypal-checkout-form.php:84
|
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
|
@@ -16,12 +16,12 @@ Authorize.Net® Compatible: yes w/s2Member® Pro
|
|
16 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
17 |
ClickBank® Compatible: yes w/s2Member® Pro
|
18 |
|
19 |
-
Tested up to: 3.
|
20 |
Requires at least: 3.3
|
21 |
|
22 |
Copyright: © 2009 WebSharks, Inc.
|
23 |
License: GNU General Public License v2 or later.
|
24 |
-
Contributors: WebSharks, anguz
|
25 |
|
26 |
Author: s2Member® / WebSharks, Inc.
|
27 |
Author URI: http://www.s2member.com/
|
@@ -142,12 +142,45 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
|
|
142 |
|
143 |
== Upgrade Notice ==
|
144 |
|
145 |
-
=
|
146 |
|
147 |
(Maintenance Release) Upgrade immediately.
|
148 |
|
149 |
== Changelog ==
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
= v140105 =
|
152 |
|
153 |
* (s2Member/s2Member Pro) **Compatibility**. Updated to support WordPress v3.8. Nothing significant, just minor UI tweaks in the Login/Registration Design for WordPress v3.8; e.g. `wp-login.php` got some minor improvements in this release of s2Member and s2Member Pro.
|
1 |
=== s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
|
2 |
|
3 |
+
Version: 140328
|
4 |
+
Stable tag: 140328
|
5 |
|
6 |
SSL Compatible: yes
|
7 |
bbPress® Compatible: yes
|
16 |
Google® Checkout Compatible: yes w/s2Member® Pro
|
17 |
ClickBank® Compatible: yes w/s2Member® Pro
|
18 |
|
19 |
+
Tested up to: 3.9
|
20 |
Requires at least: 3.3
|
21 |
|
22 |
Copyright: © 2009 WebSharks, Inc.
|
23 |
License: GNU General Public License v2 or later.
|
24 |
+
Contributors: WebSharks, JasWSInc, anguz, raamdev
|
25 |
|
26 |
Author: s2Member® / WebSharks, Inc.
|
27 |
Author URI: http://www.s2member.com/
|
142 |
|
143 |
== Upgrade Notice ==
|
144 |
|
145 |
+
= v140328 =
|
146 |
|
147 |
(Maintenance Release) Upgrade immediately.
|
148 |
|
149 |
== Changelog ==
|
150 |
|
151 |
+
= v140328 =
|
152 |
+
|
153 |
+
* (s2Member/s2Member Pro) **Compatibility**. Updated to support WordPress v3.9. Nothing significant, just minor UI tweaks to make s2Member fully compatible with WP v3.9.
|
154 |
+
* (s2Member) **Compatibility**. Updating for backward compatibility with WordPress v3.8 - 3.3 by tweaking calls to `get_post()`. See this [commit](https://github.com/WebSharks/s2Member/commit/7b8c8aecc3e8d0d0bada3e80f41615b968a763f8) for further details.
|
155 |
+
* (s2Member/s2Member Pro) **Translations**. Updating the `includes/translations/s2member.pot` [file](https://github.com/WebSharks/s2Member/tree/000000-dev/s2member/includes/translations) to include the entire set of translation strings for both s2Member and s2Member Pro. Some translation entries from JS files were missing in the previous release due to a glitch in our WP i18n processor. Fixed in this release.
|
156 |
+
* (s2Member) **Server Check Tool**. Updating the [s2Member Server Scanner](https://www.s2member.com/kb/server-scanner/) to exclude checksum validations against README files. This release includes other scanning improvements also, which allow the tool to do a better job of scanning for compatibility issues.
|
157 |
+
* (s2Member Pro) **GetResponse Integration**. This release adds support for GetResponse™ as an email service provider. s2Member now comes preintegrated with GetResponse™ (requires s2Member Pro), MailChimp® and AWeber™ too.
|
158 |
+
* (s2Member) **Double Opt-In Article**. Updating inline documentation to include further details about Double Opt-Ins via [this KB article](http://www.s2member.com/kb/double-opt-in-checkbox/).
|
159 |
+
* (s2Member) **Compatibility**. Adding support for `$_SERVER['WP_DIR']` (to help developers with a particular edge case). For further details please see [this GitHub issue](https://github.com/WebSharks/s2Member/issues/39).
|
160 |
+
* (s2Member) **Auto-EOT Time Column**. This release adds an Auto-EOT Time column to the list of Users in the WordPress Dashboard. Note: it is possible to show/hide specific columns with the Screen Options tab in WordPress.
|
161 |
+
* (s2Member) **HTML Trimming**. Adding a new utility method to the s2Member codebase. This [method](https://github.com/WebSharks/s2Member/commit/aa19d23511e9c34a5cc00628285107da9a565594) helps cleanup HTML-based whitespace (and extra line breaks) that are injected inadvertently by some themes when site owners use the `[s2If]` shortcode.
|
162 |
+
* (s2Member) **Bug Fix**. Fixing an issue related to Login Redirections over SSL. For further details please see [this GitHub issue](https://github.com/WebSharks/s2Member/issues/59).
|
163 |
+
* (s2Member) **All Custom Capabilities**. If your site offers many different CCAPS (Custom Capabilities) and you'd like a way to sell someone access to all of them at once (without needing to list each of them one-by-one); this is now possible. This is accomplished by selling a customer the special CCAP `all_ccaps`. If the `current_user_can('access_s2member_ccap_all_ccaps')`, they will be granted access to ALL Custom Capabilities that you've implemented on the site (now, and in the future). For instance, if the `current_user_can('access_s2member_ccap_all_ccaps')` they can also `access_s2member_ccap_music` even if they don't actually have CCAP `music`. In short, `all_ccaps` grants a customer access to all CCAPS automatically.
|
164 |
+
* (s2Member) **E_NOTICE**. Updating several areas of the s2Member codebase in an ongoing effort to make s2Member behave as expected when running in `WP_DEBUG` mode. Note that `WP_DEBUG` is NOT recommended for a production site (this mode is reserved for developers only please).
|
165 |
+
* (s2Member) **Bug Fix**. Fixing a bug related to redirections over SSL in an edge case. See [this GitHub commit](https://github.com/WebSharks/s2Member/commit/881a8f513ff00d1932f33928c771cab38ab84dc7) if you'd like further details.
|
166 |
+
* (s2Member) **Bug Fix**. Fixing a bug in the way s2Member handles IP Restrictions in one particular area of the source code. See [this GitHub issue](https://github.com/WebSharks/s2Member/issues/63) if you'd like further details.
|
167 |
+
* (s2Member) **File Downloads (Content-Encoding)**. Adding a new configurable option for site owners that use protected File Downloads with s2Member. There is a known issue on some hosting platforms; and this new configurable option provides a workaround that is related to the `Content-Encoding` header. Please see: `Dashboard ⥱ s2Member ⥱ Download Options ⥱ Preventing GZIP Conflicts` to configure this new setting. See also [this GitHub issue](https://github.com/WebSharks/s2Member/issues/70) if you'd like further details.
|
168 |
+
* (s2Member) **Apache Compatibility**. Updating s2Member's `.htaccess` files to provide support for the `Require` directive supplied by the `authz_core_module` in the most recent versions of Apache. s2Member also maintains backward compatibility for the `allow/deny` directives used in previous versions of Apache.
|
169 |
+
* (s2Member Pro) **Gateway-Specific Variables**. Adding gateway-specific variables for use in email templates configured with s2Member. For further details please see [this GitHub issue](https://github.com/WebSharks/s2Member/issues/25).
|
170 |
+
* (s2Member) **Cosmetics**. Updating s2Member's adminitrative menu pages to enhance their appearance in the most recent versions of WordPress. Nothing significant, just minor tweaks.
|
171 |
+
* (s2Member Pro) **PayPal IPNs**. Adding support for `txn_type` values: `merch_pmt`, `mp_signup`, and `mp_cancel` to enhance s2Member's support for Billing Agreements when integrated together with a PayPal Pro (Payflow Edition) account that processes Express Checkout transactions. This also resolves a bug related to cancellation IPN processing in a specific scenario. Fixed in this release.
|
172 |
+
* (s2Member Pro) **[s2If][else]**. Requires s2Member Pro. This release adds support for a new `[else]` condition when using the `[s2If]` shortcode to protect parts of your content. For examples, please see: `Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Simple Shortcode Conditionals`. See also: `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals`.
|
173 |
+
* (s2Member Pro) **[s2If php=""]**. Requires s2Member Pro. This release adds support for a new `php` Shortcode Attribute; e.g. `[s2If php=""]`. This makes it possible to use arbitrary PHP code in your `[s2If]` shortcodes. For examples, please see: `Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Simple Shortcode Conditionals`. **Note: this feature is disabled by default.** You must enable the `php` attribute for this to work as expected. Please see: `Dashboard ⥱ s2Member ⥱ Restriction Options ⥱ Simple Shortcode Conditionals` (with s2Member Pro installed).
|
174 |
+
* (s2Member) **Bug Fix**. Correcting an issue related to Login Redirections and an E_NOTICE. Please see [this GitHub issue](https://github.com/WebSharks/s2Member/issues/75) if you'd like further details.
|
175 |
+
* (s2Member Pro) **[s2Drip]**. Requires s2Member Pro. This release adds support for a new easy-to-use shortcode that can drip content to paying Members based on their Membership Level. For examples, please see: `Dashboard ⥱ s2Member ⥱ API Scripting ⥱ Content Dripping`.
|
176 |
+
* (s2Member Pro) **ClickBank**. Adding support for the `vtid` parameter in ClickBank Button Shortcodes. See [this GitHub issue](https://github.com/WebSharks/s2Member/issues/44) if you'd like further details.
|
177 |
+
* (s2Member Pro) **PayPal Express Checkout**. Updating PayPal Express Checkout cancellation links so they will automatically use the PayPal Merchant ID supplied by a site owner (i.e. PayPal's recommended behavior). If you'd like further details please see [this GitHub commit](https://github.com/WebSharks/s2Member-Pro/commit/5efbe35eed352868a956c94e51ab09f8e561892a).
|
178 |
+
* (s2Member Pro) **Pro Forms**. Adding a new filter for developers `s2member_pro_cancels_old_rp_before_new_rp`. This is true by default. If you'd like to prevent s2Member from terminating an existing Recurring Profile (before creating a new one); i.e. during an upgrade... you can set this to a FALSE value. Not recommended, but there are a few edge cases where it could be helpful for developers. See also [this GitHub commit](https://github.com/WebSharks/s2Member-Pro/commit/19a84c81070bb0e1869b5dbd9d0325cc458fd016).
|
179 |
+
* (s2Member Pro) **ClickBank Bug Fix**. Adding support for alphabetics in ClickBank Item Numbers. This bug impacted the ClickBank Button Generator only, it did not prevent alphabetics from being used in a raw Shortcode. Still, this has been resolved now. See also [this GitHub issue](https://github.com/WebSharks/s2Member/issues/46).
|
180 |
+
* (s2Member Pro) **PayPal Mobile Bug Fix**. This release corrects a bug related to the `MAXAMT` PayPal specification that is sent via Express Checkout on a mobile device. A symptom of this bug was to sometimes see PayPal's awkward default amount of `$25` when completing checkout on a mobile device. Fixed in this release.
|
181 |
+
* (s2Member Pro) **PayPal Express Checkout**. This release addresses an issue where a customer reaches PayPal.com with an item description that inadequately reads "Future payment" (i.e. missing the description provided by a site owner). PayPal's latest improvements have made it possible for s2Member to get this right. Resolved in this release.
|
182 |
+
* (s2Member/s2Member Pro) **Partial Refunds**. This release adds support for Partial Refunds in the s2Member EOT Behavior Options. See also [this GitHub issue](https://github.com/WebSharks/s2Member/issues/40).
|
183 |
+
|
184 |
= v140105 =
|
185 |
|
186 |
* (s2Member/s2Member Pro) **Compatibility**. Updated to support WordPress v3.8. Nothing significant, just minor UI tweaks in the Login/Registration Design for WordPress v3.8; e.g. `wp-login.php` got some minor improvements in this release of s2Member and s2Member Pro.
|
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
|
@@ -75,7 +75,7 @@ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
|
|
75 |
* @var str
|
76 |
*/
|
77 |
if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
|
78 |
-
define("WS_PLUGIN__S2MEMBER_VERSION", "
|
79 |
/**
|
80 |
* Minimum PHP version required to run s2Member.
|
81 |
*
|
@@ -105,7 +105,7 @@ if(!defined("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION"))
|
|
105 |
* @var str
|
106 |
*/
|
107 |
if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
|
108 |
-
define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "
|
109 |
/*
|
110 |
Several compatibility checks.
|
111 |
If all pass, load the s2Member plugin.
|
19 |
*/
|
20 |
/* -- This section for WordPress parsing. ------------------------------------------------------------------------------
|
21 |
|
22 |
+
Version: 140328
|
23 |
+
Stable tag: 140328
|
24 |
|
25 |
SSL Compatible: yes
|
26 |
bbPress Compatible: yes
|
75 |
* @var str
|
76 |
*/
|
77 |
if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
|
78 |
+
define("WS_PLUGIN__S2MEMBER_VERSION", "140328" /* !#distro-version#! */);
|
79 |
/**
|
80 |
* Minimum PHP version required to run s2Member.
|
81 |
*
|
105 |
* @var str
|
106 |
*/
|
107 |
if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
|
108 |
+
define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "140328" /* !#distro-version#! */);
|
109 |
/*
|
110 |
Several compatibility checks.
|
111 |
If all pass, load the s2Member plugin.
|