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

Version Description

= v140105 =

(Maintenance Release) Upgrade immediately.

Download this release

Release Info

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

Code changes from version 131126 to 140105

checksum.txt CHANGED
@@ -1 +1 @@
1
- 5718bf703692fc39fab134dd4f863d5c
1
+ dcd346ee3120bceb8a2baf42bb6a94de
images/large-icon.png CHANGED
Binary file
includes/classes/admin-notices.inc.php CHANGED
@@ -116,7 +116,7 @@ if (!class_exists ("c_ws_plugin__s2member_admin_notices"))
116
117
if (is_admin () && is_array ($notices = get_option ("ws_plugin__s2member_notices")) && !empty ($notices))
118
{
119
- $a = (is_blog_admin ()) ? "blog" : $a;
120
$a = (is_user_admin ()) ? "user" : $a;
121
$a = (is_network_admin ()) ? "network" : $a;
122
$a = /* Default Blog Admin. */(!$a) ? "blog" : $a;
116
117
if (is_admin () && is_array ($notices = get_option ("ws_plugin__s2member_notices")) && !empty ($notices))
118
{
119
+ $a = (is_blog_admin ()) ? "blog" : "";
120
$a = (is_user_admin ()) ? "user" : $a;
121
$a = (is_network_admin ()) ? "network" : $a;
122
$a = /* Default Blog Admin. */(!$a) ? "blog" : $a;
includes/classes/css-js-themes.inc.php CHANGED
@@ -41,6 +41,8 @@ if (!class_exists ("c_ws_plugin__s2member_css_js_themes"))
41
42
if(isset($load)) return $load;
43
44
if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"])
45
$load = TRUE;
46
@@ -54,7 +56,7 @@ if (!class_exists ("c_ws_plugin__s2member_css_js_themes"))
54
&& (bp_is_register_page() || bp_is_activation_page() || bp_is_user_profile()))
55
$load = TRUE;
56
57
- else if(is_singular() && ($post = get_post(NULL))
58
&& (stripos($post->post_content, "s2member") !== FALSE
59
|| stripos($post->post_content, "[s2") !== FALSE))
60
$load = TRUE;
41
42
if(isset($load)) return $load;
43
44
+ $null = NULL; // Needed below in earlier versions of WP.
45
+
46
if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"])
47
$load = TRUE;
48
56
&& (bp_is_register_page() || bp_is_activation_page() || bp_is_user_profile()))
57
$load = TRUE;
58
59
+ else if(is_singular() && ($post = get_post($null))
60
&& (stripos($post->post_content, "s2member") !== FALSE
61
|| stripos($post->post_content, "[s2") !== FALSE))
62
$load = TRUE;
includes/classes/files-in.inc.php CHANGED
@@ -583,6 +583,14 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
583
{
584
do_action("ws_plugin__s2member_during_check_file_remote_authorization_before", get_defined_vars());
585
586
if(empty($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_PW"]) || !user_pass_ok($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]))
587
{
588
header('WWW-Authenticate: Basic realm="'.c_ws_plugin__s2member_utils_strings::esc_dq(strip_tags(_x("Members Only", "s2member-front", "s2member"))).'"');
@@ -699,7 +707,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
699
$s3_location = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "/".$s3c["bucket"]."/?acl" : "/?acl";
700
$s3_domain = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "s3.amazonaws.com" : $s3c["bucket"].".s3.amazonaws.com";
701
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("GET\n\n\n".$s3_date."\n/".$s3c["bucket"]."/?acl"));
702
- $s3_args = array("method" => "GET", "redirection" => 0, "headers" => array("Host" => $s3_domain, "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
703
704
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
705
{
@@ -708,7 +716,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
708
$s3_owner = array("access_id" => trim($s3_owner_id_tag[1]), "display_name" => trim($s3_owner_display_name_tag[1]));
709
$s3_acls_xml = '<AccessControlPolicy><Owner><ID>'.esc_html($s3_owner["access_id"]).'</ID><DisplayName>'.esc_html($s3_owner["display_name"]).'</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>'.esc_html($s3_owner["access_id"]).'</ID><DisplayName>'.esc_html($s3_owner["display_name"]).'</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant>'.(($cfc["distros_s3_access_id"]) ? '<Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>'.esc_html($cfc["distros_s3_access_id"]).'</ID><DisplayName>s2Member/CloudFront</DisplayName></Grantee><Permission>READ</Permission></Grant>' : '').'</AccessControlList></AccessControlPolicy>';
710
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\napplication/xml\n".$s3_date."\n/".$s3c["bucket"]."/?acl"));
711
- $s3_args = array("method" => "PUT", "redirection" => 0, "body" => $s3_acls_xml, "headers" => array("Host" => $s3_domain, "Content-Type" => "application/xml", "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
712
713
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
714
{
@@ -716,14 +724,14 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
716
($s3_policy_id = md5(uniqid("s2Member/CloudFront:", true))).($s3_policy_sid = md5(uniqid("s2Member/CloudFront:", true)));
717
$s3_policy_json = '{"Version":"2008-10-17","Id":"'.c_ws_plugin__s2member_utils_strings::esc_dq($s3_policy_id).'","Statement":[{"Sid":"'.c_ws_plugin__s2member_utils_strings::esc_dq($s3_policy_sid).'","Effect":"Allow","Principal":{"CanonicalUser":"'.c_ws_plugin__s2member_utils_strings::esc_dq($cfc["distros_s3_access_id"]).'"},"Action":"s3:GetObject","Resource":"arn:aws:s3:::'.c_ws_plugin__s2member_utils_strings::esc_dq($s3c["bucket"]).'/*"}]}';
718
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\napplication/json\n".$s3_date."\n/".$s3c["bucket"]."/?policy"));
719
- $s3_args = array("method" => "PUT", "redirection" => 0, "body" => $s3_policy_json, "headers" => array("Host" => $s3_domain, "Content-Type" => "application/json", "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
720
721
if(!$cfc["distros_s3_access_id"] || (($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && ($s3_response["code"] === 200 || $s3_response["code"] === 204 /* Also OK. */)))
722
{
723
$s3_location = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "/".$s3c["bucket"]."/crossdomain.xml" : "/crossdomain.xml";
724
$s3_policy_xml = trim(c_ws_plugin__s2member_utilities::evl(file_get_contents(dirname(dirname(__FILE__))."/templates/cfg-files/s2-cross-xml.php")));
725
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\ntext/xml\n".$s3_date."\nx-amz-acl:public-read\n/".$s3c["bucket"]."/crossdomain.xml"));
726
- $s3_args = array("method" => "PUT", "redirection" => 0, "body" => $s3_policy_xml, "headers" => array("Host" => $s3_domain, "Content-Type" => "text/xml", "Date" => $s3_date, "X-Amz-Acl" => "public-read", "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
727
728
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
729
return /* Successfully configured Amazon S3 Bucket ACLs and Policy. */ array("success" => true, "code" => null, "message" => null);
@@ -1031,7 +1039,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1031
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1032
$cf_location = "/2010-11-01/origin-access-identity/cloudfront/".$access_id;
1033
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1034
- $cf_args = array("method" => "GET", "redirection" => 0, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1035
1036
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && (($cf_response["code"] === 404 && $cf_response["message"]) || ($cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))))
1037
{
@@ -1079,7 +1087,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1079
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1080
$cf_location = "/2010-11-01/origin-access-identity/cloudfront/".$access_id;
1081
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1082
- $cf_args = array("method" => "DELETE", "redirection" => 0, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "If-Match" => $access_id_etag, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1083
1084
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 204 /* Deleted. */))
1085
return /* Deleted successfully. */ array("success" => true, "code" => null, "message" => null);
@@ -1119,7 +1127,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1119
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1120
$cf_distros_access_reference = time().".".md5("access".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"]);
1121
$cf_distros_access_xml = '<?xml version="1.0" encoding="UTF-8"?><CloudFrontOriginAccessIdentityConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><CallerReference>'.esc_html($cf_distros_access_reference).'</CallerReference><Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment></CloudFrontOriginAccessIdentityConfig>';
1122
- $cf_args = array("method" => "POST", "redirection" => 0, "body" => $cf_distros_access_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1123
1124
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1125
{
@@ -1163,7 +1171,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1163
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1164
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1165
$cf_location = ($distro_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id : "/2010-11-01/distribution/".$distro_id;
1166
- $cf_args = array("method" => "GET", "redirection" => 0, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1167
1168
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && (($cf_response["code"] === 404 && $cf_response["message"]) || ($cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))))
1169
{
@@ -1216,7 +1224,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1216
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1217
$cf_location = ($distro_id_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id."/config" : "/2010-11-01/distribution/".$distro_id."/config";
1218
$cf_distro_xml = ($distro_id_type === "streaming") ? '<?xml version="1.0" encoding="UTF-8"?><StreamingDistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName></S3Origin><CallerReference>'.esc_html($distro_id_reference).'</CallerReference><Enabled>false</Enabled><TrustedSigners><Self/></TrustedSigners></StreamingDistributionConfig>' : '<?xml version="1.0" encoding="UTF-8"?><DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName></S3Origin><CallerReference>'.esc_html($distro_id_reference).'</CallerReference><Enabled>false</Enabled><TrustedSigners><Self/></TrustedSigners></DistributionConfig>';
1219
- $cf_args = array("method" => "PUT", "redirection" => 0, "body" => $cf_distro_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "If-Match" => $distro_id_etag, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1220
1221
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && $cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))
1222
return array("success" => true, "code" => null, "message" => null, "etag" => trim($cf_response["headers"]["etag"]), "xml" => trim($cf_response["body"]), "deployed" => ((stripos($cf_response["body"], "<Status>Deployed</Status>") !== false) ? true : false));
@@ -1271,7 +1279,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1271
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1272
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1273
$cf_location = ($distro_id_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id : "/2010-11-01/distribution/".$distro_id;
1274
- $cf_args = array("method" => "DELETE", "redirection" => 0, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "If-Match" => $cf_response["etag"], "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1275
1276
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 204 /* Deleted. */))
1277
return /* Deleted successfully. */ array("success" => true, "code" => null, "message" => null);
@@ -1338,7 +1346,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1338
$cf_location = /* Create distro. */ "/2010-11-01/distribution";
1339
$cf_distro_downloads_reference = time().".".md5("downloads".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"].$cfc["distro_downloads_cname"]);
1340
$cf_distro_downloads_xml = '<?xml version="1.0" encoding="UTF-8"?><DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName><OriginAccessIdentity>origin-access-identity/cloudfront/'.esc_html($cfc["distros_access_id"]).'</OriginAccessIdentity></S3Origin><CallerReference>'.esc_html($cf_distro_downloads_reference).'</CallerReference>'.(($cfc["distro_downloads_cname"]) ? '<CNAME>'.esc_html($cfc["distro_downloads_cname"]).'</CNAME>' : '').'<Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment><Enabled>true</Enabled><DefaultRootObject>index.html</DefaultRootObject><TrustedSigners><Self/></TrustedSigners></DistributionConfig>';
1341
- $cf_args = array("method" => "POST", "redirection" => 0, "body" => $cf_distro_downloads_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1342
1343
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1344
{
@@ -1361,7 +1369,7 @@ if(!class_exists("c_ws_plugin__s2member_files_in"))
1361
$cf_location = /* Create streaming distro. */ "/2010-11-01/streaming-distribution";
1362
$cf_distro_streaming_reference = time().".".md5("streaming".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"].$cfc["distro_streaming_cname"]);
1363
$cf_distro_streaming_xml = '<?xml version="1.0" encoding="UTF-8"?><StreamingDistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName><OriginAccessIdentity>origin-access-identity/cloudfront/'.esc_html($cfc["distros_access_id"]).'</OriginAccessIdentity></S3Origin><CallerReference>'.esc_html($cf_distro_streaming_reference).'</CallerReference>'.(($cfc["distro_streaming_cname"]) ? '<CNAME>'.esc_html($cfc["distro_streaming_cname"]).'</CNAME>' : '').'<Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment><Enabled>true</Enabled><DefaultRootObject>index.html</DefaultRootObject><TrustedSigners><Self/></TrustedSigners></StreamingDistributionConfig>';
1364
- $cf_args = array("method" => "POST", "redirection" => 0, "body" => $cf_distro_streaming_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1365
1366
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1367
{
583
{
584
do_action("ws_plugin__s2member_during_check_file_remote_authorization_before", get_defined_vars());
585
586
+ if((empty($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"] === "NOUSER") && !empty($_SERVER["HTTP_AUTHORIZATION"]))
587
+ {
588
+ $auth = trim(preg_replace("/^.+?\s+/", "", $_SERVER["HTTP_AUTHORIZATION"]));
589
+ $auth = explode(":", base64_decode($auth), 2);
590
+
591
+ if(!empty($auth[0])) $_SERVER["PHP_AUTH_USER"] = $auth[0];
592
+ if(!empty($auth[1])) $_SERVER["PHP_AUTH_PW"] = $auth[1];
593
+ }
594
if(empty($_SERVER["PHP_AUTH_USER"]) || empty($_SERVER["PHP_AUTH_PW"]) || !user_pass_ok($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]))
595
{
596
header('WWW-Authenticate: Basic realm="'.c_ws_plugin__s2member_utils_strings::esc_dq(strip_tags(_x("Members Only", "s2member-front", "s2member"))).'"');
707
$s3_location = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "/".$s3c["bucket"]."/?acl" : "/?acl";
708
$s3_domain = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "s3.amazonaws.com" : $s3c["bucket"].".s3.amazonaws.com";
709
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("GET\n\n\n".$s3_date."\n/".$s3c["bucket"]."/?acl"));
710
+ $s3_args = array("method" => "GET", "redirection" => 5, "headers" => array("Host" => $s3_domain, "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
711
712
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
713
{
716
$s3_owner = array("access_id" => trim($s3_owner_id_tag[1]), "display_name" => trim($s3_owner_display_name_tag[1]));
717
$s3_acls_xml = '<AccessControlPolicy><Owner><ID>'.esc_html($s3_owner["access_id"]).'</ID><DisplayName>'.esc_html($s3_owner["display_name"]).'</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>'.esc_html($s3_owner["access_id"]).'</ID><DisplayName>'.esc_html($s3_owner["display_name"]).'</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant>'.(($cfc["distros_s3_access_id"]) ? '<Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>'.esc_html($cfc["distros_s3_access_id"]).'</ID><DisplayName>s2Member/CloudFront</DisplayName></Grantee><Permission>READ</Permission></Grant>' : '').'</AccessControlList></AccessControlPolicy>';
718
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\napplication/xml\n".$s3_date."\n/".$s3c["bucket"]."/?acl"));
719
+ $s3_args = array("method" => "PUT", "redirection" => 5, "body" => $s3_acls_xml, "headers" => array("Host" => $s3_domain, "Content-Type" => "application/xml", "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
720
721
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
722
{
724
($s3_policy_id = md5(uniqid("s2Member/CloudFront:", true))).($s3_policy_sid = md5(uniqid("s2Member/CloudFront:", true)));
725
$s3_policy_json = '{"Version":"2008-10-17","Id":"'.c_ws_plugin__s2member_utils_strings::esc_dq($s3_policy_id).'","Statement":[{"Sid":"'.c_ws_plugin__s2member_utils_strings::esc_dq($s3_policy_sid).'","Effect":"Allow","Principal":{"CanonicalUser":"'.c_ws_plugin__s2member_utils_strings::esc_dq($cfc["distros_s3_access_id"]).'"},"Action":"s3:GetObject","Resource":"arn:aws:s3:::'.c_ws_plugin__s2member_utils_strings::esc_dq($s3c["bucket"]).'/*"}]}';
726
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\napplication/json\n".$s3_date."\n/".$s3c["bucket"]."/?policy"));
727
+ $s3_args = array("method" => "PUT", "redirection" => 5, "body" => $s3_policy_json, "headers" => array("Host" => $s3_domain, "Content-Type" => "application/json", "Date" => $s3_date, "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
728
729
if(!$cfc["distros_s3_access_id"] || (($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && ($s3_response["code"] === 200 || $s3_response["code"] === 204 /* Also OK. */)))
730
{
731
$s3_location = ((strtolower($s3c["bucket"]) !== $s3c["bucket"])) ? "/".$s3c["bucket"]."/crossdomain.xml" : "/crossdomain.xml";
732
$s3_policy_xml = trim(c_ws_plugin__s2member_utilities::evl(file_get_contents(dirname(dirname(__FILE__))."/templates/cfg-files/s2-cross-xml.php")));
733
$s3_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_s3_sign("PUT\n\ntext/xml\n".$s3_date."\nx-amz-acl:public-read\n/".$s3c["bucket"]."/crossdomain.xml"));
734
+ $s3_args = array("method" => "PUT", "redirection" => 5, "body" => $s3_policy_xml, "headers" => array("Host" => $s3_domain, "Content-Type" => "text/xml", "Date" => $s3_date, "X-Amz-Acl" => "public-read", "Authorization" => "AWS ".$s3c["access_key"].":".$s3_signature));
735
736
if(($s3_response = c_ws_plugin__s2member_utils_urls::remote("https://".$s3_domain.$s3_location, false, array_merge($s3_args, array("timeout" => 20)), "array")) && $s3_response["code"] === 200)
737
return /* Successfully configured Amazon S3 Bucket ACLs and Policy. */ array("success" => true, "code" => null, "message" => null);
1039
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1040
$cf_location = "/2010-11-01/origin-access-identity/cloudfront/".$access_id;
1041
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1042
+ $cf_args = array("method" => "GET", "redirection" => 5, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1043
1044
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && (($cf_response["code"] === 404 && $cf_response["message"]) || ($cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))))
1045
{
1087
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1088
$cf_location = "/2010-11-01/origin-access-identity/cloudfront/".$access_id;
1089
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1090
+ $cf_args = array("method" => "DELETE", "redirection" => 5, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "If-Match" => $access_id_etag, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1091
1092
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 204 /* Deleted. */))
1093
return /* Deleted successfully. */ array("success" => true, "code" => null, "message" => null);
1127
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1128
$cf_distros_access_reference = time().".".md5("access".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"]);
1129
$cf_distros_access_xml = '<?xml version="1.0" encoding="UTF-8"?><CloudFrontOriginAccessIdentityConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><CallerReference>'.esc_html($cf_distros_access_reference).'</CallerReference><Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment></CloudFrontOriginAccessIdentityConfig>';
1130
+ $cf_args = array("method" => "POST", "redirection" => 5, "body" => $cf_distros_access_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1131
1132
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1133
{
1171
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1172
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1173
$cf_location = ($distro_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id : "/2010-11-01/distribution/".$distro_id;
1174
+ $cf_args = array("method" => "GET", "redirection" => 5, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1175
1176
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && (($cf_response["code"] === 404 && $cf_response["message"]) || ($cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))))
1177
{
1224
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1225
$cf_location = ($distro_id_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id."/config" : "/2010-11-01/distribution/".$distro_id."/config";
1226
$cf_distro_xml = ($distro_id_type === "streaming") ? '<?xml version="1.0" encoding="UTF-8"?><StreamingDistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName></S3Origin><CallerReference>'.esc_html($distro_id_reference).'</CallerReference><Enabled>false</Enabled><TrustedSigners><Self/></TrustedSigners></StreamingDistributionConfig>' : '<?xml version="1.0" encoding="UTF-8"?><DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName></S3Origin><CallerReference>'.esc_html($distro_id_reference).'</CallerReference><Enabled>false</Enabled><TrustedSigners><Self/></TrustedSigners></DistributionConfig>';
1227
+ $cf_args = array("method" => "PUT", "redirection" => 5, "body" => $cf_distro_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "If-Match" => $distro_id_etag, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1228
1229
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && $cf_response["code"] === 200 && !empty($cf_response["headers"]["etag"]) && !empty($cf_response["body"]))
1230
return array("success" => true, "code" => null, "message" => null, "etag" => trim($cf_response["headers"]["etag"]), "xml" => trim($cf_response["body"]), "deployed" => ((stripos($cf_response["body"], "<Status>Deployed</Status>") !== false) ? true : false));
1279
$cf_date = gmdate("D, d M Y H:i:s")." GMT";
1280
$cf_signature = base64_encode(c_ws_plugin__s2member_files_in::amazon_cf_sign($cf_date));
1281
$cf_location = ($distro_id_type === "streaming") ? "/2010-11-01/streaming-distribution/".$distro_id : "/2010-11-01/distribution/".$distro_id;
1282
+ $cf_args = array("method" => "DELETE", "redirection" => 5, "headers" => array("Host" => $cf_domain, "Date" => $cf_date, "If-Match" => $cf_response["etag"], "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1283
1284
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 204 /* Deleted. */))
1285
return /* Deleted successfully. */ array("success" => true, "code" => null, "message" => null);
1346
$cf_location = /* Create distro. */ "/2010-11-01/distribution";
1347
$cf_distro_downloads_reference = time().".".md5("downloads".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"].$cfc["distro_downloads_cname"]);
1348
$cf_distro_downloads_xml = '<?xml version="1.0" encoding="UTF-8"?><DistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName><OriginAccessIdentity>origin-access-identity/cloudfront/'.esc_html($cfc["distros_access_id"]).'</OriginAccessIdentity></S3Origin><CallerReference>'.esc_html($cf_distro_downloads_reference).'</CallerReference>'.(($cfc["distro_downloads_cname"]) ? '<CNAME>'.esc_html($cfc["distro_downloads_cname"]).'</CNAME>' : '').'<Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment><Enabled>true</Enabled><DefaultRootObject>index.html</DefaultRootObject><TrustedSigners><Self/></TrustedSigners></DistributionConfig>';
1349
+ $cf_args = array("method" => "POST", "redirection" => 5, "body" => $cf_distro_downloads_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1350
1351
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1352
{
1369
$cf_location = /* Create streaming distro. */ "/2010-11-01/streaming-distribution";
1370
$cf_distro_streaming_reference = time().".".md5("streaming".$s3c["bucket"].$s3c["access_key"].$s3c["secret_key"].$cfc["private_key"].$cfc["private_key_id"].$cfc["distro_streaming_cname"]);
1371
$cf_distro_streaming_xml = '<?xml version="1.0" encoding="UTF-8"?><StreamingDistributionConfig xmlns="http://cloudfront.amazonaws.com/doc/2010-11-01/"><S3Origin><DNSName>'.esc_html($s3c["bucket"]).'.s3.amazonaws.com</DNSName><OriginAccessIdentity>origin-access-identity/cloudfront/'.esc_html($cfc["distros_access_id"]).'</OriginAccessIdentity></S3Origin><CallerReference>'.esc_html($cf_distro_streaming_reference).'</CallerReference>'.(($cfc["distro_streaming_cname"]) ? '<CNAME>'.esc_html($cfc["distro_streaming_cname"]).'</CNAME>' : '').'<Comment>'.esc_html(sprintf(_x("Created by s2Member, for S3 Bucket: %s.", "s2member-admin", "s2member"), $s3c["bucket"])).'</Comment><Enabled>true</Enabled><DefaultRootObject>index.html</DefaultRootObject><TrustedSigners><Self/></TrustedSigners></StreamingDistributionConfig>';
1372
+ $cf_args = array("method" => "POST", "redirection" => 5, "body" => $cf_distro_streaming_xml, "headers" => array("Host" => $cf_domain, "Content-Type" => "application/xml", "Date" => $cf_date, "Authorization" => "AWS ".$cfc["access_key"].":".$cf_signature));
1373
1374
if(($cf_response = c_ws_plugin__s2member_utils_urls::remote("https://".$cf_domain.$cf_location, false, array_merge($cf_args, array("timeout" => 20)), "array")) && ($cf_response["code"] === 200 || $cf_response["code"] === 201 /* Created. */))
1375
{
includes/classes/login-customizations.inc.php CHANGED
@@ -97,7 +97,7 @@ if(!class_exists("c_ws_plugin__s2member_login_customizations"))
97
$i = apply_filters("ws_plugin__s2member_login_header_styles_important", " !important", get_defined_vars());
98
$a = apply_filters("ws_plugin__s2member_login_header_styles_array_after_open", $a, get_defined_vars());
99
100
- $a[] = /* Clear existing. */ 'html, body { border:0'.$i.'; background:none'.$i.'; }';
101
$a[] = 'html { background-color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_color"].$i.'; }';
102
$a[] = 'html { background-image:url('.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_image"].')'.$i.'; }';
103
$a[] = 'html { background-repeat:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_image_repeat"].$i.'; }';
@@ -109,14 +109,13 @@ if(!class_exists("c_ws_plugin__s2member_login_customizations"))
109
$a[] = 'div#login h1 a { background:url('.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src"].') no-repeat top center'.$i.'; background-size:auto'.$i.'; }';
110
$a[] = 'div#login h1 a { display:block'.$i.'; width:100%'.$i.'; height:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src_height"].'px'.$i.'; }';
111
112
- $a[] = 'div#login form { -moz-box-shadow:1px 1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].', -1px -1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].$i.'; -webkit-box-shadow:1px 1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].', -1px -1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].$i.'; box-shadow:1px 1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].', -1px -1px 5px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].$i.'; }';
113
114
$a[] = 'div#login p#nav, div#login p#nav a, div#login p#nav a:hover, div#login p#nav a:active, div#login p#nav a:focus { color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_color"].$i.'; text-shadow:1px 1px 3px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_shadow_color"].$i.'; }';
115
$a[] = 'div#login p#backtoblog, div#login p#backtoblog a, div#login p#backtoblog a:hover, div#login p#backtoblog a:active, div#login p#backtoblog a:focus { color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_color"].$i.'; text-shadow:1px 1px 3px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_shadow_color"].$i.'; }';
116
117
- $a[] = /* Handles paragraph margins inside the form. */ 'div#login form p { margin:2px 0 16px 0'.$i.'; }';
118
- $a[] = 'div#login form input[type="text"], div#login form input[type="email"], div#login form input[type="password"], div#login form textarea, div#login form select { font-weight:normal'.$i.'; color:#333333'.$i.'; background:none repeat scroll 0 0 #FBFBFB'.$i.'; border:1px solid #E5E5E5'.$i.'; font-size:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_font_field_size"].$i.'; margin:0'.$i.'; padding:3px'.$i.'; -moz-border-radius:3px'.$i.'; -webkit-border-radius:3px'.$i.'; border-radius:3px'.$i.'; width:100%'.$i.'; width:98%'.$i.' !ie<8; margin-right:2%'.$i.' !ie<8; box-sizing:border-box'.$i.'; -ms-box-sizing:border-box'.$i.'; -moz-box-sizing:border-box'.$i.'; -webkit-box-sizing:border-box'.$i.'; }';
119
- $a[] = 'div#login form select { width:99.5%'.$i.' !ie<8; } div#login form select > option { font-size:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_font_field_size"].$i.'; }';
120
$a[] = 'div#login form label { cursor:pointer'.$i.'; } div#login form label.ws-plugin--s2member-custom-reg-field-op-l { opacity:0.7'.$i.'; font-size:90%'.$i.'; vertical-align:middle'.$i.'; }';
121
$a[] = 'div#login form input[type="checkbox"], div#login form input[type="radio"] { margin:0 3px 0 0'.$i.'; vertical-align:middle'.$i.'; }';
122
$a[] = 'div#login form input#ws-plugin--s2member-custom-reg-field-user-pass2[type="password"] { margin-top:5px'.$i.'; }';
@@ -124,12 +123,12 @@ if(!class_exists("c_ws_plugin__s2member_login_customizations"))
124
$a[] = 'div#login form div.ws-plugin--s2member-custom-reg-field-divider-section { margin:2px 0 16px 0'.$i.'; border:0'.$i.'; height:1px'.$i.'; line-height:1px'.$i.'; background:#CCCCCC'.$i.'; }';
125
$a[] = 'div#login form div.ws-plugin--s2member-custom-reg-field-divider-section-title { margin:2px 0 16px 0'.$i.'; border:0 solid #CCCCCC'.$i.'; border-width:0 0 1px 0'.$i.'; padding:0 0 10px 0'.$i.'; font-size:110%'.$i.'; }';
126
127
- $a[] = 'div#login form input[type="submit"], div#login form input[type="submit"]:hover, div#login form input[type="submit"]:active, div#login form input[type="submit"]:focus { color:#666666'.$i.'; text-shadow:2px 2px 5px #EEEEEE'.$i.'; border:1px solid #999999'.$i.'; background:#FBFBFB'.$i.';'.((version_compare(get_bloginfo("version"), "3.5", "<")) ? ' padding:5px'.$i.';' : '').' -moz-border-radius:3px'.$i.'; -webkit-border-radius:3px'.$i.'; border-radius:3px'.$i.'; }';
128
$a[] = 'div#login form input[type="submit"]:hover, div#login form input[type="submit"]:active, div#login form input[type="submit"]:focus { color:#000000'.$i.'; text-shadow:2px 2px 5px #CCCCCC'.$i.'; border-color:#000000'.$i.'; }';
129
- $a[] = 'div#login form#registerform { padding-bottom:16px'.$i.'; } div#login form#registerform p.submit { float:none'.$i.'; margin-top:-10px'.$i.'; } div#login form#registerform input[type="submit"] { float:none'.$i.'; width:100%'.$i.'; width:98%'.$i.' !ie<8; margin-right:2%'.$i.' !ie<8; box-sizing:border-box'.$i.'; -ms-box-sizing:border-box'.$i.'; -moz-box-sizing:border-box'.$i.'; -webkit-box-sizing:border-box'.$i.'; }';
130
- $a[] = 'div#login form#lostpasswordform { padding-bottom:16px'.$i.'; } div#login form#lostpasswordform p.submit { float:none'.$i.'; } div#login form#lostpasswordform input[type="submit"] { float:none'.$i.'; width:100%'.$i.'; width:98%'.$i.' !ie<8; margin-right:2%'.$i.' !ie<8; box-sizing:border-box'.$i.'; -ms-box-sizing:border-box'.$i.'; -moz-box-sizing:border-box'.$i.'; -webkit-box-sizing:border-box'.$i.'; }';
131
132
- $a[] = 'div.ws-plugin--s2member-password-strength { margin-top:3px'.$i.'; font-color:#000000'.$i.'; background-color:#EEEEEE'.$i.'; padding:3px'.$i.'; -moz-border-radius:3px'.$i.'; -webkit-border-radius:3px'.$i.'; border-radius:3px'.$i.'; } div.ws-plugin--s2member-password-strength-short { background-color:#FFA0A0'.$i.'; } div.ws-plugin--s2member-password-strength-bad { background-color:#FFB78C'.$i.'; } div.ws-plugin--s2member-password-strength-good { background-color:#FFEC8B'.$i.'; } div.ws-plugin--s2member-password-strength-strong { background-color:#C3FF88'.$i.'; } div.ws-plugin--s2member-password-strength-mismatch { background-color:#D6C1AB'.$i.'; }';
133
134
$a[] = 'div#login form#registerform p#reg_passmail { font-style:italic'.$i.'; }';
135
97
$i = apply_filters("ws_plugin__s2member_login_header_styles_important", " !important", get_defined_vars());
98
$a = apply_filters("ws_plugin__s2member_login_header_styles_array_after_open", $a, get_defined_vars());
99
100
+ $a[] = 'html, body { border:0'.$i.'; background:none'.$i.'; }';
101
$a[] = 'html { background-color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_color"].$i.'; }';
102
$a[] = 'html { background-image:url('.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_image"].')'.$i.'; }';
103
$a[] = 'html { background-repeat:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_image_repeat"].$i.'; }';
109
$a[] = 'div#login h1 a { background:url('.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src"].') no-repeat top center'.$i.'; background-size:auto'.$i.'; }';
110
$a[] = 'div#login h1 a { display:block'.$i.'; width:100%'.$i.'; height:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src_height"].'px'.$i.'; }';
111
112
+ $a[] = 'div#login form { box-shadow:1px 1px 2px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].', -1px -1px 2px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_box_shadow_color"].$i.'; border-radius:5px'.$i.'; padding-bottom:16px'.$i.'; }';
113
114
$a[] = 'div#login p#nav, div#login p#nav a, div#login p#nav a:hover, div#login p#nav a:active, div#login p#nav a:focus { color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_color"].$i.'; text-shadow:1px 1px 3px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_shadow_color"].$i.'; }';
115
$a[] = 'div#login p#backtoblog, div#login p#backtoblog a, div#login p#backtoblog a:hover, div#login p#backtoblog a:active, div#login p#backtoblog a:focus { color:#'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_color"].$i.'; text-shadow:1px 1px 3px #'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_background_text_shadow_color"].$i.'; }';
116
117
+ $a[] = 'div#login form p { margin:2px 0 16px 0'.$i.'; }'; // Handles paragraph margins inside the form.
118
+ $a[] = 'div#login form input[type="text"], div#login form input[type="email"], div#login form input[type="password"], div#login form textarea, div#login form select { margin:0'.$i.'; padding:3px'.$i.'; border-radius:3px'.$i.'; box-sizing:border-box'.$i.'; width:100%'.$i.'; background:#FBFBFB repeat scroll 0 0'.$i.'; border:1px solid #E5E5E5'.$i.'; font-size:'.$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_font_field_size"].$i.'; font-weight:normal'.$i.'; color:#333333'.$i.'; }';
119
$a[] = 'div#login form label { cursor:pointer'.$i.'; } div#login form label.ws-plugin--s2member-custom-reg-field-op-l { opacity:0.7'.$i.'; font-size:90%'.$i.'; vertical-align:middle'.$i.'; }';
120
$a[] = 'div#login form input[type="checkbox"], div#login form input[type="radio"] { margin:0 3px 0 0'.$i.'; vertical-align:middle'.$i.'; }';
121
$a[] = 'div#login form input#ws-plugin--s2member-custom-reg-field-user-pass2[type="password"] { margin-top:5px'.$i.'; }';
123
$a[] = 'div#login form div.ws-plugin--s2member-custom-reg-field-divider-section { margin:2px 0 16px 0'.$i.'; border:0'.$i.'; height:1px'.$i.'; line-height:1px'.$i.'; background:#CCCCCC'.$i.'; }';
124
$a[] = 'div#login form div.ws-plugin--s2member-custom-reg-field-divider-section-title { margin:2px 0 16px 0'.$i.'; border:0 solid #CCCCCC'.$i.'; border-width:0 0 1px 0'.$i.'; padding:0 0 10px 0'.$i.'; font-size:110%'.$i.'; }';
125
126
+ $a[] = 'div#login form input[type="submit"], div#login form input[type="submit"]:hover, div#login form input[type="submit"]:active, div#login form input[type="submit"]:focus { color:#666666'.$i.'; text-shadow:2px 2px 5px #EEEEEE'.$i.'; border:1px solid #999999'.$i.'; border-radius:3px'.$i.'; background:#FBFBFB'.$i.'; box-shadow:0 -1px 2px 0 rgba(0,0,0,0.2) inset'.$i.'; }';
127
$a[] = 'div#login form input[type="submit"]:hover, div#login form input[type="submit"]:active, div#login form input[type="submit"]:focus { color:#000000'.$i.'; text-shadow:2px 2px 5px #CCCCCC'.$i.'; border-color:#000000'.$i.'; }';
128
+ $a[] = 'div#login form#registerform p.submit { float:none'.$i.'; margin-top:-10px'.$i.'; } div#login form#registerform input[type="submit"] { float:none'.$i.'; width:100%'.$i.'; box-sizing:border-box'.$i.'; }';
129
+ $a[] = 'div#login form#lostpasswordform p.submit { float:none'.$i.'; } div#login form#lostpasswordform input[type="submit"] { float:none'.$i.'; width:100%'.$i.'; box-sizing:border-box'.$i.'; }';
130
131
+ $a[] = 'div.ws-plugin--s2member-password-strength { margin-top:3px'.$i.'; font-color:#000000'.$i.'; background-color:#EEEEEE'.$i.'; padding:3px'.$i.'; border-radius:3px'.$i.'; } div.ws-plugin--s2member-password-strength-short { background-color:#FFA0A0'.$i.'; } div.ws-plugin--s2member-password-strength-bad { background-color:#FFB78C'.$i.'; } div.ws-plugin--s2member-password-strength-good { background-color:#FFEC8B'.$i.'; } div.ws-plugin--s2member-password-strength-strong { background-color:#C3FF88'.$i.'; } div.ws-plugin--s2member-password-strength-mismatch { background-color:#D6C1AB'.$i.'; }';
132
133
$a[] = 'div#login form#registerform p#reg_passmail { font-style:italic'.$i.'; }';
134
includes/classes/login-redirects.inc.php CHANGED
@@ -58,9 +58,8 @@ if (!class_exists ("c_ws_plugin__s2member_login_redirects"))
58
if /* Nag em? */ ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"])
59
delete_user_setting ("default_password_nag") . update_user_option ($user_id, "default_password_nag", false, true);
60
61
- $disable_login_ip_restrictions = apply_filters ("ws_plugin__s2member_disable_login_ip_restrictions", false, get_defined_vars ());
62
-
63
- if (($ok = true) && !is_super_admin ($user_id) && $username !== "demo" && !$disable_login_ip_restrictions)
64
$ok = c_ws_plugin__s2member_ip_restrictions::ip_restrictions_ok ($_SERVER["REMOTE_ADDR"], $username);
65
66
if($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_redirection_always_http"]) // Alter value of `redirect_to`?
58
if /* Nag em? */ ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_password"])
59
delete_user_setting ("default_password_nag") . update_user_option ($user_id, "default_password_nag", false, true);
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`?
includes/classes/menu-pages.inc.php CHANGED
@@ -781,8 +781,8 @@ if(!class_exists("c_ws_plugin__s2member_menu_pages"))
781
{
782
do_action("ws_plugin__s2member_before_paypal_buttons_page", get_defined_vars());
783
784
- if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_username"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"])
785
- c_ws_plugin__s2member_admin_notices::display_admin_notice('Please configure <code>s2Member -› PayPal Options</code> first. Once all of your PayPal Options are configured; including your Email Address, API Username, Password, and Signature; return to this page &amp; generate your PayPal Button(s).', true);
786
787
include_once dirname(dirname(__FILE__))."/menu-pages/paypal-buttons.inc.php";
788
781
{
782
do_action("ws_plugin__s2member_before_paypal_buttons_page", get_defined_vars());
783
784
+ if(!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_username"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"] || !$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"])
785
+ c_ws_plugin__s2member_admin_notices::display_admin_notice('Please configure <code>s2Member -› PayPal Options</code> first. Once all of your PayPal Options are configured; including your Email Address, Merchant ID, API Username, Password, and Signature; return to this page &amp; generate your PayPal Button(s).', true);
786
787
include_once dirname(dirname(__FILE__))."/menu-pages/paypal-buttons.inc.php";
788
includes/classes/paypal-notify-in-subscr-or-rp-eots-w-level.inc.php CHANGED
@@ -70,11 +70,12 @@ if(!class_exists("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_eots_w_lev
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
- $paypal["s2member_log"][] = "Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).";
74
- sleep(5); // Sleep here for a moment. PayPal sometimes sends a subscr_eot before the subscr_signup, subscr_modify.
75
- // It is NOT a big deal if they do. However, s2Member goes to sleep here, just to help keep the log files in a logical order.
76
- $paypal["s2member_log"][] = "Awake. It's ".date("D M j, Y g:i:s a T").". s2Member `txn_type` identified as ".$identified_as.".";
77
-
78
$paypal["ip"] = (preg_match("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
79
$paypal["ip"] = (!$paypal["ip"] && preg_match("/^[a-z0-9]+~[0-9\.]+#x2F;i", $paypal["invoice"])) ? preg_replace("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
80
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
+ {
75
+ $paypal["s2member_log"][] = "Sleeping for 10 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).";
76
+ sleep(10); // Sleep here for a moment. PayPal sometimes sends a subscr_eot before the subscr_signup, subscr_modify.
77
+ $paypal["s2member_log"][] = "Awake. It's ".date("D M j, Y g:i:s a T").". s2Member `txn_type` identified as ".$identified_as.".";
78
+ }
79
$paypal["ip"] = (preg_match("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
80
$paypal["ip"] = (!$paypal["ip"] && preg_match("/^[a-z0-9]+~[0-9\.]+#x2F;i", $paypal["invoice"])) ? preg_replace("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
81
includes/classes/paypal-notify-in-subscr-or-rp-payment-w-level.inc.php CHANGED
@@ -57,12 +57,14 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in_subscr_or_rp_payment_
57
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
58
{
59
$paypal["s2member_log"][] = "s2Member `txn_type` identified as " . ($identified_as = "( `subscr_payment|recurring_payment` )") . ".";
60
- $paypal["s2member_log"][] = "Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).";
61
- sleep (5); // Sleep here for a moment. PayPal sometimes sends a subscr_payment before the subscr_signup, subscr_modify.
62
- // It is NOT a big deal if they do. However, s2Member goes to sleep here, just to help keep the log files in a logical order.
63
- $paypal["s2member_log"][] = "Awake. It's " . date ("D M j, Y g:i:s a T") . ". s2Member `txn_type` identified as " . $identified_as . ".";
64
65
- list ($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"], 3);
66
67
$paypal["ip"] = (preg_match ("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
68
$paypal["ip"] = (!$paypal["ip"] && preg_match ("/^[a-z0-9]+~[0-9\.]+#x2F;i", $paypal["invoice"])) ? preg_replace ("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
57
if (!get_transient ($transient_ipn = "s2m_ipn_" . md5 ("s2member_transient_" . $_paypal_s)) && set_transient ($transient_ipn, time (), 31556926 * 10))
58
{
59
$paypal["s2member_log"][] = "s2Member `txn_type` identified as " . ($identified_as = "( `subscr_payment|recurring_payment` )") . ".";
60
61
+ if(empty($_REQUEST["s2member_paypal_proxy"])) // Only on true PayPal IPNs; e.g. we can bypass this on proxied IPNs.
62
+ {
63
+ $paypal["s2member_log"][] = "Sleeping for 5 seconds. Waiting for a possible ( `subscr_signup|subscr_modify|recurring_payment_profile_created` ).";
64
+ sleep (5); // Sleep here for a moment. PayPal sometimes sends a subscr_payment before the subscr_signup, subscr_modify.
65
+ $paypal["s2member_log"][] = "Awake. It's " . date ("D M j, Y g:i:s a T") . ". s2Member `txn_type` identified as " . $identified_as . ".";
66
+ }
67
+ list($paypal["level"], $paypal["ccaps"]) = preg_split ("/\:/", $paypal["item_number"], 3);
68
69
$paypal["ip"] = (preg_match ("/ip address/i", $paypal["option_name2"]) && $paypal["option_selection2"]) ? $paypal["option_selection2"] : "";
70
$paypal["ip"] = (!$paypal["ip"] && preg_match ("/^[a-z0-9]+~[0-9\.]+#x2F;i", $paypal["invoice"])) ? preg_replace ("/^[a-z0-9]+~/i", "", $paypal["invoice"]) : $paypal["ip"];
includes/classes/paypal-notify-in.inc.php CHANGED
@@ -184,7 +184,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_notify_in"))
184
$logm = c_ws_plugin__s2member_utilities::mem_details ();
185
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
186
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
187
- $log2 = (is_multisite () && !is_main_site ()) ? "paypal-ipn-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "paypal-ipn.log";
188
189
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
190
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
184
$logm = c_ws_plugin__s2member_utilities::mem_details ();
185
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
186
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
187
+ $log2 = (is_multisite () && !is_main_site ()) ? "gateway-core-ipn-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "gateway-core-ipn.log";
188
189
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
190
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
includes/classes/paypal-return-in.inc.php CHANGED
@@ -167,7 +167,7 @@ if (!class_exists ("c_ws_plugin__s2member_paypal_return_in"))
167
$logm = c_ws_plugin__s2member_utilities::mem_details ();
168
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
169
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
170
- $log2 = (is_multisite () && !is_main_site ()) ? "paypal-rtn-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "paypal-rtn.log";
171
172
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
173
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
167
$logm = c_ws_plugin__s2member_utilities::mem_details ();
168
$log4 = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\nUser-Agent: " . $_SERVER["HTTP_USER_AGENT"];
169
$log4 = (is_multisite () && !is_main_site ()) ? ($_log4 = $current_blog->domain . $current_blog->path) . "\n" . $log4 : $log4;
170
+ $log2 = (is_multisite () && !is_main_site ()) ? "gateway-core-rtn-4-" . trim (preg_replace ("/[^a-z0-9]/i", "-", $_log4), "-") . ".log" : "gateway-core-rtn.log";
171
172
if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["gateway_debug_logs"])
173
if (is_dir ($logs_dir = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"]))
includes/classes/sc-paypal-button-in.inc.php CHANGED
@@ -78,6 +78,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_in"))
78
79
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
80
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
81
82
$code = $_code = ($attr["image"] && $attr["image"] !== "default") ? preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($attr["image"])) . '"', $code) : preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($default_image)) . '"', $code);
83
@@ -114,6 +115,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_in"))
114
115
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
116
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
117
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code);
118
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
119
$code = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($success_return_url)), $code);
@@ -169,6 +171,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_in"))
169
170
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
171
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
172
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code);
173
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
174
$code = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($success_return_url)), $code);
@@ -229,6 +232,7 @@ if (!class_exists ("c_ws_plugin__s2member_sc_paypal_button_in"))
229
230
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
231
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
232
$code = preg_replace ("/%%level_label%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $attr["level"] . "_label"])), $code);
233
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code); // This brings them back to Front Page.
234
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
78
79
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
80
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
81
+ $code = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $code);
82
83
$code = $_code = ($attr["image"] && $attr["image"] !== "default") ? preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($attr["image"])) . '"', $code) : preg_replace ('/ src\="(.*?)"/', ' src="' . c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($default_image)) . '"', $code);
84
115
116
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
117
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
118
+ $code = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $code);
119
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code);
120
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
121
$code = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($success_return_url)), $code);
171
172
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
173
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
174
+ $code = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $code);
175
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code);
176
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
177
$code = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($success_return_url)), $code);
232
233
$code = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $code);
234
$code = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $code);
235
+ $code = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $code);
236
$code = preg_replace ("/%%level_label%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $attr["level"] . "_label"])), $code);
237
$code = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $code); // This brings them back to Front Page.
238
$code = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $code);
includes/classes/utils-logs.inc.php CHANGED
@@ -37,26 +37,26 @@ if (!class_exists ("c_ws_plugin__s2member_utils_logs"))
37
*/
38
public static $log_file_descriptions = array // Array keys are regex patterns matching their associated log file names.
39
(
40
- '/paypal-api/' => array('short' => 'PayPal API communication.', 'long' => 'This log file records all communication between s2Member and PayPal APIs. Such as PayPal Button Encryption and PayPal Pro API calls that process transactions. See also: paypal-ipn.log (s2Member\'s core processor).'),
41
- '/paypal-payflow-api/' => array('short' => 'PayPal (PayFlow Edition) API communication.', 'long' => 'This log file records all communication between s2Member and the PayPal (PayFlow Edition) APIs. Only applicable if you operate a PayPal Payments Pro (PayFlow Edition) account. See also: paypal-ipn.log (s2Member\'s core processor).'),
42
- '/paypal-ipn/' => array('short' => 'Core PayPal IPN and post-processing handler.', 'long' => 'This log file records all communication between s2Member and the PayPal IPN service. Also logs all post-processing routines from other Payment Gateway integrations, where s2Member translates its communication with other Payment Gateways into a format it\'s core PayPal processing routines can understand. All transactions pass through s2Member\'s core PayPal processor and they will be logged in this file. Including transactions processed via s2Member Pro Forms; for all Payment Gateway integrations.'),
43
- '/paypal-rtn/' => array('short' => 'Core PayPal PDT/Auto-Return communication.', 'long' => 'This log file records all communication between s2Member and the PayPal PDT Auto-Return system (i.e. routines that help s2Member process Thank-You pages). Also logs all Auto-Return routines from other Payment Gateway integrations (those implemented via Payment Buttons), where s2Member translates its communication with other Payment Gateways into a format it\'s core PayPal processing routines can understand. Not used in s2Member Pro Form integrations however.'),
44
45
'/authnet-api/' => array('short' => 'Authorize.Net API communication.', 'long' => 'This log file records all communication between s2Member and Authorize.Net APIs (for both AIM and ARB integrations).'),
46
'/authnet-arb/' => array('short' => 'Authorize.Net ARB Subscription status checks.', 'long' => 'This log file records s2Member\'s Authorize.Net ARB Subscription status checks. s2Member polls the ARB service periodically to check the status of existing Members (e.g. to see if billing is still active or not).'),
47
'/authnet-ipn/' => array('short' => 'Authorize.Net Silent Post/IPN communication.', 'long' => 'This log file records the Silent Post/IPN data Authorize.Net sends to s2Member with details regarding new transactions.'),
48
49
- '/alipay-ipn/' => array('short' => 'AliPay IPN communication.', 'long' => 'This log file records the IPN data AliPay sends to s2Member with details regarding new transactions. See also: paypal-ipn.log (s2Member\'s core processor).'),
50
- '/alipay-rtn/' => array('short' => 'AliPay Auto-Return communication.', 'long' => 'This log file records the Auto-Return data AliPay sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: paypal-rtn.log (s2Member\'s core processor).'),
51
52
- '/clickbank-ipn/' => array('short' => 'ClickBank IPN communication.', 'long' => 'This log file records the IPN data ClickBank sends to s2Member with details regarding new transactions, cancellations, expirations, etc. See also: paypal-ipn.log (s2Member\'s core processor).'),
53
- '/clickbank-rtn/' => array('short' => 'ClickBank Auto-Return communication.', 'long' => 'This log file records the Auto-Return data ClickBank sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: paypal-rtn.log (s2Member\'s core processor).'),
54
55
- '/google-rtn/' => array('short' => 'Google Auto-Return communication.', 'long' => 'This log file records the Auto-Return data Google sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: paypal-rtn.log (s2Member\'s core processor). NOTE (regarding Google Wallet)... this particular log file is currently implemented for a possible future use ONLY. At this time there is no need for an Auto-Return handler with Google Wallet, because Google Wallet return handling is done via email-only at this time.'),
56
- '/google-ipn/' => array('short' => 'Google Postback/IPN communication.', 'long' => 'This log file records the Postback/IPN data Google sends to s2Member with details regarding new transactions, cancellations, expirations, etc. See also: paypal-ipn.log (s2Member\'s core processor).'),
57
58
- '/ccbill-ipn/' => array('short' => 'ccBill Bg Post/IPN communication.', 'long' => 'This log file records the Bg Post/IPN data ccBill sends to s2Member with details regarding new transactions. See also: paypal-ipn.log (s2Member\'s core processor).'),
59
- '/ccbill-rtn/' => array('short' => 'ccBill Auto-Return communication.', 'long' => 'This log file records the Auto-Return data ccBill sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: paypal-rtn.log (s2Member\'s core processor).'),
60
'/ccbill-dl-ipn/' => array('short' => 'ccBill Datalink Subscription status checks.', 'long' => 'This log file records s2Member\'s ccBill Datalink Subscription status checks that may result in actions taken by s2Member. s2Member polls the ccBill Datalink service periodically to check the status of existing Members (e.g. to see if billing is still active or not).'),
61
'/ccbill-dl/' => array('short' => 'ccBill Datalink collections.', 'long' => 'This log file records s2Member\'s ccBill Datalink connections. s2Member polls the ccBill Datalink service periodically to obtain information about existing Users/Members.'),
62
37
*/
38
public static $log_file_descriptions = array // Array keys are regex patterns matching their associated log file names.
39
(
40
+ '/paypal-api/' => array('short' => 'PayPal API communication.', 'long' => 'This log file records all communication between s2Member and PayPal APIs. Such as PayPal Button Encryption and PayPal Pro API calls that process transactions. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
41
+ '/paypal-payflow-api/' => array('short' => 'PayPal (PayFlow Edition) API communication.', 'long' => 'This log file records all communication between s2Member and the PayPal (PayFlow Edition) APIs. Only applicable if you operate a PayPal Payments Pro (PayFlow Edition) account. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
42
+ '/gateway-core-ipn/' => array('short' => 'Core PayPal IPN and post-processing handler.', 'long' => 'This log file records all communication between s2Member and the PayPal IPN service. Also logs all post-processing routines from other Payment Gateway integrations, where s2Member translates its communication with other Payment Gateways into a format it\'s core PayPal processing routines can understand. All transactions pass through s2Member\'s core PayPal processor and they will be logged in this file. Including transactions processed via s2Member Pro Forms; for all Payment Gateway integrations.'),
43
+ '/gateway-core-rtn/' => array('short' => 'Core PayPal PDT/Auto-Return communication.', 'long' => 'This log file records all communication between s2Member and the PayPal PDT Auto-Return system (i.e. routines that help s2Member process Thank-You pages). Also logs all Auto-Return routines from other Payment Gateway integrations (those implemented via Payment Buttons), where s2Member translates its communication with other Payment Gateways into a format it\'s core PayPal processing routines can understand. Not used in s2Member Pro Form integrations however.'),
44
45
'/authnet-api/' => array('short' => 'Authorize.Net API communication.', 'long' => 'This log file records all communication between s2Member and Authorize.Net APIs (for both AIM and ARB integrations).'),
46
'/authnet-arb/' => array('short' => 'Authorize.Net ARB Subscription status checks.', 'long' => 'This log file records s2Member\'s Authorize.Net ARB Subscription status checks. s2Member polls the ARB service periodically to check the status of existing Members (e.g. to see if billing is still active or not).'),
47
'/authnet-ipn/' => array('short' => 'Authorize.Net Silent Post/IPN communication.', 'long' => 'This log file records the Silent Post/IPN data Authorize.Net sends to s2Member with details regarding new transactions.'),
48
49
+ '/alipay-ipn/' => array('short' => 'AliPay IPN communication.', 'long' => 'This log file records the IPN data AliPay sends to s2Member with details regarding new transactions. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
50
+ '/alipay-rtn/' => array('short' => 'AliPay Auto-Return communication.', 'long' => 'This log file records the Auto-Return data AliPay sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: gateway-core-rtn.log (s2Member\'s core processor).'),
51
52
+ '/clickbank-ipn/' => array('short' => 'ClickBank IPN communication.', 'long' => 'This log file records the IPN data ClickBank sends to s2Member with details regarding new transactions, cancellations, expirations, etc. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
53
+ '/clickbank-rtn/' => array('short' => 'ClickBank Auto-Return communication.', 'long' => 'This log file records the Auto-Return data ClickBank sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: gateway-core-rtn.log (s2Member\'s core processor).'),
54
55
+ '/google-rtn/' => array('short' => 'Google Auto-Return communication.', 'long' => 'This log file records the Auto-Return data Google sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: gateway-core-rtn.log (s2Member\'s core processor). NOTE (regarding Google Wallet)... this particular log file is currently implemented for a possible future use ONLY. At this time there is no need for an Auto-Return handler with Google Wallet, because Google Wallet return handling is done via email-only at this time.'),
56
+ '/google-ipn/' => array('short' => 'Google Postback/IPN communication.', 'long' => 'This log file records the Postback/IPN data Google sends to s2Member with details regarding new transactions, cancellations, expirations, etc. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
57
58
+ '/ccbill-ipn/' => array('short' => 'ccBill Bg Post/IPN communication.', 'long' => 'This log file records the Bg Post/IPN data ccBill sends to s2Member with details regarding new transactions. See also: gateway-core-ipn.log (s2Member\'s core processor).'),
59
+ '/ccbill-rtn/' => array('short' => 'ccBill Auto-Return communication.', 'long' => 'This log file records the Auto-Return data ccBill sends to s2Member with details regarding new transactions (i.e. logs routines that help s2Member process Thank-You pages). See also: gateway-core-rtn.log (s2Member\'s core processor).'),
60
'/ccbill-dl-ipn/' => array('short' => 'ccBill Datalink Subscription status checks.', 'long' => 'This log file records s2Member\'s ccBill Datalink Subscription status checks that may result in actions taken by s2Member. s2Member polls the ccBill Datalink service periodically to check the status of existing Members (e.g. to see if billing is still active or not).'),
61
'/ccbill-dl/' => array('short' => 'ccBill Datalink collections.', 'long' => 'This log file records s2Member\'s ccBill Datalink connections. s2Member polls the ccBill Datalink service periodically to obtain information about existing Users/Members.'),
62
includes/menu-pages/gen-ops.inc.php CHANGED
@@ -159,8 +159,8 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_gen_ops"))
159
160
echo '<div class="ws-menu-page-section ws-plugin--s2member-lazy-load-section">' . "\n";
161
echo '<h3>CSS/JS Lazy Loading (Client-Side Libraries)</h3>' . "\n";
162
- echo '<p>By default, s2Member will lazy-load any CSS/JS files it needs. However, if you would prefer to have these available on every page of your site, you can turn lazy-loading off here.</p>' . "\n";
163
- echo '<p><em><strong>Tip:</strong> Do you need s2Member\'s CSS/JS on every page? Another option is to leave lazy-loading on. If you need s2Member\'s CSS/JS on a given Post/Page, you can insert an HTML comment into the Post/Page content like this: <code>&lt;!--s2member--&gt;</code>. If a Post/Page contains the word <code>s2member</code> or an <code>[s2*</code> Shortcode, this will automatically trigger s2Member\'s lazy-load routine (no matter what you configure here). Thus, it\'s an easy way to force s2Member to load it\'s CSS/JS on specific Posts/Pages where you deem this necessary. There is also a WordPress filter available: <code>add_filter("ws_plugin__s2member_lazy_load_css_js", "__return_true");</code> for developers; this could be incorporated into more dynamic scenarios.</em></p>' . "\n";
164
do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_lazy_load", get_defined_vars ());
165
166
echo '<table class="form-table">' . "\n";
@@ -179,9 +179,8 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_gen_ops"))
179
echo '<td>' . "\n";
180
echo '<select name="ws_plugin__s2member_lazy_load_css_js" id="ws-plugin--s2member-lazy-load-css-js">' . "\n";
181
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"]) ? ' selected="selected"' : '') . '>No (always load the CSS/JS libraries; e.g. on every page of the site)</option>' . "\n";
182
- echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"]) ? ' selected="selected"' : '') . '>Yes (lazy-load CSS/JS libraries; e.g. load only when necessary)</option>' . "\n";
183
- echo '</select><br />' . "\n";
184
- echo 'Recommended setting: (<code>Yes, lazy-load CSS/JS libraries</code>)' . "\n";
185
echo '</td>' . "\n";
186
187
echo '</tr>' . "\n";
159
160
echo '<div class="ws-menu-page-section ws-plugin--s2member-lazy-load-section">' . "\n";
161
echo '<h3>CSS/JS Lazy Loading (Client-Side Libraries)</h3>' . "\n";
162
+ echo '<p>By default, s2Member will load it\'s CSS/JS libraries on every page of your site. However, you may wish to enable lazy-loading here (e.g. only load when absolutely necessary).</p>' . "\n";
163
+ echo '<p><em><strong>Tip:</strong> Do you need s2Member\'s CSS/JS on every page? If not, you can turn lazy-loading on. If you need s2Member\'s CSS/JS on a given Post/Page, you can insert an HTML comment into the Post/Page content like this: <code>&lt;!--s2member--&gt;</code>. If a Post/Page contains the word <code>s2member</code> or an <code>[s2*</code> Shortcode, this will automatically trigger s2Member\'s lazy-load routine (no matter what you configure here). Thus, it\'s an easy way to force s2Member to load it\'s CSS/JS on specific Posts/Pages where you deem this necessary. There is also a WordPress filter available: <code>add_filter("ws_plugin__s2member_lazy_load_css_js", "__return_true");</code> for developers; this could be incorporated into more dynamic scenarios.</em></p>' . "\n";
164
do_action ("ws_plugin__s2member_during_gen_ops_page_during_left_sections_during_lazy_load", get_defined_vars ());
165
166
echo '<table class="form-table">' . "\n";
179
echo '<td>' . "\n";
180
echo '<select name="ws_plugin__s2member_lazy_load_css_js" id="ws-plugin--s2member-lazy-load-css-js">' . "\n";
181
echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"]) ? ' selected="selected"' : '') . '>No (always load the CSS/JS libraries; e.g. on every page of the site)</option>' . "\n";
182
+ echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["lazy_load_css_js"]) ? ' selected="selected"' : '') . '>Yes (lazy-load CSS/JS libraries; e.g. load only when absolutely necessary)</option>' . "\n";
183
+ echo '</select>' . "\n";
184
echo '</td>' . "\n";
185
186
echo '</tr>' . "\n";
includes/menu-pages/menu-pages.css CHANGED
@@ -114,7 +114,6 @@ div.ws-menu-page > h2:after
114
}
115
div.ws-menu-page code
116
{
117
- font-size : 1em;
118
font-family : 'Monaco', 'Menlo', 'Consolas', 'Courier New', monospace;
119
}
120
div.ws-menu-page pre.code
@@ -157,7 +156,7 @@ div.ws-menu-page img
157
div.ws-menu-page img.screenshot
158
{
159
float : right;
160
- margin : 0 0 0 25px;
161
162
border-radius : 5px;
163
border : 1px solid #AFAFAF;
114
}
115
div.ws-menu-page code
116
{
117
font-family : 'Monaco', 'Menlo', 'Consolas', 'Courier New', monospace;
118
}
119
div.ws-menu-page pre.code
156
div.ws-menu-page img.screenshot
157
{
158
float : right;
159
+ margin : 0 0 15px 25px;
160
161
border-radius : 5px;
162
border : 1px solid #AFAFAF;
includes/menu-pages/paypal-buttons.inc.php CHANGED
@@ -104,6 +104,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
104
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-checkout-button.php")));
105
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
106
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
107
$ws_plugin__s2member_temp_s = preg_replace ("/%%level%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($n)), $ws_plugin__s2member_temp_s);
108
$ws_plugin__s2member_temp_s = preg_replace ("/%%level_label%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_label"])), $ws_plugin__s2member_temp_s);
109
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
@@ -206,6 +207,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
206
$ws_plugin__s2member_temp_s = preg_replace ('/name\="modify" value\="(.*?)"/', 'name="modify" value="1"', $ws_plugin__s2member_temp_s);
207
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
208
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
209
$ws_plugin__s2member_temp_s = preg_replace ("/%%level%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ("1")), $ws_plugin__s2member_temp_s);
210
$ws_plugin__s2member_temp_s = preg_replace ("/%%level_label%% /", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level1_label"])), $ws_plugin__s2member_temp_s);
211
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
@@ -285,6 +287,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
285
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-ccaps-checkout-button.php")));
286
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
287
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
288
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
289
$ws_plugin__s2member_temp_s = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $ws_plugin__s2member_temp_s);
290
$ws_plugin__s2member_temp_s = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_return=1"))), $ws_plugin__s2member_temp_s);
@@ -335,6 +338,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
335
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-cancellation-button.php")));
336
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
337
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
338
$ws_plugin__s2member_temp_s = preg_replace ("/%%images%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images")), $ws_plugin__s2member_temp_s);
339
$ws_plugin__s2member_temp_s = preg_replace ("/%%wpurl%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ())), $ws_plugin__s2member_temp_s);
340
echo preg_replace ("/\<a/", '<a target="_blank"', $ws_plugin__s2member_temp_s);
@@ -364,6 +368,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
364
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-cancellation-button.php")));
365
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
366
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
367
$ws_plugin__s2member_temp_s = preg_replace ("/%%images%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images")), $ws_plugin__s2member_temp_s);
368
$ws_plugin__s2member_temp_s = preg_replace ("/%%wpurl%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ())), $ws_plugin__s2member_temp_s);
369
echo format_to_edit ($ws_plugin__s2member_temp_s);
@@ -493,6 +498,7 @@ if (!class_exists ("c_ws_plugin__s2member_menu_page_paypal_buttons"))
493
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-sp-checkout-button.php")));
494
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
495
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
496
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
497
$ws_plugin__s2member_temp_s = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $ws_plugin__s2member_temp_s);
498
$ws_plugin__s2member_temp_s = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_return=1"))), $ws_plugin__s2member_temp_s);
104
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-checkout-button.php")));
105
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
106
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
107
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
108
$ws_plugin__s2member_temp_s = preg_replace ("/%%level%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($n)), $ws_plugin__s2member_temp_s);
109
$ws_plugin__s2member_temp_s = preg_replace ("/%%level_label%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level" . $n . "_label"])), $ws_plugin__s2member_temp_s);
110
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
207
$ws_plugin__s2member_temp_s = preg_replace ('/name\="modify" value\="(.*?)"/', 'name="modify" value="1"', $ws_plugin__s2member_temp_s);
208
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
209
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
210
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
211
$ws_plugin__s2member_temp_s = preg_replace ("/%%level%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ("1")), $ws_plugin__s2member_temp_s);
212
$ws_plugin__s2member_temp_s = preg_replace ("/%%level_label%% /", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["level1_label"])), $ws_plugin__s2member_temp_s);
213
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
287
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-ccaps-checkout-button.php")));
288
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
289
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
290
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
291
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
292
$ws_plugin__s2member_temp_s = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $ws_plugin__s2member_temp_s);
293
$ws_plugin__s2member_temp_s = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_return=1"))), $ws_plugin__s2member_temp_s);
338
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-cancellation-button.php")));
339
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
340
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
341
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
342
$ws_plugin__s2member_temp_s = preg_replace ("/%%images%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images")), $ws_plugin__s2member_temp_s);
343
$ws_plugin__s2member_temp_s = preg_replace ("/%%wpurl%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ())), $ws_plugin__s2member_temp_s);
344
echo preg_replace ("/\<a/", '<a target="_blank"', $ws_plugin__s2member_temp_s);
368
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-cancellation-button.php")));
369
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
370
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
371
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
372
$ws_plugin__s2member_temp_s = preg_replace ("/%%images%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images")), $ws_plugin__s2member_temp_s);
373
$ws_plugin__s2member_temp_s = preg_replace ("/%%wpurl%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ())), $ws_plugin__s2member_temp_s);
374
echo format_to_edit ($ws_plugin__s2member_temp_s);
498
$ws_plugin__s2member_temp_s = trim (c_ws_plugin__s2member_utilities::evl (file_get_contents (dirname (dirname (__FILE__)) . "/templates/buttons/paypal-sp-checkout-button.php")));
499
$ws_plugin__s2member_temp_s = preg_replace ("/%%endpoint%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_sandbox"]) ? "www.sandbox.paypal.com" : "www.paypal.com")), $ws_plugin__s2member_temp_s);
500
$ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_business%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"])), $ws_plugin__s2member_temp_s);
501
+ $ws_plugin__s2member_temp_s = preg_replace ("/%%paypal_merchant_id%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"])), $ws_plugin__s2member_temp_s);
502
$ws_plugin__s2member_temp_s = preg_replace ("/%%cancel_return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (home_url ("/"))), $ws_plugin__s2member_temp_s);
503
$ws_plugin__s2member_temp_s = preg_replace ("/%%notify_url%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_notify=1"))), $ws_plugin__s2member_temp_s);
504
$ws_plugin__s2member_temp_s = preg_replace ("/%%return%%/", c_ws_plugin__s2member_utils_strings::esc_ds (esc_attr (site_url ("/?s2member_paypal_return=1"))), $ws_plugin__s2member_temp_s);
includes/menu-pages/paypal-ops.inc.php CHANGED
@@ -65,6 +65,23 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
65
echo '<tbody>'."\n";
66
echo '<tr>'."\n";
67
68
echo '<th>'."\n";
69
echo '<label for="ws-plugin--s2member-paypal-business">'."\n";
70
echo 'Your PayPal EMail Address:'."\n";
@@ -76,7 +93,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_page_paypal_ops"))
76
77
echo '<td>'."\n";
78
echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_paypal_business" id="ws-plugin--s2member-paypal-business" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"]).'" /><br />'."\n";
79
- echo 'Enter the email address you\'ve associated with your PayPal Business account.'."\n";
80
echo '</td>'."\n";
81
82
echo '</tr>'."\n";
65
echo '<tbody>'."\n";
66
echo '<tr>'."\n";
67
68
+ echo '<th>'."\n";
69
+ echo '<label for="ws-plugin--s2member-paypal-merchant-id">'."\n";
70
+ echo 'Your PayPal Merchant ID:'."\n";
71
+ echo '</label>'."\n";
72
+ echo '</th>'."\n";
73
+
74
+ echo '</tr>'."\n";
75
+ echo '<tr>'."\n";
76
+
77
+ echo '<td>'."\n";
78
+ echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_paypal_merchant_id" id="ws-plugin--s2member-paypal-merchant-id" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_merchant_id"]).'" /><br />'."\n";
79
+ echo 'At PayPal, see: <code>Profile -› Secure Merchant ID</code>.'."\n";
80
+ echo '</td>'."\n";
81
+
82
+ echo '</tr>'."\n";
83
+ echo '<tr>'."\n";
84
+
85
echo '<th>'."\n";
86
echo '<label for="ws-plugin--s2member-paypal-business">'."\n";
87
echo 'Your PayPal EMail Address:'."\n";
93
94
echo '<td>'."\n";
95
echo '<input type="text" autocomplete="off" name="ws_plugin__s2member_paypal_business" id="ws-plugin--s2member-paypal-business" value="'.format_to_edit($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_business"]).'" /><br />'."\n";
96
+ echo 'At PayPal, see: <code>Profile -› Email Accounts</code>.'."\n";
97
echo '</td>'."\n";
98
99
echo '</tr>'."\n";
includes/menu-pages/updates.inc.php CHANGED
@@ -40,7 +40,7 @@ if(!class_exists("c_ws_plugin__s2member_menu_pages_updates"))
40
echo '</div>'."\n";
41
42
echo '<div class="ws-menu-page-r-group open">'."\n";
43
- echo '<script type="text/javascript" src="http://feeds.feedburner.com/s2member-updates?format=sigpro&amp;nItems=5&amp;openLinks=new&amp;displayTitle=false&amp;displayFeedIcon=false&amp;displayExcerpts=false&amp;displayAuthor=false&amp;displayDate=false&amp;displayEnclosures=false&amp;displayLinkToFeed=false"></script>'."\n";
44
echo '➘ <a href="'.esc_attr(c_ws_plugin__s2member_readmes::parse_readme_value("Knowledge Base")).'" target="_blank" rel="external">More updates...</a>'."\n";
45
echo '</div>'."\n";
46
}
40
echo '</div>'."\n";
41
42
echo '<div class="ws-menu-page-r-group open">'."\n";
43
+ echo '<script type="text/javascript" src="http://feeds.feedburner.com/s2member?format=sigpro&amp;nItems=5&amp;openLinks=new&amp;displayTitle=false&amp;displayFeedIcon=false&amp;displayExcerpts=false&amp;displayAuthor=false&amp;displayDate=false&amp;displayEnclosures=false&amp;displayLinkToFeed=false"></script>'."\n";
44
echo '➘ <a href="'.esc_attr(c_ws_plugin__s2member_readmes::parse_readme_value("Knowledge Base")).'" target="_blank" rel="external">More updates...</a>'."\n";
45
echo '</div>'."\n";
46
}
includes/syscon.inc.php CHANGED
@@ -129,7 +129,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
129
$default_options["gateway_debug_logs"] = "0";
130
$default_options["gateway_debug_logs_extensive"] = "0";
131
132
- $default_options["lazy_load_css_js"] = "1";
133
134
$default_options["sec_encryption_key"] = "";
135
$default_options["sec_encryption_key_history"] = array();
@@ -212,6 +212,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
212
213
$default_options["paypal_sandbox"] = "0";
214
$default_options["paypal_business"] = "";
215
$default_options["paypal_api_username"] = "";
216
$default_options["paypal_api_password"] = "";
217
$default_options["paypal_api_signature"] = "";
@@ -467,7 +468,7 @@ if(!function_exists("ws_plugin__s2member_configure_options_and_their_defaults"))
467
else if($key === "paypal_sandbox" && (!is_string($value) || !is_numeric($value)))
468
$value = $default_options[$key];
469
470
- else if(preg_match("/^paypal_(?:business|api_username|api_password|api_signature|identity_token)#x2F;", $key) && (!is_string($value) || !strlen($value)))
471
$value = $default_options[$key];
472
473
else if(preg_match("/^paypal_payflow(?:api_username|api_partner|api_vendor|api_password)#x2F;", $key) && (!is_string($value) || !strlen($value)))
129
$default_options["gateway_debug_logs"] = "0";
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();
212
213
$default_options["paypal_sandbox"] = "0";
214
$default_options["paypal_business"] = "";
215
+ $default_options["paypal_merchant_id"] = "";
216
$default_options["paypal_api_username"] = "";
217
$default_options["paypal_api_password"] = "";
218
$default_options["paypal_api_signature"] = "";
468
else if($key === "paypal_sandbox" && (!is_string($value) || !is_numeric($value)))
469
$value = $default_options[$key];
470
471
+ else if(preg_match("/^paypal_(?:business|merchant_id|api_username|api_password|api_signature|identity_token)#x2F;", $key) && (!is_string($value) || !strlen($value)))
472
$value = $default_options[$key];
473
474
else if(preg_match("/^paypal_payflow(?:api_username|api_partner|api_vendor|api_password)#x2F;", $key) && (!is_string($value) || !strlen($value)))
includes/templates/buttons/paypal-cancellation-button.php CHANGED
@@ -3,6 +3,6 @@ if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
3
exit("Do not access this file directly.");
4
?>
5
6
- <a href="https://%%endpoint%%/cgi-bin/webscr?cmd=_subscr-find&amp;alias=%%paypal_business%%" style="outline:none;">
7
<img src="https://www.paypal.com/<?php echo esc_attr (_x ("en_US", "s2member-front paypal-button-lang-code", "s2member")); ?>/i/btn/btn_unsubscribe_LG.gif" style="width:auto; height:auto; border:0;" alt="PayPal" />
8
</a>
3
exit("Do not access this file directly.");
4
?>
5
6
+ <a href="https://%%endpoint%%/cgi-bin/webscr?cmd=_subscr-find&amp;alias=%%paypal_merchant_id%%" style="outline:none;">
7
<img src="https://www.paypal.com/<?php echo esc_attr (_x ("en_US", "s2member-front paypal-button-lang-code", "s2member")); ?>/i/btn/btn_unsubscribe_LG.gif" style="width:auto; height:auto; border:0;" alt="PayPal" />
8
</a>
includes/translations/s2member.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2010
2
# This file is distributed under the same license as the package.
3
msgid ""
4
msgstr ""
5
- "Project-Id-Version: \n"
6
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
- "POT-Creation-Date: 2013-11-26 12:09:36+00:00\n"
8
"MIME-Version: 1.0\n"
9
"Content-Type: text/plain; charset=UTF-8\n"
10
"Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
"Language-Team: LANGUAGE <LL@li.org>\n"
14
@@ -79,17 +79,24 @@ msgstr ""
79
#: s2member/includes/classes/files-in.inc.php:108
80
#: s2member/includes/classes/files-in.inc.php:267
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 -› Download Options -› Basic Download Restrictions</code>."
93
msgstr ""
94
95
#: s2member/includes/classes/files-in.inc.php:502
@@ -97,12 +104,12 @@ msgctxt "s2member-front"
97
msgid "<strong>503: Access denied.</strong> Invalid File Download specs."
98
msgstr ""
99
100
- #: s2member/includes/classes/files-in.inc.php:588
101
msgctxt "s2member-front"
102
msgid "Members Only"
103
msgstr ""
104
105
- #: s2member/includes/classes/files-in.inc.php:594
106
msgctxt "s2member-front"
107
msgid "<strong>401:</strong> Sorry, access denied."
108
msgstr ""
@@ -110,27 +117,26 @@ msgstr ""
110
#. translators: In this translation, `%s` may be filled with an English
111
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
112
#. if you like.
113
-
114
- #: s2member/includes/classes/files-in.inc.php:733
115
msgctxt "s2member-admin"
116
msgid "Unable to update existing Amazon S3 Cross-Domain Policy. %s"
117
msgstr ""
118
119
- #: s2member/includes/classes/files-in.inc.php:736
120
msgctxt "s2member-admin"
121
- msgid "Unable to update existing Amazon S3 Cross-Domain Policy. Connection failed."
122
msgstr ""
123
124
#. translators: In this translation, `%s` may be filled with an English
125
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
126
#. if you like.
127
-
128
- #: s2member/includes/classes/files-in.inc.php:740
129
msgctxt "s2member-admin"
130
msgid "Unable to update existing Amazon S3 Bucket Policy. %s"
131
msgstr ""
132
133
- #: s2member/includes/classes/files-in.inc.php:743
134
msgctxt "s2member-admin"
135
msgid "Unable to update existing Amazon S3 Bucket Policy. Connection failed."
136
msgstr ""
@@ -138,65 +144,81 @@ msgstr ""
138
#. translators: In this translation, `%s` may be filled with an English
139
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
140
#. if you like.
141
-
142
- #: s2member/includes/classes/files-in.inc.php:747
143
msgctxt "s2member-admin"
144
msgid "Unable to update existing Amazon S3 Bucket ACLs. %s"
145
msgstr ""
146
147
- #: s2member/includes/classes/files-in.inc.php:750
148
msgctxt "s2member-admin"
149
msgid "Unable to update existing Amazon S3 Bucket ACLs. Connection failed."
150
msgstr ""
151
152
- #: s2member/includes/classes/files-in.inc.php:753
153
msgctxt "s2member-admin"
154
- msgid "Unable to acquire/read existing Amazon S3 Bucket ACLs. Unexpected response."
155
msgstr ""
156
157
#. translators: In this translation, `%s` may be filled with an English
158
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
159
#. if you like.
160
-
161
- #: s2member/includes/classes/files-in.inc.php:757
162
msgctxt "s2member-admin"
163
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. %s"
164
msgstr ""
165
166
- #: s2member/includes/classes/files-in.inc.php:760
167
msgctxt "s2member-admin"
168
msgid "Unable to acquire existing Amazon S3 Bucket ACLs. Connection failed."
169
msgstr ""
170
171
- #: s2member/includes/classes/files-in.inc.php:763
172
msgctxt "s2member-admin"
173
- 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."
174
msgstr ""
175
176
- #: s2member/includes/classes/files-in.inc.php:863
177
msgctxt "s2member-admin"
178
- 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."
179
msgstr ""
180
181
#. translators: In this translation, `%s` may be filled with an English
182
#. message, which comes from the Amazon CloudFront API call. Feel free to
183
#. exclude `%s` if you like.
184
-
185
- #: s2member/includes/classes/files-in.inc.php:870
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:882
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
-
199
- #: s2member/includes/classes/files-in.inc.php:889
200
msgctxt "s2member-admin"
201
msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
202
msgstr ""
@@ -204,9 +226,8 @@ msgstr ""
204
#. translators: In this translation, `%s` may be filled with an English
205
#. message, which comes from the Amazon CloudFront API call. Feel free to
206
#. exclude `%s` if you like.
207
-
208
- #: s2member/includes/classes/files-in.inc.php:905
209
- #: s2member/includes/classes/files-in.inc.php:1089
210
msgctxt "s2member-admin"
211
msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
212
msgstr ""
@@ -214,13 +235,12 @@ msgstr ""
214
#. translators: In this translation, `%s` may be filled with an English
215
#. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
216
#. if you like.
217
-
218
- #: s2member/includes/classes/files-in.inc.php:946
219
msgctxt "s2member-admin"
220
msgid "Unable to update existing Amazon S3 ACLs. %s"
221
msgstr ""
222
223
- #: s2member/includes/classes/files-in.inc.php:949
224
msgctxt "s2member-admin"
225
msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
226
msgstr ""
@@ -228,15 +248,14 @@ msgstr ""
228
#. translators: In this translation, `%s` may be filled with an English
229
#. message, which comes from the Amazon CloudFront API call. Feel free to
230
#. exclude `%s` if you like.
231
-
232
- #: s2member/includes/classes/files-in.inc.php:953
233
- #: s2member/includes/classes/files-in.inc.php:1376
234
msgctxt "s2member-admin"
235
msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
236
msgstr ""
237
238
- #: s2member/includes/classes/files-in.inc.php:956
239
- #: s2member/includes/classes/files-in.inc.php:1379
240
msgctxt "s2member-admin"
241
msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
242
msgstr ""
@@ -244,15 +263,14 @@ msgstr ""
244
#. translators: In this translation, `%s` may be filled with an English
245
#. message, which comes from the Amazon CloudFront API call. Feel free to
246
#. exclude `%s` if you like.
247
-
248
- #: s2member/includes/classes/files-in.inc.php:960
249
- #: s2member/includes/classes/files-in.inc.php:1353
250
msgctxt "s2member-admin"
251
msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
252
msgstr ""
253
254
- #: s2member/includes/classes/files-in.inc.php:963
255
- #: s2member/includes/classes/files-in.inc.php:1356
256
msgctxt "s2member-admin"
257
msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
258
msgstr ""
@@ -260,20 +278,20 @@ msgstr ""
260
#. translators: In this translation, `%s` may be filled with an English
261
#. message, which comes from the Amazon CloudFront API call. Feel free to
262
#. exclude `%s` if you like.
263
-
264
- #: s2member/includes/classes/files-in.inc.php:967
265
- #: s2member/includes/classes/files-in.inc.php:1134
266
msgctxt "s2member-admin"
267
msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
268
msgstr ""
269
270
- #: s2member/includes/classes/files-in.inc.php:970
271
- #: s2member/includes/classes/files-in.inc.php:1137
272
msgctxt "s2member-admin"
273
- msgid "Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
274
msgstr ""
275
276
- #: s2member/includes/classes/files-in.inc.php:973
277
msgctxt "s2member-admin"
278
msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
279
msgstr ""
@@ -281,20 +299,21 @@ msgstr ""
281
#. translators: In this translation, `%s` may be filled with an English
282
#. message, which comes from the Amazon CloudFront API call. Feel free to
283
#. exclude `%s` if you like.
284
-
285
- #: s2member/includes/classes/files-in.inc.php:977
286
- #: s2member/includes/classes/files-in.inc.php:1046
287
msgctxt "s2member-admin"
288
msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
289
msgstr ""
290
291
- #: s2member/includes/classes/files-in.inc.php:980
292
- #: s2member/includes/classes/files-in.inc.php:1049
293
msgctxt "s2member-admin"
294
- msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Connection failed."
295
msgstr ""
296
297
- #: s2member/includes/classes/files-in.inc.php:983
298
msgctxt "s2member-admin"
299
msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
300
msgstr ""
@@ -302,18 +321,19 @@ msgstr ""
302
#. translators: In this translation, `%s` may be filled with an English
303
#. message, which comes from the Amazon CloudFront API call. Feel free to
304
#. exclude `%s` if you like.
305
-
306
- #: s2member/includes/classes/files-in.inc.php:987
307
msgctxt "s2member-admin"
308
msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
309
msgstr ""
310
311
- #: s2member/includes/classes/files-in.inc.php:990
312
msgctxt "s2member-admin"
313
- msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. Connection failed."
314
msgstr ""
315
316
- #: s2member/includes/classes/files-in.inc.php:993
317
msgctxt "s2member-admin"
318
msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
319
msgstr ""
@@ -321,68 +341,82 @@ 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
-
325
- #: s2member/includes/classes/files-in.inc.php:997
326
msgctxt "s2member-admin"
327
msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
328
msgstr ""
329
330
- #: s2member/includes/classes/files-in.inc.php:1000
331
msgctxt "s2member-admin"
332
- msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. Connection failed."
333
msgstr ""
334
335
- #: s2member/includes/classes/files-in.inc.php:1003
336
msgctxt "s2member-admin"
337
- 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."
338
msgstr ""
339
340
- #: s2member/includes/classes/files-in.inc.php:1006
341
msgctxt "s2member-admin"
342
- 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."
343
msgstr ""
344
345
#. translators: In this translation, `%s` may be filled with an English
346
#. message, which comes from the Amazon CloudFront API call. Feel free to
347
#. exclude `%s` if you like.
348
-
349
- #: s2member/includes/classes/files-in.inc.php:1042
350
msgctxt "s2member-admin"
351
msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
352
msgstr ""
353
354
- #: s2member/includes/classes/files-in.inc.php:1052
355
msgctxt "s2member-admin"
356
- msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid Access ID."
357
msgstr ""
358
359
- #: s2member/includes/classes/files-in.inc.php:1092
360
msgctxt "s2member-admin"
361
- msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Connection failed."
362
msgstr ""
363
364
- #: s2member/includes/classes/files-in.inc.php:1095
365
msgctxt "s2member-admin"
366
- msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid Access ID, ETag, or XML config."
367
msgstr ""
368
369
- #: s2member/includes/classes/files-in.inc.php:1121
370
- #: s2member/includes/classes/files-in.inc.php:1340
371
- #: s2member/includes/classes/files-in.inc.php:1363
372
msgctxt "s2member-admin"
373
msgid "Created by s2Member, for S3 Bucket: %s."
374
msgstr ""
375
376
- #: s2member/includes/classes/files-in.inc.php:1130
377
msgctxt "s2member-admin"
378
- msgid "Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected response."
379
msgstr ""
380
381
#. translators: In this translation, `%s` may be filled with an English
382
#. message, which comes from the Amazon CloudFront API call. Feel free to
383
#. exclude `%s` if you like.
384
-
385
- #: s2member/includes/classes/files-in.inc.php:1174
386
msgctxt "s2member-admin"
387
msgid "Existing Amazon CloudFront Distro NOT found. %s"
388
msgstr ""
@@ -390,58 +424,67 @@ msgstr ""
390
#. translators: In this translation, `%s` may be filled with an English
391
#. message, which comes from the Amazon CloudFront API call. Feel free to
392
#. exclude `%s` if you like.
393
-
394
- #: s2member/includes/classes/files-in.inc.php:1178
395
msgctxt "s2member-admin"
396
msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
397
msgstr ""
398
399
- #: s2member/includes/classes/files-in.inc.php:1181
400
msgctxt "s2member-admin"
401
msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
402
msgstr ""
403
404
- #: s2member/includes/classes/files-in.inc.php:1184
405
msgctxt "s2member-admin"
406
- msgid "Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/or Distro type."
407
msgstr ""
408
409
#. translators: In this translation, `%s` may be filled with an English
410
#. message, which comes from the Amazon CloudFront API call. Feel free to
411
#. exclude `%s` if you like.
412
-
413
- #: s2member/includes/classes/files-in.inc.php:1226
414
- #: s2member/includes/classes/files-in.inc.php:1299
415
msgctxt "s2member-admin"
416
msgid "Unable to disable existing Amazon CloudFront Distro. %s"
417
msgstr ""
418
419
- #: s2member/includes/classes/files-in.inc.php:1229
420
- #: s2member/includes/classes/files-in.inc.php:1302
421
msgctxt "s2member-admin"
422
msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
423
msgstr ""
424
425
- #: s2member/includes/classes/files-in.inc.php:1232
426
msgctxt "s2member-admin"
427
- 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."
428
msgstr ""
429
430
- #: s2member/includes/classes/files-in.inc.php:1238
431
msgctxt "s2member-admin"
432
- msgid "Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, ETag, or XML config."
433
msgstr ""
434
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
-
439
- #: s2member/includes/classes/files-in.inc.php:1281
440
msgctxt "s2member-admin"
441
msgid "Unable to delete existing Amazon CloudFront Distro. %s"
442
msgstr ""
443
444
- #: s2member/includes/classes/files-in.inc.php:1284
445
msgctxt "s2member-admin"
446
msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
447
msgstr ""
@@ -449,47 +492,70 @@ msgstr ""
449
#. translators: In this translation, `%s` may be filled with an English
450
#. message, which comes from the Amazon CloudFront API call. Feel free to
451
#. exclude `%s` if you like.
452
-
453
- #: s2member/includes/classes/files-in.inc.php:1288
454
msgctxt "s2member-admin"
455
- 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."
456
msgstr ""
457
458
#. translators: In this translation, `%s` may be filled with an English
459
#. message, which comes from the Amazon CloudFront API call. Feel free to
460
#. exclude `%s` if you like.
461
-
462
- #: s2member/includes/classes/files-in.inc.php:1292
463
msgctxt "s2member-admin"
464
msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
465
msgstr ""
466
467
- #: s2member/includes/classes/files-in.inc.php:1295
468
msgctxt "s2member-admin"
469
- msgid "Unable to check status of existing Amazon CloudFront Distro. Connection failed."
470
msgstr ""
471
472
- #: s2member/includes/classes/files-in.inc.php:1305
473
msgctxt "s2member-admin"
474
- 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."
475
msgstr ""
476
477
- #: s2member/includes/classes/files-in.inc.php:1308
478
msgctxt "s2member-admin"
479
- msgid "Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or ETag."
480
msgstr ""
481
482
- #: s2member/includes/classes/files-in.inc.php:1349
483
msgctxt "s2member-admin"
484
- msgid "Unable to create/read Amazon CloudFront Downloads Distro. Unexpected response."
485
msgstr ""
486
487
- #: s2member/includes/classes/files-in.inc.php:1372
488
msgctxt "s2member-admin"
489
- msgid "Unable to create/read Amazon CloudFront Streaming Distro. Unexpected response."
490
msgstr ""
491
492
- #: s2member/includes/classes/files-in.inc.php:1383
493
msgctxt "s2member-admin"
494
msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
495
msgstr ""
@@ -501,19 +567,27 @@ msgstr ""
501
502
#: s2member/includes/classes/login-checks.inc.php:76
503
msgctxt "s2member-front"
504
- msgid "<strong>ERROR</strong>: Max simultaneous logins for username: %1$s. Please wait %2$s and try again."
505
msgstr ""
506
507
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
508
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
509
msgctxt "s2member-front"
510
- 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."
511
msgstr ""
512
513
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
514
#: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
515
msgctxt "s2member-front"
516
- msgid "<strong>** Sandbox Mode **</strong> You may NOT receive this Email in Sandbox Mode. Sandbox addresses are usually bogus (for testing)."
517
msgstr ""
518
519
#: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:67
@@ -539,7 +613,15 @@ msgstr ""
539
540
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:64
541
msgctxt "s2member-front"
542
- 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>"
543
msgstr ""
544
545
#: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:65
@@ -564,13 +646,21 @@ msgstr ""
564
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:198
565
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:245
566
msgctxt "s2member-front"
567
- 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."
568
msgstr ""
569
570
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:209
571
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:256
572
msgctxt "s2member-front"
573
- 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."
574
msgstr ""
575
576
#: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:220
@@ -578,13 +668,17 @@ msgstr ""
578
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:188
579
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:130
580
msgctxt "s2member-front"
581
- msgid "<strong>Page Expired:</strong> Duplicate Return-Data.<br />Please contact Support if you need any assistance."
582
msgstr ""
583
584
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:327
585
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:350
586
msgctxt "s2member-front"
587
- msgid "<strong>Thank you! Your account has been approved.<br />The next step is to Register a Username for immediate access.</strong>"
588
msgstr ""
589
590
#: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:328
@@ -600,17 +694,27 @@ msgstr ""
600
601
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:155
602
msgctxt "s2member-front"
603
- 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."
604
msgstr ""
605
606
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:166
607
msgctxt "s2member-front"
608
- 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."
609
msgstr ""
610
611
#: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:177
612
msgctxt "s2member-front"
613
- msgid "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact Support for assistance.<br /><br />Missing User/Member details."
614
msgstr ""
615
616
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:108
@@ -620,29 +724,54 @@ msgstr ""
620
621
#: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:119
622
msgctxt "s2member-front"
623
- msgid "<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact Support for assistance."
624
msgstr ""
625
626
#: s2member/includes/classes/paypal-return-in.inc.php:90
627
msgctxt "s2member-front"
628
- 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."
629
msgstr ""
630
631
#: s2member/includes/classes/paypal-return-in.inc.php:107
632
msgctxt "s2member-front"
633
- 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."
634
msgstr ""
635
636
#: s2member/includes/classes/paypal-return-in.inc.php:133
637
msgctxt "s2member-front"
638
- 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."
639
msgstr ""
640
641
#. translators: Exclude `%2$s` and `%3$s`. These are English details returned
642
#. by PayPal. Replace `%2$s` and `%3$s` with: `Unable to process, please try
643
#. again`, or something to that affect. Or, if you prefer, you could Filter
644
#. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
645
-
646
#: s2member/includes/classes/paypal-utilities.inc.php:185
647
msgctxt "s2member-front"
648
msgid "Error #%1$s. %2$s. %3$s."
@@ -660,7 +789,8 @@ msgstr ""
660
#: s2member/includes/classes/paypal-utilities.inc.php:232
661
#: s2member/includes/classes/paypal-utilities.inc.php:238
662
msgctxt "s2member-front"
663
- msgid "Error #%s. Transaction declined. Please use an alternate funding source."
664
msgstr ""
665
666
#: s2member/includes/classes/paypal-utilities.inc.php:235
@@ -682,7 +812,6 @@ msgstr ""
682
#. again`, or something to that affect. Or, if you prefer, you could Filter
683
#. ``$response["__error"]`` with
684
#. `ws_plugin__s2member_pro_authnet_arb_response`.
685
-
686
#: s2member/includes/classes/paypal-utilities.inc.php:314
687
#: s2member/includes/classes/paypal-utilities.inc.php:322
688
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
@@ -693,7 +822,10 @@ msgstr ""
693
694
#: s2member/includes/classes/paypal-utilities.inc.php:369
695
msgctxt "s2member-front"
696
- 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."
697
msgstr ""
698
699
#: s2member/includes/classes/profile-in.inc.php:78
@@ -711,8 +843,6 @@ msgstr ""
711
712
#: s2member/includes/classes/profile-in.inc.php:98
713
#: s2member/includes/classes/sc-profile-in.inc.php:114
714
- #: s2member-pro/includes/separates/gateways/google/google-min.js:1
715
- #: s2member-pro/includes/separates/gateways/google/google.js:39
716
#: s2member-pro/includes/templates/forms/authnet-checkout-form.php:78
717
#: s2member-pro/includes/templates/forms/authnet-registration-form.php:46
718
#: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:78
@@ -764,12 +894,16 @@ msgstr ""
764
#: s2member/includes/classes/register-in.inc.php:48
765
#: s2member/includes/classes/sp-access.inc.php:132
766
msgctxt "s2member-front"
767
- msgid "<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance."
768
msgstr ""
769
770
#: s2member/includes/classes/registrations.inc.php:450
771
msgctxt "s2member-front"
772
- msgid "s2Member security violation. You attempted to POST administrative variables that will NOT be trusted in a NON-administrative zone!"
773
msgstr ""
774
775
#: s2member/includes/classes/return-templates.inc.php:50
@@ -789,21 +923,20 @@ msgstr ""
789
790
#: s2member/includes/classes/return-templates.inc.php:77
791
msgctxt "s2member-front"
792
- msgid "If you need assistance, please <a href=\"%s\" target=\"_blank\">contact support</a>."
793
msgstr ""
794
795
#: s2member/includes/classes/sc-paypal-button-e.inc.php:77
796
#: s2member/includes/classes/sc-paypal-button-in.inc.php:73
797
- #: s2member/includes/classes/sc-paypal-button-in.inc.php:96
798
- #: s2member/includes/classes/sc-paypal-button-in.inc.php:150
799
- #: s2member/includes/classes/sc-paypal-button-in.inc.php:205
800
#: s2member/includes/templates/buttons/paypal-cancellation-button.php:7
801
#: s2member/includes/templates/buttons/paypal-ccaps-checkout-button.php:34
802
#: s2member/includes/templates/buttons/paypal-checkout-button.php:46
803
#: s2member/includes/templates/buttons/paypal-sp-checkout-button.php:34
804
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
805
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:270
806
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:562
807
msgctxt "s2member-front paypal-button-lang-code"
808
msgid "en_US"
809
msgstr ""
@@ -849,13 +982,17 @@ msgstr ""
849
850
#: s2member/includes/classes/translations.inc.php:123
851
msgctxt "s2member-front"
852
- msgid "Your account is now active. <a href=\"%1$s\">Visit site</a> or <a href=\"%2$s\">Log in</a>."
853
msgstr ""
854
855
#: s2member/includes/classes/translations.inc.php:144
856
#: s2member/includes/classes/translations.inc.php:166
857
msgctxt "s2member-front"
858
- msgid "By filling out the form below, you can <strong>add a site to your account</strong>."
859
msgstr ""
860
861
#: s2member/includes/classes/translations.inc.php:144
@@ -1071,7 +1208,6 @@ msgstr ""
1071
1072
#. translators: Each cycle ( i.e. `each day/week/month` or `every 2
1073
#. days/weeks/months`, etc. ). Cycles are translated elsewhere.
1074
-
1075
#: s2member/includes/classes/utils-time.inc.php:285
1076
#: s2member/includes/classes/utils-time.inc.php:326
1077
msgctxt "s2member-front"
@@ -1087,7 +1223,6 @@ msgstr ""
1087
1088
#. translators: Membership cycle ( i.e. `1 day/week/month` or `2
1089
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
1090
-
1091
#: s2member/includes/classes/utils-time.inc.php:292
1092
msgctxt "s2member-front"
1093
msgid "%1$s %2$s"
@@ -1097,7 +1232,6 @@ msgstr[1] ""
1097
1098
#. translators: Cycle ( i.e. `for 1 day/week/month` or `for 2
1099
#. days/weeks/months`, etc. ). Most of this is translated elsewhere.
1100
-
1101
#: s2member/includes/classes/utils-time.inc.php:333
1102
msgctxt "s2member-front"
1103
msgid "for %1$s %2$s"
@@ -1105,331 +1239,6 @@ msgid_plural "for %1$s %3$s"
1105
msgstr[0] ""
1106
msgstr[1] ""
1107
1108
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:32
1109
- msgctxt "s2member-front"
1110
- msgid "— Confirm File Download —"
1111
- msgstr ""
1112
-
1113
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
1114
- msgctxt "s2member-front"
1115
- msgid "You`ve downloaded %s protected %s in the last %s."
1116
- msgstr ""
1117
-
1118
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
1119
- msgctxt "s2member-front"
1120
- msgid "file"
1121
- msgstr ""
1122
-
1123
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
1124
- msgctxt "s2member-front"
1125
- msgid "files"
1126
- msgstr ""
1127
-
1128
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
1129
- msgctxt "s2member-front"
1130
- msgid "24 hours"
1131
- msgstr ""
1132
-
1133
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:33
1134
- msgctxt "s2member-front"
1135
- msgid "%s days"
1136
- msgstr ""
1137
-
1138
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1139
- msgctxt "s2member-front"
1140
- msgid "You`re entitled to UNLIMITED downloads though (so, no worries)."
1141
- msgstr ""
1142
-
1143
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1144
- msgctxt "s2member-front"
1145
- msgid "You`re entitled to %s unique %s %s."
1146
- msgstr ""
1147
-
1148
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1149
- msgctxt "s2member-front"
1150
- msgid "download"
1151
- msgstr ""
1152
-
1153
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1154
- msgctxt "s2member-front"
1155
- msgid "downloads"
1156
- msgstr ""
1157
-
1158
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1159
- msgctxt "s2member-front"
1160
- msgid "each day"
1161
- msgstr ""
1162
-
1163
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:34
1164
- msgctxt "s2member-front"
1165
- msgid "every %s-day period"
1166
- msgstr ""
1167
-
1168
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:80
1169
- #: s2member/includes/s2member.js:87 s2member/includes/s2member.js:94
1170
- #: s2member/includes/s2member.js:130 s2member/includes/s2member.js:185
1171
- #: s2member/includes/s2member.js:192 s2member/includes/s2member.js:199
1172
- #: s2member/includes/s2member.js:231 s2member/includes/s2member.js:263
1173
- #: s2member/includes/s2member.js:290
1174
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
1175
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:66
1176
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:73
1177
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:160
1178
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:167
1179
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:232
1180
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:239
1181
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:246
1182
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:253
1183
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:497
1184
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:504
1185
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:769
1186
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:776
1187
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:783
1188
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:790
1189
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
1190
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:66
1191
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:73
1192
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:160
1193
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:167
1194
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:232
1195
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:239
1196
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:246
1197
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:253
1198
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:537
1199
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:544
1200
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:857
1201
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:864
1202
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:871
1203
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:878
1204
- msgctxt "s2member-front"
1205
- msgid "— Oops, you missed something: —"
1206
- msgstr ""
1207
-
1208
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:87
1209
- #: s2member/includes/s2member.js:192
1210
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
1211
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:239
1212
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:776
1213
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
1214
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:239
1215
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:864
1216
- msgctxt "s2member-front"
1217
- msgid "Passwords do not match up. Please try again."
1218
- msgstr ""
1219
-
1220
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:94
1221
- #: s2member/includes/s2member.js:199
1222
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
1223
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:246
1224
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:783
1225
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
1226
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:246
1227
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:871
1228
- msgctxt "s2member-front"
1229
- msgid "Password MUST be at least 6 characters. Please try again."
1230
- msgstr ""
1231
-
1232
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:330
1233
- msgctxt "s2member-front"
1234
- msgid "Strength indicator"
1235
- msgstr ""
1236
-
1237
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:331
1238
- msgctxt "s2member-front"
1239
- msgid "Very weak"
1240
- msgstr ""
1241
-
1242
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:332
1243
- msgctxt "s2member-front"
1244
- msgid "Weak"
1245
- msgstr ""
1246
-
1247
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:333
1248
- msgctxt "s2member-front"
1249
- msgid "Medium"
1250
- msgstr ""
1251
-
1252
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:334
1253
- msgctxt "s2member-front"
1254
- msgid "Strong"
1255
- msgstr ""
1256
-
1257
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:335
1258
- msgctxt "s2member-front"
1259
- msgid "Mismatch"
1260
- msgstr ""
1261
-
1262
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:364
1263
- msgctxt "s2member-front"
1264
- msgid "Please check at least one of the boxes."
1265
- msgstr ""
1266
-
1267
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:369
1268
- msgctxt "s2member-front"
1269
- msgid "Required. This box must be checked."
1270
- msgstr ""
1271
-
1272
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:375
1273
- msgctxt "s2member-front"
1274
- msgid "Please select one of the options."
1275
- msgstr ""
1276
-
1277
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:380
1278
- msgctxt "s2member-front"
1279
- msgid "Please select at least one of the options."
1280
- msgstr ""
1281
-
1282
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:384
1283
- msgctxt "s2member-front"
1284
- msgid "This is a required field, please try again."
1285
- msgstr ""
1286
-
1287
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:390
1288
- msgctxt "s2member-front"
1289
- msgid "Must be numeric (with or without decimals, commas allowed)."
1290
- msgstr ""
1291
-
1292
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:394
1293
- msgctxt "s2member-front"
1294
- msgid "Must be numeric (with or without decimals, no commas)."
1295
- msgstr ""
1296
-
1297
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:398
1298
- msgctxt "s2member-front"
1299
- msgid "Must be an integer (a whole number, without any decimals)."
1300
- msgstr ""
1301
-
1302
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:402
1303
- msgctxt "s2member-front"
1304
- msgid "Must be an integer > 0 (whole number, no decimals, greater than 0)."
1305
- msgstr ""
1306
-
1307
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:406
1308
- msgctxt "s2member-front"
1309
- msgid "Must be a float (floating point number, decimals required)."
1310
- msgstr ""
1311
-
1312
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:410
1313
- msgctxt "s2member-front"
1314
- msgid "Must be a float > 0 (floating point number, decimals required, greater than 0)."
1315
- msgstr ""
1316
-
1317
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:414
1318
- msgctxt "s2member-front"
1319
- msgid "Must be a date (required date format: dd/mm/yyyy)."
1320
- msgstr ""
1321
-
1322
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:418
1323
- msgctxt "s2member-front"
1324
- msgid "Must be a valid email address."
1325
- msgstr ""
1326
-
1327
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:422
1328
- msgctxt "s2member-front"
1329
- msgid ""
1330
- "Please use a personal email address.\n"
1331
- "Addresses like <%s@> are problematic."
1332
- msgstr ""
1333
-
1334
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:426
1335
- msgctxt "s2member-front"
1336
- msgid "Must be a full URL (starting with http or https)."
1337
- msgstr ""
1338
-
1339
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:430
1340
- msgctxt "s2member-front"
1341
- msgid "Must be a domain name (domain name only, without http)."
1342
- msgstr ""
1343
-
1344
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:434
1345
- msgctxt "s2member-front"
1346
- msgid "Must be a phone # (10 digits w/possible hyphens,spaces,brackets)."
1347
- msgstr ""
1348
-
1349
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:438
1350
- msgctxt "s2member-front"
1351
- msgid "Must be a US zipcode (5-9 digits w/possible hyphen)."
1352
- msgstr ""
1353
-
1354
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:442
1355
- msgctxt "s2member-front"
1356
- msgid "Must be a Canadian zipcode (6 alpha-numerics w/possible space)."
1357
- msgstr ""
1358
-
1359
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:446
1360
- msgctxt "s2member-front"
1361
- msgid "Must be a zipcode (either a US or Canadian zipcode)."
1362
- msgstr ""
1363
-
1364
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:450
1365
- msgctxt "s2member-front"
1366
- msgid "Please use alphanumerics, spaces & punctuation only."
1367
- msgstr ""
1368
-
1369
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:454
1370
- msgctxt "s2member-front"
1371
- msgid "Please use alphanumerics & spaces only."
1372
- msgstr ""
1373
-
1374
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:458
1375
- msgctxt "s2member-front"
1376
- msgid "Please use alphanumerics & punctuation only (no spaces)."
1377
- msgstr ""
1378
-
1379
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:462
1380
- msgctxt "s2member-front"
1381
- msgid "Please use alphanumerics only (no spaces/punctuation)."
1382
- msgstr ""
1383
-
1384
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:466
1385
- msgctxt "s2member-front"
1386
- msgid "Please use alphabetics only (no digits/spaces/punctuation)."
1387
- msgstr ""
1388
-
1389
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:470
1390
- msgctxt "s2member-front"
1391
- msgid "Please use numeric digits only."
1392
- msgstr ""
1393
-
1394
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
1395
- msgctxt "s2member-front"
1396
- msgid "Must be exactly %s %s."
1397
- msgstr ""
1398
-
1399
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
1400
- #: s2member/includes/s2member.js:480
1401
- msgctxt "s2member-front"
1402
- msgid "digit"
1403
- msgstr ""
1404
-
1405
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
1406
- #: s2member/includes/s2member.js:480
1407
- msgctxt "s2member-front"
1408
- msgid "digits"
1409
- msgstr ""
1410
-
1411
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
1412
- #: s2member/includes/s2member.js:480
1413
- msgctxt "s2member-front"
1414
- msgid "character"
1415
- msgstr ""
1416
-
1417
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:477
1418
- #: s2member/includes/s2member.js:480
1419
- msgctxt "s2member-front"
1420
- msgid "characters"
1421
- msgstr ""
1422
-
1423
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:480
1424
- msgctxt "s2member-front"
1425
- msgid "Must be at least %s %s."
1426
- msgstr ""
1427
-
1428
- #: s2member/includes/s2member-min.js:1 s2member/includes/s2member.js:533
1429
- msgctxt "s2member-front"
1430
- msgid "Processing"
1431
- msgstr ""
1432
-
1433
#: s2member/includes/syscon.inc.php:84
1434
msgctxt "s2member-front recaptcha-lang-code"
1435
msgid "en"
@@ -1473,12 +1282,13 @@ msgid ""
1473
"IP Address: %%%%user_ip%%%%"
1474
msgstr ""
1475
1476
- #: s2member/includes/syscon.inc.php:232 s2member-pro/includes/syscon.inc.php:94
1477
msgctxt "s2member-front"
1478
msgid "Congratulations! (your membership has been approved)"
1479
msgstr ""
1480
1481
- #: s2member/includes/syscon.inc.php:233
1482
msgctxt "s2member-front"
1483
msgid ""
1484
"Thanks %%%%first_name%%%%! Your membership has been approved.\n"
@@ -1494,15 +1304,16 @@ msgid ""
1494
"%s"
1495
msgstr ""
1496
1497
- #: s2member/includes/syscon.inc.php:236 s2member/includes/syscon.inc.php:240
1498
msgctxt "s2member-front"
1499
msgid "Thank you! Your account has been updated."
1500
msgstr ""
1501
1502
- #: s2member/includes/syscon.inc.php:237 s2member/includes/syscon.inc.php:241
1503
msgctxt "s2member-front"
1504
msgid ""
1505
- "Thanks %%%%first_name%%%%! Your account now has access to: %%%%item_name%%%%.\n"
1506
"\n"
1507
"If you have any trouble, please feel free to contact us.\n"
1508
"\n"
@@ -1510,12 +1321,13 @@ msgid ""
1510
"%s"
1511
msgstr ""
1512
1513
- #: s2member/includes/syscon.inc.php:244 s2member-pro/includes/syscon.inc.php:98
1514
msgctxt "s2member-front"
1515
msgid "Thank You! (instructions for access)"
1516
msgstr ""
1517
1518
- #: s2member/includes/syscon.inc.php:245
1519
msgctxt "s2member-front"
1520
msgid ""
1521
"Thanks %%%%first_name%%%%!\n"
@@ -1532,32 +1344,32 @@ msgid ""
1532
"%s"
1533
msgstr ""
1534
1535
- #: s2member/includes/syscon.inc.php:273
1536
msgctxt "s2member-front"
1537
msgid "Free Subscriber"
1538
msgstr ""
1539
1540
- #: s2member/includes/syscon.inc.php:273
1541
msgctxt "s2member-front"
1542
msgid "Bronze Member"
1543
msgstr ""
1544
1545
- #: s2member/includes/syscon.inc.php:273
1546
msgctxt "s2member-front"
1547
msgid "Silver Member"
1548
msgstr ""
1549
1550
- #: s2member/includes/syscon.inc.php:273
1551
msgctxt "s2member-front"
1552
msgid "Gold Member"
1553
msgstr ""
1554
1555
- #: s2member/includes/syscon.inc.php:273
1556
msgctxt "s2member-front"
1557
msgid "Platinum Member"
1558
msgstr ""
1559
1560
- #: s2member/includes/syscon.inc.php:273
1561
msgctxt "s2member-front"
1562
msgid "Level %s Member"
1563
msgstr ""
@@ -1658,7 +1470,10 @@ msgstr ""
1658
1659
#: s2member/includes/templates/errors/ip-restrictions.php:13
1660
msgctxt "s2member-front"
1661
- 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."
1662
msgstr ""
1663
1664
#: s2member/includes/templates/options/paypal-currencies.php:6
@@ -2449,14 +2264,17 @@ msgctxt "s2member-front"
2449
msgid ""
2450
"ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
2451
"\n"
2452
- "This is most likely related to an invalid AliPay configuration. If you are the site owner, please check: s2Member -› AliPay Options."
2453
msgstr ""
2454
2455
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:116
2456
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:115
2457
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:113
2458
msgctxt "s2member-front"
2459
- msgid "<strong>Billing termination confirmed.</strong> Your account has been cancelled."
2460
msgstr ""
2461
2462
#: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:124
@@ -2491,7 +2309,9 @@ msgstr ""
2491
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:469
2492
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:906
2493
msgctxt "s2member-front"
2494
- msgid "<strong>Thank you.</strong> Your account has been updated.<br />&mdash; Please <a href=\"%s\" rel=\"nofollow\">log back in</a> now."
2495
msgstr ""
2496
2497
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
@@ -2503,7 +2323,9 @@ msgstr ""
2503
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:737
2504
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1060
2505
msgctxt "s2member-front"
2506
- msgid "<strong>Thank you.</strong> Your account has been approved.<br />&mdash; Please <a href=\"%s\" rel=\"nofollow\">login</a>."
2507
msgstr ""
2508
2509
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:501
@@ -2527,7 +2349,9 @@ msgstr ""
2527
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:125
2528
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:142
2529
msgctxt "s2member-front"
2530
- msgid "<strong>Oops.</strong> A slight problem. Please contact Support for assistance."
2531
msgstr ""
2532
2533
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
@@ -2539,7 +2363,9 @@ msgstr ""
2539
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:758
2540
#: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1081
2541
msgctxt "s2member-front"
2542
- msgid "<strong>Thank you.</strong> Your account has been approved.<br />&mdash; You'll receive an email momentarily."
2543
msgstr ""
2544
2545
#: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
@@ -2736,7 +2562,8 @@ msgstr ""
2736
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:118
2737
#: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:118
2738
msgctxt "s2member-front"
2739
- msgid "<strong>Thank you.</strong> Please <a href=\"%s\" rel=\"nofollow\">login</a>."
2740
msgstr ""
2741
2742
#: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:135
@@ -2747,17 +2574,23 @@ msgstr ""
2747
2748
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:205
2749
msgctxt "s2member-admin"
2750
- msgid "Authorize.Net configuration error. Please configure your Authorize.Net API Login ID."
2751
msgstr ""
2752
2753
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:208
2754
msgctxt "s2member-admin"
2755
- msgid "Authorize.Net configuration error. Your Authorize.Net API Transaction Key is not yet configured."
2756
msgstr ""
2757
2758
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:211
2759
msgctxt "s2member-admin"
2760
- msgid "Authorize.Net configuration error. Your Authorize.Net Secret MD5 Hash is not yet configured."
2761
msgstr ""
2762
2763
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
@@ -2765,7 +2598,8 @@ msgstr ""
2765
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
2766
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:597
2767
msgctxt "s2member-front"
2768
- msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
2769
msgstr ""
2770
2771
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:236
@@ -2789,7 +2623,9 @@ msgstr ""
2789
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:272
2790
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:608
2791
msgctxt "s2member-front"
2792
- msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing information."
2793
msgstr ""
2794
2795
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
@@ -2805,19 +2641,25 @@ msgstr ""
2805
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:302
2806
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:308
2807
msgctxt "s2member-front"
2808
- msgid "Nothing to update. You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance."
2809
msgstr ""
2810
2811
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
2812
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:314
2813
msgctxt "s2member-admin"
2814
- msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2815
msgstr ""
2816
2817
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
2818
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:317
2819
msgctxt "s2member-admin"
2820
- msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2821
msgstr ""
2822
2823
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
@@ -2825,7 +2667,10 @@ msgstr ""
2825
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:320
2826
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:426
2827
msgctxt "s2member-admin"
2828
- 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."
2829
msgstr ""
2830
2831
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
@@ -2833,7 +2678,9 @@ msgstr ""
2833
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:323
2834
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:468
2835
msgctxt "s2member-admin"
2836
- msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be numeric."
2837
msgstr ""
2838
2839
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
@@ -2841,7 +2688,9 @@ msgstr ""
2841
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:326
2842
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:471
2843
msgctxt "s2member-admin"
2844
- msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be >= 1."
2845
msgstr ""
2846
2847
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
@@ -2849,7 +2698,9 @@ msgstr ""
2849
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:329
2850
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:474
2851
msgctxt "s2member-admin"
2852
- 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."
2853
msgstr ""
2854
2855
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
@@ -2857,61 +2708,81 @@ msgstr ""
2857
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:332
2858
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:477
2859
msgctxt "s2member-admin"
2860
- 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."
2861
msgstr ""
2862
2863
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
2864
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:335
2865
msgctxt "s2member-admin"
2866
- msgid "Invalid form configuration. Invalid \"custom\" attribute. When provided, must start with your domain name."
2867
msgstr ""
2868
2869
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
2870
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:340
2871
msgctxt "s2member-admin"
2872
- msgid "Invalid form configuration. Missing \"ids\" attribute. Must contain comma-delimited Post/Page IDs."
2873
msgstr ""
2874
2875
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
2876
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:343
2877
msgctxt "s2member-admin"
2878
- msgid "Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-delimited Post/Page IDs. Must contain [0-9,] only."
2879
msgstr ""
2880
2881
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
2882
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:346
2883
msgctxt "s2member-admin"
2884
- msgid "Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2885
msgstr ""
2886
2887
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
2888
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:349
2889
msgctxt "s2member-admin"
2890
- msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2891
msgstr ""
2892
2893
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
2894
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:352
2895
msgctxt "s2member-admin"
2896
- msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be >= 1."
2897
msgstr ""
2898
2899
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
2900
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:355
2901
msgctxt "s2member-admin"
2902
- msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be <= 43800."
2903
msgstr ""
2904
2905
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
2906
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:358
2907
msgctxt "s2member-admin"
2908
- msgid "Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2909
msgstr ""
2910
2911
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
2912
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:361
2913
msgctxt "s2member-admin"
2914
- msgid "Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2915
msgstr ""
2916
2917
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
@@ -2919,7 +2790,9 @@ msgstr ""
2919
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:364
2920
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:432
2921
msgctxt "s2member-admin"
2922
- msgid "Invalid form configuration. Missing \"desc\" attribute. Please provide a Description for this form."
2923
msgstr ""
2924
2925
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
@@ -2927,7 +2800,9 @@ msgstr ""
2927
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:367
2928
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:435
2929
msgctxt "s2member-admin"
2930
- msgid "Invalid form configuration. Your \"desc\" (Description) attribute must be <= 100 characters long."
2931
msgstr ""
2932
2933
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
@@ -2935,13 +2810,17 @@ msgstr ""
2935
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:370
2936
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:438
2937
msgctxt "s2member-admin"
2938
- msgid "Invalid form configuration. Missing \"custom\" attribute. Must start with your domain name."
2939
msgstr ""
2940
2941
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
2942
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:373
2943
msgctxt "s2member-admin"
2944
- msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with your domain name."
2945
msgstr ""
2946
2947
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
@@ -2949,7 +2828,9 @@ msgstr ""
2949
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:376
2950
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:444
2951
msgctxt "s2member-admin"
2952
- msgid "Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character Currency Code."
2953
msgstr ""
2954
2955
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
@@ -2957,7 +2838,9 @@ msgstr ""
2957
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:379
2958
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:447
2959
msgctxt "s2member-admin"
2960
- msgid "Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character Currency Code."
2961
msgstr ""
2962
2963
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
@@ -2965,7 +2848,9 @@ msgstr ""
2965
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:400
2966
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:537
2967
msgctxt "s2member-admin"
2968
- msgid "Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2969
msgstr ""
2970
2971
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
@@ -2973,7 +2858,9 @@ msgstr ""
2973
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:403
2974
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:540
2975
msgctxt "s2member-admin"
2976
- msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be numeric."
2977
msgstr ""
2978
2979
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
@@ -2981,163 +2868,228 @@ msgstr ""
2981
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:406
2982
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:543
2983
msgctxt "s2member-admin"
2984
- msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2985
msgstr ""
2986
2987
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:344
2988
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:472
2989
msgctxt "s2member-admin"
2990
- msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be <= 99999.00."
2991
msgstr ""
2992
2993
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
2994
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:414
2995
msgctxt "s2member-front"
2996
- msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing plan."
2997
msgstr ""
2998
2999
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
3000
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:417
3001
msgctxt "s2member-front"
3002
- msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this purchase."
3003
msgstr ""
3004
3005
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
3006
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:420
3007
msgctxt "s2member-admin"
3008
- msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
3009
msgstr ""
3010
3011
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
3012
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:423
3013
msgctxt "s2member-admin"
3014
- msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
3015
msgstr ""
3016
3017
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
3018
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:429
3019
msgctxt "s2member-admin"
3020
- 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."
3021
msgstr ""
3022
3023
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
3024
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:441
3025
msgctxt "s2member-admin"
3026
- msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with matching domain."
3027
msgstr ""
3028
3029
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
3030
msgctxt "s2member-admin"
3031
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
3032
msgstr ""
3033
3034
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
3035
msgctxt "s2member-admin"
3036
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
3037
msgstr ""
3038
3039
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
3040
msgctxt "s2member-admin"
3041
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
3042
msgstr ""
3043
3044
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
3045
msgctxt "s2member-admin"
3046
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
3047
msgstr ""
3048
3049
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
3050
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:480
3051
msgctxt "s2member-admin"
3052
- msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be numeric."
3053
msgstr ""
3054
3055
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
3056
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:483
3057
msgctxt "s2member-admin"
3058
- msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be >= 0.00."
3059
msgstr ""
3060
3061
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:415
3062
msgctxt "s2member-admin"
3063
- msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be <= 99999.00."
3064
msgstr ""
3065
3066
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
3067
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:489
3068
msgctxt "s2member-admin"
3069
- msgid "Invalid form configuration. Missing \"rp\" attribute. The Regular Period. Must be >= 1."
3070
msgstr ""
3071
3072
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
3073
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:492
3074
msgctxt "s2member-admin"
3075
- msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be numeric."
3076
msgstr ""
3077
3078
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
3079
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:495
3080
msgctxt "s2member-admin"
3081
- msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be >= 1."
3082
msgstr ""
3083
3084
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
3085
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:498
3086
msgctxt "s2member-admin"
3087
- msgid "Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3088
msgstr ""
3089
3090
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
3091
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:501
3092
msgctxt "s2member-admin"
3093
- msgid "Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3094
msgstr ""
3095
3096
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:433
3097
msgctxt "s2member-admin"
3098
- 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)."
3099
msgstr ""
3100
3101
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
3102
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:504
3103
msgctxt "s2member-admin"
3104
- 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)."
3105
msgstr ""
3106
3107
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
3108
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:507
3109
msgctxt "s2member-admin"
3110
- 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)."
3111
msgstr ""
3112
3113
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
3114
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:510
3115
msgctxt "s2member-admin"
3116
- 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)."
3117
msgstr ""
3118
3119
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
3120
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:519
3121
msgctxt "s2member-admin"
3122
- 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)."
3123
msgstr ""
3124
3125
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
3126
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:522
3127
msgctxt "s2member-admin"
3128
- msgid "Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) > 1."
3129
msgstr ""
3130
3131
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
3132
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:525
3133
msgctxt "s2member-admin"
3134
- msgid "Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN\" (Buy Now)."
3135
msgstr ""
3136
3137
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
3138
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:528
3139
msgctxt "s2member-admin"
3140
- msgid "Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3141
msgstr ""
3142
3143
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
@@ -3145,49 +3097,68 @@ msgstr ""
3145
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:531
3146
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:534
3147
msgctxt "s2member-admin"
3148
- msgid "Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3149
msgstr ""
3150
3151
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
3152
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:549
3153
msgctxt "s2member-admin"
3154
- msgid "Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. When provided, must be 0, 1, or BN."
3155
msgstr ""
3156
3157
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
3158
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:552
3159
msgctxt "s2member-admin"
3160
- msgid "Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial Period) is not \"0\"."
3161
msgstr ""
3162
3163
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
3164
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:555
3165
msgctxt "s2member-admin"
3166
- msgid "Invalid form configuration. Invalid \"level, rr\" attributes. The \"level\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr\" is not \"BN\" (Buy Now)."
3167
msgstr ""
3168
3169
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
3170
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:558
3171
msgctxt "s2member-admin"
3172
- 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."
3173
msgstr ""
3174
3175
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
3176
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:561
3177
msgctxt "s2member-admin"
3178
- msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be numeric."
3179
msgstr ""
3180
3181
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
3182
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:564
3183
msgctxt "s2member-admin"
3184
- msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be >= 1."
3185
msgstr ""
3186
3187
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
3188
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:567
3189
msgctxt "s2member-admin"
3190
- msgid "Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
3191
msgstr ""
3192
3193
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:520
@@ -3211,7 +3182,9 @@ msgstr ""
3211
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:611
3212
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:761
3213
msgctxt "s2member-admin"
3214
- msgid "Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access."
3215
msgstr ""
3216
3217
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
@@ -3265,7 +3238,9 @@ msgstr ""
3265
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:726
3266
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:818
3267
msgctxt "s2member-front"
3268
- msgid "Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again."
3269
msgstr ""
3270
3271
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
@@ -3275,7 +3250,9 @@ msgstr ""
3275
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:729
3276
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:821
3277
msgctxt "s2member-front"
3278
- msgid "Missing Card Verification Code. It's on the back of your Card. 3-4 digits. Please try again."
3279
msgstr ""
3280
3281
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
@@ -3285,7 +3262,9 @@ msgstr ""
3285
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:732
3286
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:824
3287
msgctxt "s2member-front"
3288
- msgid "Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again."
3289
msgstr ""
3290
3291
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
@@ -3445,13 +3424,17 @@ msgstr ""
3445
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:675
3446
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:755
3447
msgctxt "s2member-front"
3448
- msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to modify your billing plan."
3449
msgstr ""
3450
3451
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:678
3452
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:758
3453
msgctxt "s2member-front"
3454
- msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> before making this purchase."
3455
msgstr ""
3456
3457
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:765
@@ -3463,13 +3446,17 @@ msgstr ""
3463
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:169
3464
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:286
3465
msgctxt "s2member-front"
3466
- msgid "<strong>Thank you.</strong> Your purchase has been approved.<br />&mdash; Please <a href=\"%s\" rel=\"nofollow\">click here</a> to proceed."
3467
msgstr ""
3468
3469
#: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:176
3470
#: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:293
3471
msgctxt "s2member-front"
3472
- msgid "<strong>Oops.</strong> Unable to generate Access Link. Please contact Support for assistance."
3473
msgstr ""
3474
3475
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:110
@@ -3483,13 +3470,17 @@ msgstr ""
3483
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:131
3484
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:131
3485
msgctxt "s2member-front"
3486
- 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."
3487
msgstr ""
3488
3489
#: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:131
3490
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:148
3491
msgctxt "s2member-front"
3492
- msgid "<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance."
3493
msgstr ""
3494
3495
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:666
@@ -3567,7 +3558,9 @@ msgstr ""
3567
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:600
3568
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:615
3569
msgctxt "s2member-front"
3570
- msgid "<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s, then %s</strong>)</div>"
3571
msgstr ""
3572
3573
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:923
@@ -3587,7 +3580,8 @@ msgstr ""
3587
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1028
3588
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657
3589
msgctxt "s2member-front"
3590
- msgid "<div>Sorry, your Coupon cannot be applied to this particular purchase.</div>"
3591
msgstr ""
3592
3593
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1032
@@ -3598,7 +3592,6 @@ msgstr ""
3598
3599
#. translators: `%1$s` is new price/description, after coupon applied. `%2$s`
3600
#. is original description.
3601
-
3602
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1038
3603
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:667
3604