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\.]+$/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\.]+$/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\.]+$/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\.]+$/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)$/", $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)$/", $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)$/", $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)$/", $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
  msgctxt "s2member-front"
@@ -3626,26 +3619,34 @@ msgctxt "s2member-front"
3626
  msgid ""
3627
  "ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
3628
  "\n"
3629
- "This is most likely related to an invalid ClickBank configuration. If you are the site owner, please check: s2Member -› ClickBank Options."
 
3630
  msgstr ""
3631
 
3632
  #: s2member-pro/includes/classes/gateways/clickbank/clickbank-utilities.inc.php:168
3633
  msgctxt "s2member-front"
3634
- msgid "<strong>Reminder:</strong> Purchases at this site will appear on your credit card or bank statement as: <code>ClickBank</code> or <code>CLKBANK*COM</code>."
 
 
 
3635
  msgstr ""
3636
 
3637
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:123
3638
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:247
3639
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:263
3640
  msgctxt "s2member-front"
3641
- msgid "<strong>Unable to cancel at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
 
 
3642
  msgstr ""
3643
 
3644
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:135
3645
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:128
3646
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:257
3647
  msgctxt "s2member-front"
3648
- msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to cancel your Subscription."
 
 
3649
  msgstr ""
3650
 
3651
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:344
@@ -3653,7 +3654,9 @@ msgstr ""
3653
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:486
3654
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:918
3655
  msgctxt "s2member-front"
3656
- msgid "<strong>Sorry.</strong> Your account is pending other changes. Please try again in 15 minutes."
 
 
3657
  msgstr ""
3658
 
3659
  #: s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:378
@@ -3689,17 +3692,20 @@ msgstr ""
3689
 
3690
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:208
3691
  msgctxt "s2member-admin"
3692
- msgid "PayPal configuration error. Your PayPal API Username is not yet configured."
 
3693
  msgstr ""
3694
 
3695
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:211
3696
  msgctxt "s2member-admin"
3697
- msgid "PayPal configuration error. Your PayPal API Password is not yet configured."
 
3698
  msgstr ""
3699
 
3700
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:214
3701
  msgctxt "s2member-admin"
3702
- msgid "PayPal configuration error. Your PayPal API Signature is not yet configured."
 
3703
  msgstr ""
3704
 
3705
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:283
@@ -3711,81 +3717,115 @@ msgstr ""
3711
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:79
3712
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:135
3713
  msgctxt "s2member-front"
3714
- msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to update your billing information."
 
 
3715
  msgstr ""
3716
 
3717
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:286
3718
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:305
3719
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:127
3720
  msgctxt "s2member-front"
3721
- msgid "<strong>Unable to update at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
 
 
3722
  msgstr ""
3723
 
3724
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:382
3725
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:450
3726
  msgctxt "s2member-admin"
3727
- msgid "Invalid form configuration. Missing \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
 
 
3728
  msgstr ""
3729
 
3730
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:385
3731
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:453
3732
  msgctxt "s2member-admin"
3733
- msgid "Invalid form configuration. Invalid \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
 
 
3734
  msgstr ""
3735
 
3736
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:388
3737
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:456
3738
  msgctxt "s2member-admin"
3739
- msgid "Invalid form configuration. Missing \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
 
 
3740
  msgstr ""
3741
 
3742
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:391
3743
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:459
3744
  msgctxt "s2member-admin"
3745
- msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
 
 
3746
  msgstr ""
3747
 
3748
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:394
3749
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:462
3750
  msgctxt "s2member-admin"
3751
- msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be 1 with \"dg\" (digital) items."
 
 
3752
  msgstr ""
3753
 
3754
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:397
3755
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:465
3756
  msgctxt "s2member-admin"
3757
- msgid "Invalid form configuration. Invalid \"lc\" attribute. Locale Code. When provided, must be a 2 character country code."
 
 
3758
  msgstr ""
3759
 
3760
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:409
3761
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:546
3762
  msgctxt "s2member-admin"
3763
- msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be <= 10000.00."
 
 
3764
  msgstr ""
3765
 
3766
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:486
3767
  msgctxt "s2member-admin"
3768
- msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be <= 10000.00."
 
 
3769
  msgstr ""
3770
 
3771
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:513
3772
  msgctxt "s2member-admin"
3773
- msgid "Invalid Payflow form configuration. Invalid \"rt, rp, rr\" attributes. Payflow supports a specific set of recurring intervals. Pro Forms can be configured to charge: weekly, bi-weekly, monthly, quarterly, semi-yearly or yearly. Any other combination results in this error. This is a Payflow limitation."
 
 
 
 
 
3774
  msgstr ""
3775
 
3776
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:516
3777
  msgctxt "s2member-admin"
3778
- msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 5, and \"rr\" is not \"BN\" (Buy Now)."
 
 
 
3779
  msgstr ""
3780
 
3781
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:570
3782
  msgctxt "s2member-admin"
3783
- msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be numeric."
 
 
 
3784
  msgstr ""
3785
 
3786
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:573
3787
  msgctxt "s2member-admin"
3788
- msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be >= 0."
 
 
 
3789
  msgstr ""
3790
 
3791
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:141
@@ -3848,117 +3888,6 @@ msgctxt "s2member-front"
3848
  msgid "My Profile Summary"
3849
  msgstr ""
3850
 
3851
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3852
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:73
3853
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:167
3854
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:253
3855
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:504
3856
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:790
3857
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3858
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:73
3859
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:167
3860
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:253
3861
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:544
3862
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:878
3863
- msgctxt "s2member-front"
3864
- msgid "Security Code missing. Please try again."
3865
- msgstr ""
3866
-
3867
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3868
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:142
3869
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:479
3870
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:751
3871
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3872
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:142
3873
- msgctxt "s2member-front"
3874
- msgid "Please choose a Billing Method."
3875
- msgstr ""
3876
-
3877
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3878
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:323
3879
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:575
3880
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3881
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:327
3882
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:619
3883
- msgctxt "s2member-front"
3884
- msgid "Calculating Sales Tax..."
3885
- msgstr ""
3886
-
3887
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3888
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:323
3889
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:575
3890
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3891
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:327
3892
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:619
3893
- msgctxt "s2member-front"
3894
- msgid "calculating sales tax..."
3895
- msgstr ""
3896
-
3897
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3898
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:334
3899
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:586
3900
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3901
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:338
3902
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:630
3903
- msgctxt "s2member-front"
3904
- msgid "<strong>Sales Tax%s:</strong> %s<br /><strong>— Total%s:</strong> %s"
3905
- msgstr ""
3906
-
3907
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3908
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:334
3909
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:586
3910
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3911
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:338
3912
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:630
3913
- msgctxt "s2member-front"
3914
- msgid "Today"
3915
- msgstr ""
3916
-
3917
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3918
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:648
3919
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3920
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:692
3921
- #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:62
3922
- #: s2member-pro/includes/templates/forms/authnet-registration-form.php:30
3923
- #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:62
3924
- #: s2member-pro/includes/templates/forms/paypal-registration-form.php:30
3925
- msgctxt "s2member-front"
3926
- msgid "Create Profile"
3927
- msgstr ""
3928
-
3929
- #: s2member-pro/includes/separates/gateways/authnet/authnet-min.js:1
3930
- #: s2member-pro/includes/separates/gateways/authnet/authnet.js:649
3931
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3932
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:693
3933
- msgctxt "s2member-front"
3934
- msgid "Your Profile"
3935
- msgstr ""
3936
-
3937
- #: s2member-pro/includes/separates/gateways/google/google-min.js:1
3938
- #: s2member-pro/includes/separates/gateways/google/google.js:49
3939
- msgctxt "s2member-front"
3940
- msgid "Thank you! Please check your email for further details."
3941
- msgstr ""
3942
-
3943
- #: s2member-pro/includes/separates/gateways/paypal/paypal-min.js:1
3944
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:269
3945
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:270
3946
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:561
3947
- #: s2member-pro/includes/separates/gateways/paypal/paypal.js:562
3948
- #: s2member-pro/includes/templates/forms/authnet-cancellation-form.php:36
3949
- #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:198
3950
- #: s2member-pro/includes/templates/forms/authnet-registration-form.php:81
3951
- #: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:179
3952
- #: s2member-pro/includes/templates/forms/authnet-update-form.php:117
3953
- #: s2member-pro/includes/templates/forms/paypal-cancellation-form.php:36
3954
- #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:198
3955
- #: s2member-pro/includes/templates/forms/paypal-registration-form.php:81
3956
- #: s2member-pro/includes/templates/forms/paypal-sp-checkout-form.php:179
3957
- #: s2member-pro/includes/templates/forms/paypal-update-form.php:117
3958
- msgctxt "s2member-front"
3959
- msgid "Submit Form"
3960
- msgstr ""
3961
-
3962
  #: s2member-pro/includes/syscon.inc.php:95
3963
  msgctxt "s2member-front"
3964
  msgid ""
@@ -3970,7 +3899,8 @@ msgid ""
3970
  "Charges today: $%%%%initial%%%%\n"
3971
  "Recurring charges: $%%%%recurring/regular_cycle%%%%\n"
3972
  "\n"
3973
- "Your Username/Password will arrive shortly, in a separate email. If you have any trouble, please feel free to contact us.\n"
 
3974
  "\n"
3975
  "Best Regards,\n"
3976
  "%s"
@@ -4002,6 +3932,20 @@ msgctxt "s2member-front"
4002
  msgid "Confirm Cancellation"
4003
  msgstr ""
4004
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4005
  #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:21
4006
  #: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:21
4007
  #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:21
@@ -4034,6 +3978,14 @@ msgctxt "s2member-front"
4034
  msgid "Apply Coupon"
4035
  msgstr ""
4036
 
 
 
 
 
 
 
 
 
4037
  #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:84
4038
  #: s2member-pro/includes/templates/forms/authnet-registration-form.php:52
4039
  #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:84
@@ -4589,4 +4541,4 @@ msgstr ""
4589
  #: s2member-pro/includes/templates/shortcodes/paypal-update-form-shortcode.php:6
4590
  msgctxt "s2member-front"
4591
  msgid "Update your billing information."
4592
- msgstr ""
1
+ # Copyright (C) 2014
2
  # This file is distributed under the same license as the package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: 140105\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
+ "POT-Creation-Date: 2014-01-08 05:26:12+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: 2014-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
79
  #: s2member/includes/classes/files-in.inc.php:108
80
  #: s2member/includes/classes/files-in.inc.php:267
81
  msgctxt "s2member-front"
82
+ msgid ""
83
+ "<strong>404: Sorry, file not found.</strong> Please contact Support for "
84
+ "assistance."
85
  msgstr ""
86
 
87
  #: s2member/includes/classes/files-in.inc.php:121
88
  msgctxt "s2member-front"
89
+ msgid ""
90
+ "<strong>503 (Invalid Key):</strong> Sorry, your access to this file has "
91
+ "expired. Please contact Support for assistance."
92
  msgstr ""
93
 
94
  #: s2member/includes/classes/files-in.inc.php:144
95
  msgctxt "s2member-front"
96
+ msgid ""
97
+ "<strong>503: Basic File Downloads are NOT enabled yet.</strong> Please "
98
+ "contact Support for assistance. If you are the site owner, please configure: "
99
+ "<code>s2Member -› Download Options -› Basic Download Restrictions</code>."
100
  msgstr ""
101
 
102
  #: s2member/includes/classes/files-in.inc.php:502
104
  msgid "<strong>503: Access denied.</strong> Invalid File Download specs."
105
  msgstr ""
106
 
107
+ #: s2member/includes/classes/files-in.inc.php:596
108
  msgctxt "s2member-front"
109
  msgid "Members Only"
110
  msgstr ""
111
 
112
+ #: s2member/includes/classes/files-in.inc.php:602
113
  msgctxt "s2member-front"
114
  msgid "<strong>401:</strong> Sorry, access denied."
115
  msgstr ""
117
  #. translators: In this translation, `%s` may be filled with an English
118
  #. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
119
  #. if you like.
120
+ #: s2member/includes/classes/files-in.inc.php:741
 
121
  msgctxt "s2member-admin"
122
  msgid "Unable to update existing Amazon S3 Cross-Domain Policy. %s"
123
  msgstr ""
124
 
125
+ #: s2member/includes/classes/files-in.inc.php:744
126
  msgctxt "s2member-admin"
127
+ msgid ""
128
+ "Unable to update existing Amazon S3 Cross-Domain Policy. Connection failed."
129
  msgstr ""
130
 
131
  #. translators: In this translation, `%s` may be filled with an English
132
  #. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
133
  #. if you like.
134
+ #: s2member/includes/classes/files-in.inc.php:748
 
135
  msgctxt "s2member-admin"
136
  msgid "Unable to update existing Amazon S3 Bucket Policy. %s"
137
  msgstr ""
138
 
139
+ #: s2member/includes/classes/files-in.inc.php:751
140
  msgctxt "s2member-admin"
141
  msgid "Unable to update existing Amazon S3 Bucket Policy. Connection failed."
142
  msgstr ""
144
  #. translators: In this translation, `%s` may be filled with an English
145
  #. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
146
  #. if you like.
147
+ #: s2member/includes/classes/files-in.inc.php:755
 
148
  msgctxt "s2member-admin"
149
  msgid "Unable to update existing Amazon S3 Bucket ACLs. %s"
150
  msgstr ""
151
 
152
+ #: s2member/includes/classes/files-in.inc.php:758
153
  msgctxt "s2member-admin"
154
  msgid "Unable to update existing Amazon S3 Bucket ACLs. Connection failed."
155
  msgstr ""
156
 
157
+ #: s2member/includes/classes/files-in.inc.php:761
158
  msgctxt "s2member-admin"
159
+ msgid ""
160
+ "Unable to acquire/read existing Amazon S3 Bucket ACLs. Unexpected response."
161
  msgstr ""
162
 
163
  #. translators: In this translation, `%s` may be filled with an English
164
  #. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
165
  #. if you like.
166
+ #: s2member/includes/classes/files-in.inc.php:765
 
167
  msgctxt "s2member-admin"
168
  msgid "Unable to acquire existing Amazon S3 Bucket ACLs. %s"
169
  msgstr ""
170
 
171
+ #: s2member/includes/classes/files-in.inc.php:768
172
  msgctxt "s2member-admin"
173
  msgid "Unable to acquire existing Amazon S3 Bucket ACLs. Connection failed."
174
  msgstr ""
175
 
176
+ #: s2member/includes/classes/files-in.inc.php:771
177
  msgctxt "s2member-admin"
178
+ msgid ""
179
+ "Unable to auto-configure existing Amazon S3 Bucket ACLs. Incomplete Amazon "
180
+ "S3 configuration options. Missing one of: Amazon S3 Bucket, Access Key, or "
181
+ "Secret Key."
182
  msgstr ""
183
 
184
+ #: s2member/includes/classes/files-in.inc.php:871
185
  msgctxt "s2member-admin"
186
+ msgid ""
187
+ "Unable to delete existing Amazon CloudFront Downloads Distro. Still in a "
188
+ "`pending` state. Please wait 15 minutes, then try again. There is a certain "
189
+ "process that s2Member must strictly adhere to when re-configuring your "
190
+ "Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
191
+ "again, and re-run s2Member's auto-configuration routine many times, because "
192
+ "s2Member will likely run into several `pending` challenges, as it works to "
193
+ "completely re-configure your Amazon CloudFront Distros for you. Thanks for "
194
+ "your patience. Please wait 15 minutes, then try again."
195
  msgstr ""
196
 
197
  #. translators: In this translation, `%s` may be filled with an English
198
  #. message, which comes from the Amazon CloudFront API call. Feel free to
199
  #. exclude `%s` if you like.
200
+ #: s2member/includes/classes/files-in.inc.php:878
 
201
  msgctxt "s2member-admin"
202
  msgid "Unable to delete existing Amazon CloudFront Downloads Distro. %s"
203
  msgstr ""
204
 
205
+ #: s2member/includes/classes/files-in.inc.php:890
206
  msgctxt "s2member-admin"
207
+ msgid ""
208
+ "Unable to delete existing Amazon CloudFront Streaming Distro. Still in a "
209
+ "`pending` state. Please wait 15 minutes, then try again. There is a certain "
210
+ "process that s2Member must strictly adhere to when re-configuring your "
211
+ "Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
212
+ "again, and re-run s2Member's auto-configuration routine many times, because "
213
+ "s2Member will likely run into several `pending` challenges, as it works to "
214
+ "completely re-configure your Amazon CloudFront Distros for you. Thanks for "
215
+ "your patience. Please wait 15 minutes, then try again."
216
  msgstr ""
217
 
218
  #. translators: In this translation, `%s` may be filled with an English
219
  #. message, which comes from the Amazon CloudFront API call. Feel free to
220
  #. exclude `%s` if you like.
221
+ #: s2member/includes/classes/files-in.inc.php:897
 
222
  msgctxt "s2member-admin"
223
  msgid "Unable to delete existing Amazon CloudFront Streaming Distro. %s"
224
  msgstr ""
226
  #. translators: In this translation, `%s` may be filled with an English
227
  #. message, which comes from the Amazon CloudFront API call. Feel free to
228
  #. exclude `%s` if you like.
229
+ #: s2member/includes/classes/files-in.inc.php:913
230
+ #: s2member/includes/classes/files-in.inc.php:1097
 
231
  msgctxt "s2member-admin"
232
  msgid "Unable to delete existing Amazon CloudFront Origin Access Identity. %s"
233
  msgstr ""
235
  #. translators: In this translation, `%s` may be filled with an English
236
  #. message, which comes from the Amazon S3 API call. Feel free to exclude `%s`
237
  #. if you like.
238
+ #: s2member/includes/classes/files-in.inc.php:954
 
239
  msgctxt "s2member-admin"
240
  msgid "Unable to update existing Amazon S3 ACLs. %s"
241
  msgstr ""
242
 
243
+ #: s2member/includes/classes/files-in.inc.php:957
244
  msgctxt "s2member-admin"
245
  msgid "Unable to update existing Amazon S3 ACLs. Connection failed."
246
  msgstr ""
248
  #. translators: In this translation, `%s` may be filled with an English
249
  #. message, which comes from the Amazon CloudFront API call. Feel free to
250
  #. exclude `%s` if you like.
251
+ #: s2member/includes/classes/files-in.inc.php:961
252
+ #: s2member/includes/classes/files-in.inc.php:1384
 
253
  msgctxt "s2member-admin"
254
  msgid "Unable to create Amazon CloudFront Streaming Distro. %s"
255
  msgstr ""
256
 
257
+ #: s2member/includes/classes/files-in.inc.php:964
258
+ #: s2member/includes/classes/files-in.inc.php:1387
259
  msgctxt "s2member-admin"
260
  msgid "Unable to create Amazon CloudFront Streaming Distro. Connection failed."
261
  msgstr ""
263
  #. translators: In this translation, `%s` may be filled with an English
264
  #. message, which comes from the Amazon CloudFront API call. Feel free to
265
  #. exclude `%s` if you like.
266
+ #: s2member/includes/classes/files-in.inc.php:968
267
+ #: s2member/includes/classes/files-in.inc.php:1361
 
268
  msgctxt "s2member-admin"
269
  msgid "Unable to create Amazon CloudFront Downloads Distro. %s"
270
  msgstr ""
271
 
272
+ #: s2member/includes/classes/files-in.inc.php:971
273
+ #: s2member/includes/classes/files-in.inc.php:1364
274
  msgctxt "s2member-admin"
275
  msgid "Unable to create Amazon CloudFront Downloads Distro. Connection failed."
276
  msgstr ""
278
  #. translators: In this translation, `%s` may be filled with an English
279
  #. message, which comes from the Amazon CloudFront API call. Feel free to
280
  #. exclude `%s` if you like.
281
+ #: s2member/includes/classes/files-in.inc.php:975
282
+ #: s2member/includes/classes/files-in.inc.php:1142
 
283
  msgctxt "s2member-admin"
284
  msgid "Unable to create Amazon CloudFront Origin Access Identity. %s"
285
  msgstr ""
286
 
287
+ #: s2member/includes/classes/files-in.inc.php:978
288
+ #: s2member/includes/classes/files-in.inc.php:1145
289
  msgctxt "s2member-admin"
290
+ msgid ""
291
+ "Unable to create Amazon CloudFront Origin Access Identity. Connection failed."
292
  msgstr ""
293
 
294
+ #: s2member/includes/classes/files-in.inc.php:981
295
  msgctxt "s2member-admin"
296
  msgid "Unable to clear existing Amazon CloudFront Origin Access Identity."
297
  msgstr ""
299
  #. translators: In this translation, `%s` may be filled with an English
300
  #. message, which comes from the Amazon CloudFront API call. Feel free to
301
  #. exclude `%s` if you like.
302
+ #: s2member/includes/classes/files-in.inc.php:985
303
+ #: s2member/includes/classes/files-in.inc.php:1054
 
304
  msgctxt "s2member-admin"
305
  msgid "Unable to acquire existing Amazon CloudFront Origin Access Identity. %s"
306
  msgstr ""
307
 
308
+ #: s2member/includes/classes/files-in.inc.php:988
309
+ #: s2member/includes/classes/files-in.inc.php:1057
310
  msgctxt "s2member-admin"
311
+ msgid ""
312
+ "Unable to acquire existing Amazon CloudFront Origin Access Identity. "
313
+ "Connection failed."
314
  msgstr ""
315
 
316
+ #: s2member/includes/classes/files-in.inc.php:991
317
  msgctxt "s2member-admin"
318
  msgid "Unable to clear existing Amazon CloudFront Streaming Distro."
319
  msgstr ""
321
  #. translators: In this translation, `%s` may be filled with an English
322
  #. message, which comes from the Amazon CloudFront API call. Feel free to
323
  #. exclude `%s` if you like.
324
+ #: s2member/includes/classes/files-in.inc.php:995
 
325
  msgctxt "s2member-admin"
326
  msgid "Unable to acquire existing Amazon CloudFront Streaming Distro. %s"
327
  msgstr ""
328
 
329
+ #: s2member/includes/classes/files-in.inc.php:998
330
  msgctxt "s2member-admin"
331
+ msgid ""
332
+ "Unable to acquire existing Amazon CloudFront Streaming Distro. Connection "
333
+ "failed."
334
  msgstr ""
335
 
336
+ #: s2member/includes/classes/files-in.inc.php:1001
337
  msgctxt "s2member-admin"
338
  msgid "Unable to clear existing Amazon CloudFront Downloads Distro."
339
  msgstr ""
341
  #. translators: In this translation, `%s` may be filled with an English
342
  #. message, which comes from the Amazon CloudFront API call. Feel free to
343
  #. exclude `%s` if you like.
344
+ #: s2member/includes/classes/files-in.inc.php:1005
 
345
  msgctxt "s2member-admin"
346
  msgid "Unable to acquire existing Amazon CloudFront Downloads Distro. %s"
347
  msgstr ""
348
 
349
+ #: s2member/includes/classes/files-in.inc.php:1008
350
  msgctxt "s2member-admin"
351
+ msgid ""
352
+ "Unable to acquire existing Amazon CloudFront Downloads Distro. Connection "
353
+ "failed."
354
  msgstr ""
355
 
356
+ #: s2member/includes/classes/files-in.inc.php:1011
357
  msgctxt "s2member-admin"
358
+ msgid ""
359
+ "Unable to auto-configure Amazon CloudFront Distros. Incomplete Amazon "
360
+ "CloudFront configuration options. Missing of one: Amazon CloudFront Private "
361
+ "Key-Pair-ID, or Private Key file contents."
362
  msgstr ""
363
 
364
+ #: s2member/includes/classes/files-in.inc.php:1014
365
  msgctxt "s2member-admin"
366
+ msgid ""
367
+ "Unable to auto-configure Amazon S3/CloudFront Distros. Incomplete Amazon S3 "
368
+ "configuration options. Missing one of: Amazon S3 Bucket, Access Key, or "
369
+ "Secret Key. You must provide s2Member with an Amazon S3 configuration before "
370
+ "enabling CloudFront."
371
  msgstr ""
372
 
373
  #. translators: In this translation, `%s` may be filled with an English
374
  #. message, which comes from the Amazon CloudFront API call. Feel free to
375
  #. exclude `%s` if you like.
376
+ #: s2member/includes/classes/files-in.inc.php:1050
 
377
  msgctxt "s2member-admin"
378
  msgid "Existing Amazon CloudFront Origin Access Identity NOT found. %s"
379
  msgstr ""
380
 
381
+ #: s2member/includes/classes/files-in.inc.php:1060
382
  msgctxt "s2member-admin"
383
+ msgid ""
384
+ "Unable to acquire existing Amazon CloudFront Origin Access Identity. Invalid "
385
+ "Access ID."
386
  msgstr ""
387
 
388
+ #: s2member/includes/classes/files-in.inc.php:1100
389
  msgctxt "s2member-admin"
390
+ msgid ""
391
+ "Unable to delete existing Amazon CloudFront Origin Access Identity. "
392
+ "Connection failed."
393
  msgstr ""
394
 
395
+ #: s2member/includes/classes/files-in.inc.php:1103
396
  msgctxt "s2member-admin"
397
+ msgid ""
398
+ "Unable to delete existing Amazon CloudFront Origin Access Identity. Invalid "
399
+ "Access ID, ETag, or XML config."
400
  msgstr ""
401
 
402
+ #: s2member/includes/classes/files-in.inc.php:1129
403
+ #: s2member/includes/classes/files-in.inc.php:1348
404
+ #: s2member/includes/classes/files-in.inc.php:1371
405
  msgctxt "s2member-admin"
406
  msgid "Created by s2Member, for S3 Bucket: %s."
407
  msgstr ""
408
 
409
+ #: s2member/includes/classes/files-in.inc.php:1138
410
  msgctxt "s2member-admin"
411
+ msgid ""
412
+ "Unable to create/read Amazon CloudFront Origin Access Identity. Unexpected "
413
+ "response."
414
  msgstr ""
415
 
416
  #. translators: In this translation, `%s` may be filled with an English
417
  #. message, which comes from the Amazon CloudFront API call. Feel free to
418
  #. exclude `%s` if you like.
419
+ #: s2member/includes/classes/files-in.inc.php:1182
 
420
  msgctxt "s2member-admin"
421
  msgid "Existing Amazon CloudFront Distro NOT found. %s"
422
  msgstr ""
424
  #. translators: In this translation, `%s` may be filled with an English
425
  #. message, which comes from the Amazon CloudFront API call. Feel free to
426
  #. exclude `%s` if you like.
427
+ #: s2member/includes/classes/files-in.inc.php:1186
 
428
  msgctxt "s2member-admin"
429
  msgid "Unable to acquire existing Amazon CloudFront Distro. %s"
430
  msgstr ""
431
 
432
+ #: s2member/includes/classes/files-in.inc.php:1189
433
  msgctxt "s2member-admin"
434
  msgid "Unable to acquire existing Amazon CloudFront Distro. Connection failed."
435
  msgstr ""
436
 
437
+ #: s2member/includes/classes/files-in.inc.php:1192
438
  msgctxt "s2member-admin"
439
+ msgid ""
440
+ "Unable to acquire existing Amazon CloudFront Distro. Invalid Distro ID and/"
441
+ "or Distro type."
442
  msgstr ""
443
 
444
  #. translators: In this translation, `%s` may be filled with an English
445
  #. message, which comes from the Amazon CloudFront API call. Feel free to
446
  #. exclude `%s` if you like.
447
+ #: s2member/includes/classes/files-in.inc.php:1234
448
+ #: s2member/includes/classes/files-in.inc.php:1307
 
449
  msgctxt "s2member-admin"
450
  msgid "Unable to disable existing Amazon CloudFront Distro. %s"
451
  msgstr ""
452
 
453
+ #: s2member/includes/classes/files-in.inc.php:1237
454
+ #: s2member/includes/classes/files-in.inc.php:1310
455
  msgctxt "s2member-admin"
456
  msgid "Unable to disable existing Amazon CloudFront Distro. Connection failed."
457
  msgstr ""
458
 
459
+ #: s2member/includes/classes/files-in.inc.php:1240
460
  msgctxt "s2member-admin"
461
+ msgid ""
462
+ "Existing Amazon CloudFront Distro cannot be disabled at this time. Still in "
463
+ "a `pending` state. Please wait 15 minutes, then try again. There is a "
464
+ "certain process that s2Member must strictly adhere to when re-configuring "
465
+ "your Amazon CloudFront Distros. You may have to tick the auto-configure "
466
+ "checkbox again, and re-run s2Member's auto-configuration routine many times, "
467
+ "because s2Member will likely run into several `pending` challenges, as it "
468
+ "works to completely re-configure your Amazon CloudFront Distros for you. "
469
+ "Thanks for your patience. Please wait 15 minutes, then try again."
470
  msgstr ""
471
 
472
+ #: s2member/includes/classes/files-in.inc.php:1246
473
  msgctxt "s2member-admin"
474
+ msgid ""
475
+ "Unable to disable existing Amazon CloudFront Distro. Invalid Distro ID, "
476
+ "ETag, or XML config."
477
  msgstr ""
478
 
479
  #. translators: In this translation, `%s` may be filled with an English
480
  #. message, which comes from the Amazon CloudFront API call. Feel free to
481
  #. exclude `%s` if you like.
482
+ #: s2member/includes/classes/files-in.inc.php:1289
 
483
  msgctxt "s2member-admin"
484
  msgid "Unable to delete existing Amazon CloudFront Distro. %s"
485
  msgstr ""
486
 
487
+ #: s2member/includes/classes/files-in.inc.php:1292
488
  msgctxt "s2member-admin"
489
  msgid "Unable to delete existing Amazon CloudFront Distro. Connection failed."
490
  msgstr ""
492
  #. translators: In this translation, `%s` may be filled with an English
493
  #. message, which comes from the Amazon CloudFront API call. Feel free to
494
  #. exclude `%s` if you like.
495
+ #: s2member/includes/classes/files-in.inc.php:1296
 
496
  msgctxt "s2member-admin"
497
+ msgid ""
498
+ "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a "
499
+ "`pending` state after having been disabled by s2Member. Please wait 15 "
500
+ "minutes, then try again. There is a certain process that s2Member must "
501
+ "strictly adhere to when re-configuring your Amazon CloudFront Distros. You "
502
+ "may have to tick the auto-configure checkbox again, and re-run s2Member's "
503
+ "auto-configuration routine many times, because s2Member will likely run into "
504
+ "several `pending` challenges, as it works to completely re-configure your "
505
+ "Amazon CloudFront Distros for you. Thanks for your patience. Please wait 15 "
506
+ "minutes, then try again."
507
  msgstr ""
508
 
509
  #. translators: In this translation, `%s` may be filled with an English
510
  #. message, which comes from the Amazon CloudFront API call. Feel free to
511
  #. exclude `%s` if you like.
512
+ #: s2member/includes/classes/files-in.inc.php:1300
 
513
  msgctxt "s2member-admin"
514
  msgid "Unable to check status of existing Amazon CloudFront Distro. %s"
515
  msgstr ""
516
 
517
+ #: s2member/includes/classes/files-in.inc.php:1303
518
  msgctxt "s2member-admin"
519
+ msgid ""
520
+ "Unable to check status of existing Amazon CloudFront Distro. Connection "
521
+ "failed."
522
  msgstr ""
523
 
524
+ #: s2member/includes/classes/files-in.inc.php:1313
525
  msgctxt "s2member-admin"
526
+ msgid ""
527
+ "Existing Amazon CloudFront Distro cannot be deleted at this time. Still in a "
528
+ "`pending` state. Please wait 15 minutes, then try again. There is a certain "
529
+ "process that s2Member must strictly adhere to when re-configuring your "
530
+ "Amazon CloudFront Distros. You may have to tick the auto-configure checkbox "
531
+ "again, and re-run s2Member's auto-configuration routine many times, because "
532
+ "s2Member will likely run into several `pending` challenges, as it works to "
533
+ "completely re-configure your Amazon CloudFront Distros for you. Thanks for "
534
+ "your patience. Please wait 15 minutes, then try again."
535
  msgstr ""
536
 
537
+ #: s2member/includes/classes/files-in.inc.php:1316
538
  msgctxt "s2member-admin"
539
+ msgid ""
540
+ "Unable to delete existing Amazon CloudFront Distro. Invalid Distro ID or "
541
+ "ETag."
542
  msgstr ""
543
 
544
+ #: s2member/includes/classes/files-in.inc.php:1357
545
  msgctxt "s2member-admin"
546
+ msgid ""
547
+ "Unable to create/read Amazon CloudFront Downloads Distro. Unexpected "
548
+ "response."
549
  msgstr ""
550
 
551
+ #: s2member/includes/classes/files-in.inc.php:1380
552
  msgctxt "s2member-admin"
553
+ msgid ""
554
+ "Unable to create/read Amazon CloudFront Streaming Distro. Unexpected "
555
+ "response."
556
  msgstr ""
557
 
558
+ #: s2member/includes/classes/files-in.inc.php:1391
559
  msgctxt "s2member-admin"
560
  msgid "Unable to create Amazon CloudFront Distro. Invalid Distro type."
561
  msgstr ""
567
 
568
  #: s2member/includes/classes/login-checks.inc.php:76
569
  msgctxt "s2member-front"
570
+ msgid ""
571
+ "<strong>ERROR</strong>: Max simultaneous logins for username: %1$s. Please "
572
+ "wait %2$s and try again."
573
  msgstr ""
574
 
575
  #: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
576
  #: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
577
  msgctxt "s2member-front"
578
+ msgid ""
579
+ "<strong>Thank you! (you MUST check your email before proceeding).</"
580
+ "strong><br /><br />* Note: It can take <em>(up to 15 minutes)</em> for Email "
581
+ "Confirmation with important details. If you don't receive email confirmation "
582
+ "in the next 15 minutes, please contact Support."
583
  msgstr ""
584
 
585
  #: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:66
586
  #: s2member/includes/classes/paypal-return-in-proxy-ty-email.inc.php:64
587
  msgctxt "s2member-front"
588
+ msgid ""
589
+ "<strong>** Sandbox Mode **</strong> You may NOT receive this Email in "
590
+ "Sandbox Mode. Sandbox addresses are usually bogus (for testing)."
591
  msgstr ""
592
 
593
  #: s2member/includes/classes/paypal-return-in-no-tx-data.inc.php:67
613
 
614
  #: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:64
615
  msgctxt "s2member-front"
616
+ msgid ""
617
+ "<strong>Thank you! (this is a preview, no action necessary).</strong><br /"
618
+ "><br />* Note: each of your Customers are returned back to your site "
619
+ "immediately after they complete checkout. This Return Page displays a "
620
+ "message and instructions for the Customer. s2Member may change the message "
621
+ "and instructions dynamically, based on what the Customer is actually doing "
622
+ "<em>(i.e. based on the type of transaction that is taking place)</em>.<br /"
623
+ "><br /><em>* With <a href=\"%s\" target=\"_blank\">s2Member Pro</a> "
624
+ "installed, it is possible to customize this Return Page in various ways.</em>"
625
  msgstr ""
626
 
627
  #: s2member/includes/classes/paypal-return-in-proxy-x-preview.inc.php:65
646
  #: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:198
647
  #: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:245
648
  msgctxt "s2member-front"
649
+ msgid ""
650
+ "<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact "
651
+ "Support for assistance.<br /><br />The existing User ID is associated with "
652
+ "an Administrator. Stopping here. Otherwise, an Administrator could lose "
653
+ "access. Please make sure that you are NOT logged in as an Administrator "
654
+ "while testing."
655
  msgstr ""
656
 
657
  #: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:209
658
  #: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:256
659
  msgctxt "s2member-front"
660
+ msgid ""
661
+ "<strong>ERROR:</strong> Unable to modify Subscription.<br />Please contact "
662
+ "Support for assistance.<br /><br />Could not get the existing User ID from "
663
+ "the DB."
664
  msgstr ""
665
 
666
  #: s2member/includes/classes/paypal-return-in-subscr-modify-w-level.inc.php:220
668
  #: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:188
669
  #: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:130
670
  msgctxt "s2member-front"
671
+ msgid ""
672
+ "<strong>Page Expired:</strong> Duplicate Return-Data.<br />Please contact "
673
+ "Support if you need any assistance."
674
  msgstr ""
675
 
676
  #: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:327
677
  #: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:350
678
  msgctxt "s2member-front"
679
+ msgid ""
680
+ "<strong>Thank you! Your account has been approved.<br />The next step is to "
681
+ "Register a Username for immediate access.</strong>"
682
  msgstr ""
683
 
684
  #: s2member/includes/classes/paypal-return-in-subscr-or-wa-w-level.inc.php:328
694
 
695
  #: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:155
696
  msgctxt "s2member-front"
697
+ msgid ""
698
+ "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
699
+ "Support for assistance.<br /><br />The existing User ID is associated with "
700
+ "an Administrator. Stopping here. Otherwise, an Administrator could lose "
701
+ "access. Please make sure that you are NOT logged in as an Administrator "
702
+ "while testing."
703
  msgstr ""
704
 
705
  #: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:166
706
  msgctxt "s2member-front"
707
+ msgid ""
708
+ "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
709
+ "Support for assistance.<br /><br />Could not get the existing User ID from "
710
+ "the DB."
711
  msgstr ""
712
 
713
  #: s2member/includes/classes/paypal-return-in-wa-ccaps-wo-level.inc.php:177
714
  msgctxt "s2member-front"
715
+ msgid ""
716
+ "<strong>ERROR:</strong> Unable to add new Capabilities.<br />Please contact "
717
+ "Support for assistance.<br /><br />Missing User/Member details."
718
  msgstr ""
719
 
720
  #: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:108
724
 
725
  #: s2member/includes/classes/paypal-return-in-web-accept-sp.inc.php:119
726
  msgctxt "s2member-front"
727
+ msgid ""
728
+ "<strong>ERROR:</strong> Unable to generate Access Link.<br />Please contact "
729
+ "Support for assistance."
730
  msgstr ""
731
 
732
  #: s2member/includes/classes/paypal-return-in.inc.php:90
733
  msgctxt "s2member-front"
734
+ msgid ""
735
+ "<strong>ERROR:</strong> Unexpected <code>txn_type/status</code>.<br />The "
736
+ "<code>txn_type/status</code> did not meet requirements.<br />Please contact "
737
+ "Support for assistance."
738
  msgstr ""
739
 
740
  #: s2member/includes/classes/paypal-return-in.inc.php:107
741
  msgctxt "s2member-front"
742
+ msgid ""
743
+ "<strong>ERROR:</strong> Unable to verify <code>$_SERVER[\"HTTP_HOST\"]</"
744
+ "code>.<br />Please contact Support for assistance.<br /><br />If you are the "
745
+ "site owner, please check the <code>custom</code> value in your Button Code. "
746
+ "It MUST start with your domain name."
747
  msgstr ""
748
 
749
  #: s2member/includes/classes/paypal-return-in.inc.php:133
750
  msgctxt "s2member-front"
751
+ msgid ""
752
+ "<strong>ERROR:</strong> Unable to verify <code>$_POST</code> vars.<br /"
753
+ ">Please contact Support for assistance.<br /><br />This is most likely "
754
+ "related to an invalid configuration of s2Member, or a problem with server "
755
+ "compatibility. If you are the site owner, and you're absolutely SURE that "
756
+ "your configuration is valid, you may want to run some tests on your server, "
757
+ "just to be sure <code>$_POST</code> variables are populated, and that your "
758
+ "server is able to connect/communicate with your Payment Gateway over an "
759
+ "HTTPS connection.<br /><br />s2Member uses the <code>WP_Http</code> class "
760
+ "for remote connections; which will try to use <code>cURL</code> first, and "
761
+ "then fall back on the <code>FOPEN</code> method when <code>cURL</code> is "
762
+ "not available. On a Windows server, you may have to disable your <code>cURL</"
763
+ "code> extension; and instead, set <code>allow_url_fopen = yes</code> in your "
764
+ "php.ini file. The <code>cURL</code> extension (usually) does NOT support SSL "
765
+ "connections on a Windows server.<br /><br />Please see <a href=\"http://www."
766
+ "s2member.com/forums/topic/ideal-server-configuration-for-s2member/\" target="
767
+ "\"_blank\">this thread</a> for details regarding the ideal server "
768
+ "configuration for s2Member."
769
  msgstr ""
770
 
771
  #. translators: Exclude `%2$s` and `%3$s`. These are English details returned
772
  #. by PayPal. Replace `%2$s` and `%3$s` with: `Unable to process, please try
773
  #. again`, or something to that affect. Or, if you prefer, you could Filter
774
  #. ``$response["__error"]`` with `ws_plugin__s2member_paypal_api_response`.
 
775
  #: s2member/includes/classes/paypal-utilities.inc.php:185
776
  msgctxt "s2member-front"
777
  msgid "Error #%1$s. %2$s. %3$s."
789
  #: s2member/includes/classes/paypal-utilities.inc.php:232
790
  #: s2member/includes/classes/paypal-utilities.inc.php:238
791
  msgctxt "s2member-front"
792
+ msgid ""
793
+ "Error #%s. Transaction declined. Please use an alternate funding source."
794
  msgstr ""
795
 
796
  #: s2member/includes/classes/paypal-utilities.inc.php:235
812
  #. again`, or something to that affect. Or, if you prefer, you could Filter
813
  #. ``$response["__error"]`` with
814
  #. `ws_plugin__s2member_pro_authnet_arb_response`.
 
815
  #: s2member/includes/classes/paypal-utilities.inc.php:314
816
  #: s2member/includes/classes/paypal-utilities.inc.php:322
817
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
822
 
823
  #: s2member/includes/classes/paypal-utilities.inc.php:369
824
  msgctxt "s2member-front"
825
+ msgid ""
826
+ " Please contact PayPal Merchant Technical Support (www.paypal.com/mts) and "
827
+ "request `Recurring Billing` service, and also ask to have `Reference "
828
+ "Transactions` enabled for Recurring Billing via Express Checkout."
829
  msgstr ""
830
 
831
  #: s2member/includes/classes/profile-in.inc.php:78
843
 
844
  #: s2member/includes/classes/profile-in.inc.php:98
845
  #: s2member/includes/classes/sc-profile-in.inc.php:114
 
 
846
  #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:78
847
  #: s2member-pro/includes/templates/forms/authnet-registration-form.php:46
848
  #: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:78
894
  #: s2member/includes/classes/register-in.inc.php:48
895
  #: s2member/includes/classes/sp-access.inc.php:132
896
  msgctxt "s2member-front"
897
+ msgid ""
898
+ "<strong>Your Link Expired:</strong><br />Please contact Support if you need "
899
+ "assistance."
900
  msgstr ""
901
 
902
  #: s2member/includes/classes/registrations.inc.php:450
903
  msgctxt "s2member-front"
904
+ msgid ""
905
+ "s2Member security violation. You attempted to POST administrative variables "
906
+ "that will NOT be trusted in a NON-administrative zone!"
907
  msgstr ""
908
 
909
  #: s2member/includes/classes/return-templates.inc.php:50
923
 
924
  #: s2member/includes/classes/return-templates.inc.php:77
925
  msgctxt "s2member-front"
926
+ msgid ""
927
+ "If you need assistance, please <a href=\"%s\" target=\"_blank\">contact "
928
+ "support</a>."
929
  msgstr ""
930
 
931
  #: s2member/includes/classes/sc-paypal-button-e.inc.php:77
932
  #: s2member/includes/classes/sc-paypal-button-in.inc.php:73
933
+ #: s2member/includes/classes/sc-paypal-button-in.inc.php:97
934
+ #: s2member/includes/classes/sc-paypal-button-in.inc.php:152
935
+ #: s2member/includes/classes/sc-paypal-button-in.inc.php:208
936
  #: s2member/includes/templates/buttons/paypal-cancellation-button.php:7
937
  #: s2member/includes/templates/buttons/paypal-ccaps-checkout-button.php:34
938
  #: s2member/includes/templates/buttons/paypal-checkout-button.php:46
939
  #: s2member/includes/templates/buttons/paypal-sp-checkout-button.php:34
 
 
 
940
  msgctxt "s2member-front paypal-button-lang-code"
941
  msgid "en_US"
942
  msgstr ""
982
 
983
  #: s2member/includes/classes/translations.inc.php:123
984
  msgctxt "s2member-front"
985
+ msgid ""
986
+ "Your account is now active. <a href=\"%1$s\">Visit site</a> or <a href=\"%2$s"
987
+ "\">Log in</a>."
988
  msgstr ""
989
 
990
  #: s2member/includes/classes/translations.inc.php:144
991
  #: s2member/includes/classes/translations.inc.php:166
992
  msgctxt "s2member-front"
993
+ msgid ""
994
+ "By filling out the form below, you can <strong>add a site to your account</"
995
+ "strong>."
996
  msgstr ""
997
 
998
  #: s2member/includes/classes/translations.inc.php:144
1208
 
1209
  #. translators: Each cycle ( i.e. `each day/week/month` or `every 2
1210
  #. days/weeks/months`, etc. ). Cycles are translated elsewhere.
 
1211
  #: s2member/includes/classes/utils-time.inc.php:285
1212
  #: s2member/includes/classes/utils-time.inc.php:326
1213
  msgctxt "s2member-front"
1223
 
1224
  #. translators: Membership cycle ( i.e. `1 day/week/month` or `2
1225
  #. days/weeks/months`, etc. ). Most of this is translated elsewhere.
 
1226
  #: s2member/includes/classes/utils-time.inc.php:292
1227
  msgctxt "s2member-front"
1228
  msgid "%1$s %2$s"
1232
 
1233
  #. translators: Cycle ( i.e. `for 1 day/week/month` or `for 2
1234
  #. days/weeks/months`, etc. ). Most of this is translated elsewhere.
 
1235
  #: s2member/includes/classes/utils-time.inc.php:333
1236
  msgctxt "s2member-front"
1237
  msgid "for %1$s %2$s"
1239
  msgstr[0] ""
1240
  msgstr[1] ""
1241
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1242
  #: s2member/includes/syscon.inc.php:84
1243
  msgctxt "s2member-front recaptcha-lang-code"
1244
  msgid "en"
1282
  "IP Address: %%%%user_ip%%%%"
1283
  msgstr ""
1284
 
1285
+ #: s2member/includes/syscon.inc.php:233
1286
+ #: s2member-pro/includes/syscon.inc.php:94
1287
  msgctxt "s2member-front"
1288
  msgid "Congratulations! (your membership has been approved)"
1289
  msgstr ""
1290
 
1291
+ #: s2member/includes/syscon.inc.php:234
1292
  msgctxt "s2member-front"
1293
  msgid ""
1294
  "Thanks %%%%first_name%%%%! Your membership has been approved.\n"
1304
  "%s"
1305
  msgstr ""
1306
 
1307
+ #: s2member/includes/syscon.inc.php:237 s2member/includes/syscon.inc.php:241
1308
  msgctxt "s2member-front"
1309
  msgid "Thank you! Your account has been updated."
1310
  msgstr ""
1311
 
1312
+ #: s2member/includes/syscon.inc.php:238 s2member/includes/syscon.inc.php:242
1313
  msgctxt "s2member-front"
1314
  msgid ""
1315
+ "Thanks %%%%first_name%%%%! Your account now has access to: %%%%item_name%%%"
1316
+ "%.\n"
1317
  "\n"
1318
  "If you have any trouble, please feel free to contact us.\n"
1319
  "\n"
1321
  "%s"
1322
  msgstr ""
1323
 
1324
+ #: s2member/includes/syscon.inc.php:245
1325
+ #: s2member-pro/includes/syscon.inc.php:98
1326
  msgctxt "s2member-front"
1327
  msgid "Thank You! (instructions for access)"
1328
  msgstr ""
1329
 
1330
+ #: s2member/includes/syscon.inc.php:246
1331
  msgctxt "s2member-front"
1332
  msgid ""
1333
  "Thanks %%%%first_name%%%%!\n"
1344
  "%s"
1345
  msgstr ""
1346
 
1347
+ #: s2member/includes/syscon.inc.php:274
1348
  msgctxt "s2member-front"
1349
  msgid "Free Subscriber"
1350
  msgstr ""
1351
 
1352
+ #: s2member/includes/syscon.inc.php:274
1353
  msgctxt "s2member-front"
1354
  msgid "Bronze Member"
1355
  msgstr ""
1356
 
1357
+ #: s2member/includes/syscon.inc.php:274
1358
  msgctxt "s2member-front"
1359
  msgid "Silver Member"
1360
  msgstr ""
1361
 
1362
+ #: s2member/includes/syscon.inc.php:274
1363
  msgctxt "s2member-front"
1364
  msgid "Gold Member"
1365
  msgstr ""
1366
 
1367
+ #: s2member/includes/syscon.inc.php:274
1368
  msgctxt "s2member-front"
1369
  msgid "Platinum Member"
1370
  msgstr ""
1371
 
1372
+ #: s2member/includes/syscon.inc.php:274
1373
  msgctxt "s2member-front"
1374
  msgid "Level %s Member"
1375
  msgstr ""
1470
 
1471
  #: s2member/includes/templates/errors/ip-restrictions.php:13
1472
  msgctxt "s2member-front"
1473
+ msgid ""
1474
+ "<strong>503: Service Temporarily Unavailable</strong><br />Too many IP "
1475
+ "addresses accessing one secure area<em>!</em><br />Please contact Support if "
1476
+ "you need assistance."
1477
  msgstr ""
1478
 
1479
  #: s2member/includes/templates/options/paypal-currencies.php:6
2264
  msgid ""
2265
  "ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
2266
  "\n"
2267
+ "This is most likely related to an invalid AliPay configuration. If you are "
2268
+ "the site owner, please check: s2Member -› AliPay Options."
2269
  msgstr ""
2270
 
2271
  #: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:116
2272
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:115
2273
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:113
2274
  msgctxt "s2member-front"
2275
+ msgid ""
2276
+ "<strong>Billing termination confirmed.</strong> Your account has been "
2277
+ "cancelled."
2278
  msgstr ""
2279
 
2280
  #: s2member-pro/includes/classes/gateways/authnet/authnet-cancellation-in.inc.php:124
2309
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:469
2310
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:906
2311
  msgctxt "s2member-front"
2312
+ msgid ""
2313
+ "<strong>Thank you.</strong> Your account has been updated.<br />&mdash; "
2314
+ "Please <a href=\"%s\" rel=\"nofollow\">log back in</a> now."
2315
  msgstr ""
2316
 
2317
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:492
2323
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:737
2324
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1060
2325
  msgctxt "s2member-front"
2326
+ msgid ""
2327
+ "<strong>Thank you.</strong> Your account has been approved.<br />&mdash; "
2328
+ "Please <a href=\"%s\" rel=\"nofollow\">login</a>."
2329
  msgstr ""
2330
 
2331
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:501
2349
  #: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:125
2350
  #: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:142
2351
  msgctxt "s2member-front"
2352
+ msgid ""
2353
+ "<strong>Oops.</strong> A slight problem. Please contact Support for "
2354
+ "assistance."
2355
  msgstr ""
2356
 
2357
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:516
2363
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:758
2364
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:1081
2365
  msgctxt "s2member-front"
2366
+ msgid ""
2367
+ "<strong>Thank you.</strong> Your account has been approved.<br />&mdash; "
2368
+ "You'll receive an email momentarily."
2369
  msgstr ""
2370
 
2371
  #: s2member-pro/includes/classes/gateways/authnet/authnet-checkout-in.inc.php:784
2562
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:118
2563
  #: s2member-pro/includes/classes/gateways/paypal/paypal-registration-in.inc.php:118
2564
  msgctxt "s2member-front"
2565
+ msgid ""
2566
+ "<strong>Thank you.</strong> Please <a href=\"%s\" rel=\"nofollow\">login</a>."
2567
  msgstr ""
2568
 
2569
  #: s2member-pro/includes/classes/gateways/authnet/authnet-registration-in.inc.php:135
2574
 
2575
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:205
2576
  msgctxt "s2member-admin"
2577
+ msgid ""
2578
+ "Authorize.Net configuration error. Please configure your Authorize.Net API "
2579
+ "Login ID."
2580
  msgstr ""
2581
 
2582
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:208
2583
  msgctxt "s2member-admin"
2584
+ msgid ""
2585
+ "Authorize.Net configuration error. Your Authorize.Net API Transaction Key is "
2586
+ "not yet configured."
2587
  msgstr ""
2588
 
2589
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:211
2590
  msgctxt "s2member-admin"
2591
+ msgid ""
2592
+ "Authorize.Net configuration error. Your Authorize.Net Secret MD5 Hash is not "
2593
+ "yet configured."
2594
  msgstr ""
2595
 
2596
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
2598
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
2599
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:597
2600
  msgctxt "s2member-front"
2601
+ msgid ""
2602
+ "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
2603
  msgstr ""
2604
 
2605
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:236
2623
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:272
2624
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:608
2625
  msgctxt "s2member-front"
2626
+ msgid ""
2627
+ "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing "
2628
+ "information."
2629
  msgstr ""
2630
 
2631
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
2641
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:302
2642
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:308
2643
  msgctxt "s2member-front"
2644
+ msgid ""
2645
+ "Nothing to update. You have NO recurring fees. Or, your billing profile is "
2646
+ "no longer active. Please contact Support if you need assistance."
2647
  msgstr ""
2648
 
2649
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
2650
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:314
2651
  msgctxt "s2member-admin"
2652
+ msgid ""
2653
+ "Invalid form configuration. Missing \"level\" attribute. Membership Level. "
2654
+ "Must be numeric [0-%s]."
2655
  msgstr ""
2656
 
2657
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
2658
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:317
2659
  msgctxt "s2member-admin"
2660
+ msgid ""
2661
+ "Invalid form configuration. Invalid \"level\" attribute. Membership Level. "
2662
+ "Must be numeric [0-%s]."
2663
  msgstr ""
2664
 
2665
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
2667
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:320
2668
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:426
2669
  msgctxt "s2member-admin"
2670
+ msgid ""
2671
+ "Invalid form configuration. Invalid \"ccaps\" attribute. Custom "
2672
+ "Capabilities. When provided, must be all lowercase [a-z_0-9,]. A preceding `-"
2673
+ "all,` directive is also acceptable."
2674
  msgstr ""
2675
 
2676
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
2678
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:323
2679
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:468
2680
  msgctxt "s2member-admin"
2681
+ msgid ""
2682
+ "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When "
2683
+ "provided, must be numeric."
2684
  msgstr ""
2685
 
2686
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
2688
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:326
2689
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:471
2690
  msgctxt "s2member-admin"
2691
+ msgid ""
2692
+ "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When "
2693
+ "provided, must be >= 1."
2694
  msgstr ""
2695
 
2696
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
2698
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:329
2699
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:474
2700
  msgctxt "s2member-admin"
2701
+ msgid ""
2702
+ "Invalid form configuration. Missing \"tt\" attribute. The Trial Term. When "
2703
+ "\"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2704
  msgstr ""
2705
 
2706
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
2708
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:332
2709
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:477
2710
  msgctxt "s2member-admin"
2711
+ msgid ""
2712
+ "Invalid form configuration. Invalid \"tt\" attribute. The Trial Term. When "
2713
+ "\"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2714
  msgstr ""
2715
 
2716
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
2717
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:335
2718
  msgctxt "s2member-admin"
2719
+ msgid ""
2720
+ "Invalid form configuration. Invalid \"custom\" attribute. When provided, "
2721
+ "must start with your domain name."
2722
  msgstr ""
2723
 
2724
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
2725
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:340
2726
  msgctxt "s2member-admin"
2727
+ msgid ""
2728
+ "Invalid form configuration. Missing \"ids\" attribute. Must contain comma-"
2729
+ "delimited Post/Page IDs."
2730
  msgstr ""
2731
 
2732
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
2733
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:343
2734
  msgctxt "s2member-admin"
2735
+ msgid ""
2736
+ "Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-"
2737
+ "delimited Post/Page IDs. Must contain [0-9,] only."
2738
  msgstr ""
2739
 
2740
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
2741
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:346
2742
  msgctxt "s2member-admin"
2743
+ msgid ""
2744
+ "Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page "
2745
+ "Expiration (in hours). Must be numeric."
2746
  msgstr ""
2747
 
2748
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
2749
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:349
2750
  msgctxt "s2member-admin"
2751
+ msgid ""
2752
+ "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
2753
+ "Expiration (in hours). Must be numeric."
2754
  msgstr ""
2755
 
2756
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
2757
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:352
2758
  msgctxt "s2member-admin"
2759
+ msgid ""
2760
+ "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
2761
+ "Expiration (in hours). Must be >= 1."
2762
  msgstr ""
2763
 
2764
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
2765
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:355
2766
  msgctxt "s2member-admin"
2767
+ msgid ""
2768
+ "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page "
2769
+ "Expiration (in hours). Must be <= 43800."
2770
  msgstr ""
2771
 
2772
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
2773
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:358
2774
  msgctxt "s2member-admin"
2775
+ msgid ""
2776
+ "Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. "
2777
+ "Please check Shortcode Attributes."
2778
  msgstr ""
2779
 
2780
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
2781
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:361
2782
  msgctxt "s2member-admin"
2783
+ msgid ""
2784
+ "Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. "
2785
+ "Please check Shortcode Attributes."
2786
  msgstr ""
2787
 
2788
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
2790
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:364
2791
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:432
2792
  msgctxt "s2member-admin"
2793
+ msgid ""
2794
+ "Invalid form configuration. Missing \"desc\" attribute. Please provide a "
2795
+ "Description for this form."
2796
  msgstr ""
2797
 
2798
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
2800
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:367
2801
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:435
2802
  msgctxt "s2member-admin"
2803
+ msgid ""
2804
+ "Invalid form configuration. Your \"desc\" (Description) attribute must be <= "
2805
+ "100 characters long."
2806
  msgstr ""
2807
 
2808
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
2810
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:370
2811
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:438
2812
  msgctxt "s2member-admin"
2813
+ msgid ""
2814
+ "Invalid form configuration. Missing \"custom\" attribute. Must start with "
2815
+ "your domain name."
2816
  msgstr ""
2817
 
2818
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
2819
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:373
2820
  msgctxt "s2member-admin"
2821
+ msgid ""
2822
+ "Invalid form configuration. Invalid \"custom\" attribute. Must start with "
2823
+ "your domain name."
2824
  msgstr ""
2825
 
2826
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
2828
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:376
2829
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:444
2830
  msgctxt "s2member-admin"
2831
+ msgid ""
2832
+ "Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character "
2833
+ "Currency Code."
2834
  msgstr ""
2835
 
2836
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
2838
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:379
2839
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:447
2840
  msgctxt "s2member-admin"
2841
+ msgid ""
2842
+ "Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character "
2843
+ "Currency Code."
2844
  msgstr ""
2845
 
2846
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
2848
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:400
2849
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:537
2850
  msgctxt "s2member-admin"
2851
+ msgid ""
2852
+ "Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. "
2853
+ "Must be >= 0.00."
2854
  msgstr ""
2855
 
2856
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
2858
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:403
2859
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:540
2860
  msgctxt "s2member-admin"
2861
+ msgid ""
2862
+ "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
2863
+ "Must be numeric."
2864
  msgstr ""
2865
 
2866
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
2868
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:406
2869
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:543
2870
  msgctxt "s2member-admin"
2871
+ msgid ""
2872
+ "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
2873
+ "Must be >= 0.00."
2874
  msgstr ""
2875
 
2876
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:344
2877
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:472
2878
  msgctxt "s2member-admin"
2879
+ msgid ""
2880
+ "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
2881
+ "Must be <= 99999.00."
2882
  msgstr ""
2883
 
2884
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
2885
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:414
2886
  msgctxt "s2member-front"
2887
+ msgid ""
2888
+ "You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing "
2889
+ "plan."
2890
  msgstr ""
2891
 
2892
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
2893
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:417
2894
  msgctxt "s2member-front"
2895
+ msgid ""
2896
+ "You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this "
2897
+ "purchase."
2898
  msgstr ""
2899
 
2900
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
2901
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:420
2902
  msgctxt "s2member-admin"
2903
+ msgid ""
2904
+ "Invalid form configuration. Missing \"level\" attribute. Membership Level. "
2905
+ "Must be numeric [1-%s], or an asterisk (*)."
2906
  msgstr ""
2907
 
2908
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
2909
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:423
2910
  msgctxt "s2member-admin"
2911
+ msgid ""
2912
+ "Invalid form configuration. Invalid \"level\" attribute. Membership Level. "
2913
+ "Must be numeric [1-%s], or an asterisk (*)."
2914
  msgstr ""
2915
 
2916
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
2917
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:429
2918
  msgctxt "s2member-admin"
2919
+ msgid ""
2920
+ "Invalid form configuration. Missing or invalid \"ccaps\" attribute. When "
2921
+ "\"level\" is \"*\" for (Independent Custom Capabilities), \"ccaps\" is "
2922
+ "required. All lowercase [a-z_0-9,]. A preceding `-all,` directive is also "
2923
+ "acceptable."
2924
  msgstr ""
2925
 
2926
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
2927
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:441
2928
  msgctxt "s2member-admin"
2929
+ msgid ""
2930
+ "Invalid form configuration. Invalid \"custom\" attribute. Must start with "
2931
+ "matching domain."
2932
  msgstr ""
2933
 
2934
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
2935
  msgctxt "s2member-admin"
2936
+ msgid ""
2937
+ "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
2938
+ "Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
2939
  msgstr ""
2940
 
2941
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
2942
  msgctxt "s2member-admin"
2943
+ msgid ""
2944
+ "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
2945
+ "Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
2946
  msgstr ""
2947
 
2948
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
2949
  msgctxt "s2member-admin"
2950
+ msgid ""
2951
+ "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
2952
+ "Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
2953
  msgstr ""
2954
 
2955
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
2956
  msgctxt "s2member-admin"
2957
+ msgid ""
2958
+ "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial "
2959
+ "Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
2960
  msgstr ""
2961
 
2962
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
2963
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:480
2964
  msgctxt "s2member-admin"
2965
+ msgid ""
2966
+ "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
2967
+ "provided, must be numeric."
2968
  msgstr ""
2969
 
2970
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
2971
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:483
2972
  msgctxt "s2member-admin"
2973
+ msgid ""
2974
+ "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
2975
+ "provided, must be >= 0.00."
2976
  msgstr ""
2977
 
2978
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:415
2979
  msgctxt "s2member-admin"
2980
+ msgid ""
2981
+ "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
2982
+ "provided, must be <= 99999.00."
2983
  msgstr ""
2984
 
2985
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
2986
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:489
2987
  msgctxt "s2member-admin"
2988
+ msgid ""
2989
+ "Invalid form configuration. Missing \"rp\" attribute. The Regular Period. "
2990
+ "Must be >= 1."
2991
  msgstr ""
2992
 
2993
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
2994
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:492
2995
  msgctxt "s2member-admin"
2996
+ msgid ""
2997
+ "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. "
2998
+ "Must be numeric."
2999
  msgstr ""
3000
 
3001
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
3002
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:495
3003
  msgctxt "s2member-admin"
3004
+ msgid ""
3005
+ "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. "
3006
+ "Must be >= 1."
3007
  msgstr ""
3008
 
3009
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
3010
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:498
3011
  msgctxt "s2member-admin"
3012
+ msgid ""
3013
+ "Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must "
3014
+ "be one of D,W,M,Y,L."
3015
  msgstr ""
3016
 
3017
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
3018
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:501
3019
  msgctxt "s2member-admin"
3020
+ msgid ""
3021
+ "Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must "
3022
+ "be one of D,W,M,Y,L."
3023
  msgstr ""
3024
 
3025
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:433
3026
  msgctxt "s2member-admin"
3027
+ msgid ""
3028
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3029
+ "\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) is < 7, and "
3030
+ "\"rr\" is not \"BN\" (Buy Now)."
3031
  msgstr ""
3032
 
3033
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
3034
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:504
3035
  msgctxt "s2member-admin"
3036
+ msgid ""
3037
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3038
+ "\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) > 365, and \"rr"
3039
+ "\" is not \"BN\" (Buy Now)."
3040
  msgstr ""
3041
 
3042
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
3043
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:507
3044
  msgctxt "s2member-admin"
3045
+ msgid ""
3046
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3047
+ "\" (Regular Term) attribute is \"W\", \"rp\" (Regular Period) > 52, and \"rr"
3048
+ "\" is not \"BN\" (Buy Now)."
3049
  msgstr ""
3050
 
3051
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
3052
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:510
3053
  msgctxt "s2member-admin"
3054
+ msgid ""
3055
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3056
+ "\" (Regular Term) attribute is \"M\", \"rp\" (Regular Period) > 12, and \"rr"
3057
+ "\" is not \"BN\" (Buy Now)."
3058
  msgstr ""
3059
 
3060
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
3061
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:519
3062
  msgctxt "s2member-admin"
3063
+ msgid ""
3064
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3065
+ "\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 1, and \"rr"
3066
+ "\" is not \"BN\" (Buy Now)."
3067
  msgstr ""
3068
 
3069
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
3070
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:522
3071
  msgctxt "s2member-admin"
3072
+ msgid ""
3073
+ "Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt"
3074
+ "\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) "
3075
+ "> 1."
3076
  msgstr ""
3077
 
3078
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
3079
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:525
3080
  msgctxt "s2member-admin"
3081
+ msgid ""
3082
+ "Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt"
3083
+ "\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN"
3084
+ "\" (Buy Now)."
3085
  msgstr ""
3086
 
3087
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
3088
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:528
3089
  msgctxt "s2member-admin"
3090
+ msgid ""
3091
+ "Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please "
3092
+ "check Shortcode Attributes."
3093
  msgstr ""
3094
 
3095
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
3097
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:531
3098
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:534
3099
  msgctxt "s2member-admin"
3100
+ msgid ""
3101
+ "Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please "
3102
+ "check Shortcode Attributes."
3103
  msgstr ""
3104
 
3105
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
3106
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:549
3107
  msgctxt "s2member-admin"
3108
+ msgid ""
3109
+ "Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. "
3110
+ "When provided, must be 0, 1, or BN."
3111
  msgstr ""
3112
 
3113
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
3114
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:552
3115
  msgctxt "s2member-admin"
3116
+ msgid ""
3117
+ "Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr"
3118
+ "\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial "
3119
+ "Period) is not \"0\"."
3120
  msgstr ""
3121
 
3122
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
3123
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:555
3124
  msgctxt "s2member-admin"
3125
+ msgid ""
3126
+ "Invalid form configuration. Invalid \"level, rr\" attributes. The \"level"
3127
+ "\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr"
3128
+ "\" is not \"BN\" (Buy Now)."
3129
  msgstr ""
3130
 
3131
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
3132
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:558
3133
  msgctxt "s2member-admin"
3134
+ msgid ""
3135
+ "Invalid form configuration. Invalid \"ta, tp, tt\" attributes. Trial Period. "
3136
+ "When provided, these cannot be exactly the same as your \"ra, rp, rt\" "
3137
+ "attributes."
3138
  msgstr ""
3139
 
3140
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
3141
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:561
3142
  msgctxt "s2member-admin"
3143
+ msgid ""
3144
+ "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times "
3145
+ "(fixed). When provided, must be numeric."
3146
  msgstr ""
3147
 
3148
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
3149
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:564
3150
  msgctxt "s2member-admin"
3151
+ msgid ""
3152
+ "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times "
3153
+ "(fixed). When provided, must be >= 1."
3154
  msgstr ""
3155
 
3156
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
3157
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:567
3158
  msgctxt "s2member-admin"
3159
+ msgid ""
3160
+ "Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt"
3161
+ "\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
3162
  msgstr ""
3163
 
3164
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:520
3182
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:611
3183
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:761
3184
  msgctxt "s2member-admin"
3185
+ msgid ""
3186
+ "Unable to process. You are an Administrator. Stopping here for security. "
3187
+ "Otherwise, an Administrator could lose access."
3188
  msgstr ""
3189
 
3190
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
3238
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:726
3239
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:818
3240
  msgctxt "s2member-front"
3241
+ msgid ""
3242
+ "Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try "
3243
+ "again."
3244
  msgstr ""
3245
 
3246
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
3250
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:729
3251
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:821
3252
  msgctxt "s2member-front"
3253
+ msgid ""
3254
+ "Missing Card Verification Code. It's on the back of your Card. 3-4 digits. "
3255
+ "Please try again."
3256
  msgstr ""
3257
 
3258
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
3262
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:732
3263
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:824
3264
  msgctxt "s2member-front"
3265
+ msgid ""
3266
+ "Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try "
3267
+ "again."
3268
  msgstr ""
3269
 
3270
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
3424
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:675
3425
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:755
3426
  msgctxt "s2member-front"
3427
+ msgid ""
3428
+ "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to modify your billing "
3429
+ "plan."
3430
  msgstr ""
3431
 
3432
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:678
3433
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:758
3434
  msgctxt "s2member-front"
3435
+ msgid ""
3436
+ "You must <a href=\"%s\" rel=\"nofollow\">log in</a> before making this "
3437
+ "purchase."
3438
  msgstr ""
3439
 
3440
  #: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:765
3446
  #: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:169
3447
  #: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:286
3448
  msgctxt "s2member-front"
3449
+ msgid ""
3450
+ "<strong>Thank you.</strong> Your purchase has been approved.<br />&mdash; "
3451
+ "Please <a href=\"%s\" rel=\"nofollow\">click here</a> to proceed."
3452
  msgstr ""
3453
 
3454
  #: s2member-pro/includes/classes/gateways/authnet/authnet-sp-checkout-in.inc.php:176
3455
  #: s2member-pro/includes/classes/gateways/paypal/paypal-sp-checkout-in.inc.php:293
3456
  msgctxt "s2member-front"
3457
+ msgid ""
3458
+ "<strong>Oops.</strong> Unable to generate Access Link. Please contact "
3459
+ "Support for assistance."
3460
  msgstr ""
3461
 
3462
  #: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:110
3470
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:131
3471
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:131
3472
  msgctxt "s2member-front"
3473
+ msgid ""
3474
+ "<strong>Unable to update.</strong> You have NO recurring fees. Or, your "
3475
+ "billing profile is no longer active. Please contact Support if you need "
3476
+ "assistance."
3477
  msgstr ""
3478
 
3479
  #: s2member-pro/includes/classes/gateways/authnet/authnet-update-in.inc.php:131
3480
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:148
3481
  msgctxt "s2member-front"
3482
+ msgid ""
3483
+ "<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance."
3484
  msgstr ""
3485
 
3486
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:666
3558
  #: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:600
3559
  #: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:615
3560
  msgctxt "s2member-front"
3561
+ msgid ""
3562
+ "<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s, then %s</strong>)</"
3563
+ "div>"
3564
  msgstr ""
3565
 
3566
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:923
3580
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1028
3581
  #: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657
3582
  msgctxt "s2member-front"
3583
+ msgid ""
3584
+ "<div>Sorry, your Coupon cannot be applied to this particular purchase.</div>"
3585
  msgstr ""
3586
 
3587
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1032
3592
 
3593
  #. translators: `%1$s` is new price/description, after coupon applied. `%2$s`
3594
  #. is original description.
 
3595
  #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1038
3596
  #: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:667
3597
  msgctxt "s2member-front"
3619
  msgid ""
3620
  "ERROR: Unable to verify POST vars. Please contact Support for assistance.\n"
3621
  "\n"
3622
+ "This is most likely related to an invalid ClickBank configuration. If you "
3623
+ "are the site owner, please check: s2Member -› ClickBank Options."
3624
  msgstr ""
3625
 
3626
  #: s2member-pro/includes/classes/gateways/clickbank/clickbank-utilities.inc.php:168
3627
  msgctxt "s2member-front"
3628
+ msgid ""
3629
+ "<strong>Reminder:</strong> Purchases at this site will appear on your credit "
3630
+ "card or bank statement as: <code>ClickBank</code> or <code>CLKBANK*COM</"
3631
+ "code>."
3632
  msgstr ""
3633
 
3634
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:123
3635
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:247
3636
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:263
3637
  msgctxt "s2member-front"
3638
+ msgid ""
3639
+ "<strong>Unable to cancel at this time.</strong> Your account is pending "
3640
+ "other changes. Please try again in 15 minutes."
3641
  msgstr ""
3642
 
3643
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:135
3644
  #: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-pf-in.inc.php:128
3645
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:257
3646
  msgctxt "s2member-front"
3647
+ msgid ""
3648
+ "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to cancel your "
3649
+ "Subscription."
3650
  msgstr ""
3651
 
3652
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-in.inc.php:344
3654
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:486
3655
  #: s2member-pro/includes/classes/gateways/paypal/paypal-checkout-rdp-in.inc.php:918
3656
  msgctxt "s2member-front"
3657
+ msgid ""
3658
+ "<strong>Sorry.</strong> Your account is pending other changes. Please try "
3659
+ "again in 15 minutes."
3660
  msgstr ""
3661
 
3662
  #: s2member-pro/includes/classes/gateways/paypal/paypal-form-in.inc.php:378
3692
 
3693
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:208
3694
  msgctxt "s2member-admin"
3695
+ msgid ""
3696
+ "PayPal configuration error. Your PayPal API Username is not yet configured."
3697
  msgstr ""
3698
 
3699
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:211
3700
  msgctxt "s2member-admin"
3701
+ msgid ""
3702
+ "PayPal configuration error. Your PayPal API Password is not yet configured."
3703
  msgstr ""
3704
 
3705
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:214
3706
  msgctxt "s2member-admin"
3707
+ msgid ""
3708
+ "PayPal configuration error. Your PayPal API Signature is not yet configured."
3709
  msgstr ""
3710
 
3711
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:283
3717
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:79
3718
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:135
3719
  msgctxt "s2member-front"
3720
+ msgid ""
3721
+ "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to update your "
3722
+ "billing information."
3723
  msgstr ""
3724
 
3725
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:286
3726
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:305
3727
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:127
3728
  msgctxt "s2member-front"
3729
+ msgid ""
3730
+ "<strong>Unable to update at this time.</strong> Your account is pending "
3731
+ "other changes. Please try again in 15 minutes."
3732
  msgstr ""
3733
 
3734
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:382
3735
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:450
3736
  msgctxt "s2member-admin"
3737
+ msgid ""
3738
+ "Invalid form configuration. Missing \"dg\" attribute. Digital indicator. "
3739
+ "Must be numeric [0-1]."
3740
  msgstr ""
3741
 
3742
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:385
3743
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:453
3744
  msgctxt "s2member-admin"
3745
+ msgid ""
3746
+ "Invalid form configuration. Invalid \"dg\" attribute. Digital indicator. "
3747
+ "Must be numeric [0-1]."
3748
  msgstr ""
3749
 
3750
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:388
3751
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:456
3752
  msgctxt "s2member-admin"
3753
+ msgid ""
3754
+ "Invalid form configuration. Missing \"ns\" attribute. Shipping "
3755
+ "configuration. Must be numeric [0-2]."
3756
  msgstr ""
3757
 
3758
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:391
3759
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:459
3760
  msgctxt "s2member-admin"
3761
+ msgid ""
3762
+ "Invalid form configuration. Invalid \"ns\" attribute. Shipping "
3763
+ "configuration. Must be numeric [0-2]."
3764
  msgstr ""
3765
 
3766
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:394
3767
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:462
3768
  msgctxt "s2member-admin"
3769
+ msgid ""
3770
+ "Invalid form configuration. Invalid \"ns\" attribute. Shipping "
3771
+ "configuration. Must be 1 with \"dg\" (digital) items."
3772
  msgstr ""
3773
 
3774
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:397
3775
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:465
3776
  msgctxt "s2member-admin"
3777
+ msgid ""
3778
+ "Invalid form configuration. Invalid \"lc\" attribute. Locale Code. When "
3779
+ "provided, must be a 2 character country code."
3780
  msgstr ""
3781
 
3782
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:409
3783
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:546
3784
  msgctxt "s2member-admin"
3785
+ msgid ""
3786
+ "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. "
3787
+ "Must be <= 10000.00."
3788
  msgstr ""
3789
 
3790
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:486
3791
  msgctxt "s2member-admin"
3792
+ msgid ""
3793
+ "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When "
3794
+ "provided, must be <= 10000.00."
3795
  msgstr ""
3796
 
3797
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:513
3798
  msgctxt "s2member-admin"
3799
+ msgid ""
3800
+ "Invalid Payflow form configuration. Invalid \"rt, rp, rr\" attributes. "
3801
+ "Payflow supports a specific set of recurring intervals. Pro Forms can be "
3802
+ "configured to charge: weekly, bi-weekly, monthly, quarterly, semi-yearly or "
3803
+ "yearly. Any other combination results in this error. This is a Payflow "
3804
+ "limitation."
3805
  msgstr ""
3806
 
3807
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:516
3808
  msgctxt "s2member-admin"
3809
+ msgid ""
3810
+ "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt"
3811
+ "\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 5, and \"rr"
3812
+ "\" is not \"BN\" (Buy Now)."
3813
  msgstr ""
3814
 
3815
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:570
3816
  msgctxt "s2member-admin"
3817
+ msgid ""
3818
+ "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr"
3819
+ "\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be "
3820
+ "numeric."
3821
  msgstr ""
3822
 
3823
  #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:573
3824
  msgctxt "s2member-admin"
3825
+ msgid ""
3826
+ "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr"
3827
+ "\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be "
3828
+ ">= 0."
3829
  msgstr ""
3830
 
3831
  #: s2member-pro/includes/classes/gateways/paypal/paypal-update-pf-in.inc.php:141
3888
  msgid "My Profile Summary"
3889
  msgstr ""
3890
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3891
  #: s2member-pro/includes/syscon.inc.php:95
3892
  msgctxt "s2member-front"
3893
  msgid ""
3899
  "Charges today: $%%%%initial%%%%\n"
3900
  "Recurring charges: $%%%%recurring/regular_cycle%%%%\n"
3901
  "\n"
3902
+ "Your Username/Password will arrive shortly, in a separate email. If you have "
3903
+ "any trouble, please feel free to contact us.\n"
3904
  "\n"
3905
  "Best Regards,\n"
3906
  "%s"
3932
  msgid "Confirm Cancellation"
3933
  msgstr ""
3934
 
3935
+ #: s2member-pro/includes/templates/forms/authnet-cancellation-form.php:36
3936
+ #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:198
3937
+ #: s2member-pro/includes/templates/forms/authnet-registration-form.php:81
3938
+ #: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:179
3939
+ #: s2member-pro/includes/templates/forms/authnet-update-form.php:117
3940
+ #: s2member-pro/includes/templates/forms/paypal-cancellation-form.php:36
3941
+ #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:198
3942
+ #: s2member-pro/includes/templates/forms/paypal-registration-form.php:81
3943
+ #: s2member-pro/includes/templates/forms/paypal-sp-checkout-form.php:179
3944
+ #: s2member-pro/includes/templates/forms/paypal-update-form.php:117
3945
+ msgctxt "s2member-front"
3946
+ msgid "Submit Form"
3947
+ msgstr ""
3948
+
3949
  #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:21
3950
  #: s2member-pro/includes/templates/forms/authnet-sp-checkout-form.php:21
3951
  #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:21
3978
  msgid "Apply Coupon"
3979
  msgstr ""
3980
 
3981
+ #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:62
3982
+ #: s2member-pro/includes/templates/forms/authnet-registration-form.php:30
3983
+ #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:62
3984
+ #: s2member-pro/includes/templates/forms/paypal-registration-form.php:30
3985
+ msgctxt "s2member-front"
3986
+ msgid "Create Profile"
3987
+ msgstr ""
3988
+
3989
  #: s2member-pro/includes/templates/forms/authnet-checkout-form.php:84
3990
  #: s2member-pro/includes/templates/forms/authnet-registration-form.php:52
3991
  #: s2member-pro/includes/templates/forms/paypal-checkout-form.php:84
4541
  #: s2member-pro/includes/templates/shortcodes/paypal-update-form-shortcode.php:6
4542
  msgctxt "s2member-front"
4543
  msgid "Update your billing information."
4544
+ msgstr ""
readme.txt CHANGED
@@ -1,7 +1,7 @@
1
  === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
- Version: 131126
4
- Stable tag: 131126
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
@@ -16,12 +16,12 @@ Authorize.Net® Compatible: yes w/s2Member® Pro
16
  Google® Checkout Compatible: yes w/s2Member® Pro
17
  ClickBank® Compatible: yes w/s2Member® Pro
18
 
19
- Tested up to: 3.7.1
20
  Requires at least: 3.3
21
 
22
  Copyright: © 2009 WebSharks, Inc.
23
  License: GNU General Public License v2 or later.
24
- Contributors: WebSharks
25
 
26
  Author: s2Member® / WebSharks, Inc.
27
  Author URI: http://www.s2member.com/
@@ -142,12 +142,30 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
142
 
143
  == Upgrade Notice ==
144
 
145
- = v131126 =
146
 
147
  (Maintenance Release) Upgrade immediately.
148
 
149
  == Changelog ==
150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  = v131126 =
152
 
153
  * (s2Member Pro) **Google Wallet.** s2Member Pro now supports [Google Wallet for Digital Goods](https://developers.google.com/commerce/wallet/digital/).
@@ -165,6 +183,7 @@ Released under the terms of the [GNU General Public License](http://www.gnu.org/
165
  * (s2Member/s2Member Pro) **PHP Debug Notices.** Updating s2Member's source code to further prevent PHP debug notices when running in `WP_DEBUG` mode. This is part of an ongoing effort keep s2Member running smoothly in PHP strict mode; and to maintain conformity with WordPress standards.
166
  * (s2Member Pro) **Unlimited Membership Levels.** Updating the built-in software documentation for s2Member Pro to cover an edge case where a site owner many choose to exceed the recommended maximum for Membership Levels when running s2Member Pro. If you intend to use more than `100` Membership Levels (this is not recommended); but if you do, please see: `Dashboard -› s2Member Pro -› General Options -› Membership Levels/Labels` for the latest details on this.
167
  * (s2Member/s2Member Pro) **Dropping IE8 Support.** s2Member and s2Member Pro will no longer support IE8 in any official capacity. s2Member's HTML output and CSS files have been cleaned up; and all hacks related to IE8 have been removed. Out with the old, in with the new! We need to keep s2Member up-to-date with the latest improvements offered by IE9 and other modern browsers. While s2Member may continue to function relatively well in IE8, hacks used in the past to accomodate edge cases in this buggy browser have been removed in favor of standards compliance.
 
168
  * (s2Member/s2Member Pro) **Bug Fix.** s2Member and s2Member Pro have both been updated to prevent spaces in a comma-delimited list of Custom Capabilities; e.g. `ccaps="music, videos"` should be `ccaps="music,videos"` please. Spaces in this list have never been allowed, but now there is better server-side validation to prevent this from happening; reducing the chance of error when a site owner configures a Button or Pro Form shortcode with s2Member.
169
  * (s2Member/s2Member Pro) **Other Minor Bug Fixes.** Please see: <https://github.com/WebSharks/s2Member/commits/000000-dev>
170
 
1
  === s2Member Framework (Member Roles, Capabilities, Membership, PayPal Members) ===
2
 
3
+ Version: 140105
4
+ Stable tag: 140105
5
 
6
  SSL Compatible: yes
7
  bbPress® Compatible: yes
16
  Google® Checkout Compatible: yes w/s2Member® Pro
17
  ClickBank® Compatible: yes w/s2Member® Pro
18
 
19
+ Tested up to: 3.8
20
  Requires at least: 3.3
21
 
22
  Copyright: © 2009 WebSharks, Inc.
23
  License: GNU General Public License v2 or later.
24
+ Contributors: WebSharks, anguz
25
 
26
  Author: s2Member® / WebSharks, Inc.
27
  Author URI: http://www.s2member.com/
142
 
143
  == Upgrade Notice ==
144
 
145
+ = v140105 =
146
 
147
  (Maintenance Release) Upgrade immediately.
148
 
149
  == Changelog ==
150
 
151
+ = v140105 =
152
+
153
+ * (s2Member/s2Member Pro) **Compatibility**. Updated to support WordPress v3.8. Nothing significant, just minor UI tweaks in the Login/Registration Design for WordPress v3.8; e.g. `wp-login.php` got some minor improvements in this release of s2Member and s2Member Pro.
154
+ * (s2Member) **Compatibility**. PayPal's API for Subscription Cancellation Buttons was changed recently. PayPal now requires a Merchant ID instead of the site owner's email address. This issue has been causing an error when a user attempts to cancel a PayPal Subscription through an s2Member-generated PayPal Subscription Cancellation "Button" (i.e. this affects Buttons only, not Pro Forms). Fixed in this release. Site owners using PayPal Buttons should update their PayPal Merchant ID for s2Member. Please see: `Dashboard ⥱ s2Member ⥱ PayPal Options ⥱ Account Details`.
155
+ * (s2Member/s2Member Pro) **Compatibility**. Default s2Member option value for CSS/JS Lazy Loading is now off instead of on; e.g. s2Member's CSS/JS JavaScript libraries are now loaded on every page by default. Lazy loading must now be enabled by a site owner as a performance enhancement (optional). For further details, please see: `Dashboard ⥱ s2Member ⥱ General Options ⥱ CSS/JS Lazy Loading`.
156
+ * (s2Member Pro) **Remote Operations API**. This release introduces two new API methods; `auth_check_user` and `get_user`. These methods (combined with those which already exist in s2Member Pro) now make s2Member Pro's Remote Operations API a pleasure to work with. For further details, please see: `Dashboard ⥱ s2Member Pro ⥱ API Scripting ⥱ Pro Remote Operations API`. Here you will find the API Key for your installation, along with several code samples.
157
+ * (s2Member/s2Member Pro) **Logging**. s2Member's core payment gateway processors now log to files `gateway-core-ipn.log` and `gateway-core-rtn.log`. These log file names were changed in this release. In previous versions of s2Member these log entries were kept inside `paypal-ipn.log` and `paypal-rtn.log`.
158
+ * (s2Member/s2Member Pro) **Updates**. The XML/RSS feed box for the most recent s2Member Updates (for site owners only; in the Dashboard); has been updated to our newest feed location at: `http://feeds.feedburner.com/s2member`.
159
+ * (s2Member/s2Member Pro) **Bug Fix**. s2Member should follow redirects in API calls to Amazon.com. See: <https://github.com/WebSharks/s2Member/issues/35> for further details.
160
+ * (s2Member/s2Member Pro) **Bug Fix**. By default, do not count login IP Restrictions against users who can `edit_posts`. See: <https://github.com/WebSharks/s2Member/issues/32> for further details.
161
+ * (s2Member/s2Member Pro) **Bug Fix**. Sleep offset to `10` seconds for `subscr_eot`. See <https://github.com/WebSharks/s2Member/issues/34> for further details.
162
+ * (s2Member/s2Member Pro) **Enhancement**. Updating the "s2" icon in the Dashboard to our most recent version.
163
+ * (s2Member Pro) **Bug Fix**. s2Member Pro now accepts `TOO MANY FAILURES` as an EOT response type status under PayPal Pro (Payflow Edition) accounts. This was previously causing a problem against newer PayPal Pro accounts (w/ the Payflow Edition); whereby some customers who were reaching Max Failed Payments were not being demoted properly in all cases. Fixed in this release.
164
+ * (s2Member/s2Member Pro) **Compatibility**. Adding support for `$_SERVER['HTTP_AUTHORIZATION']` when s2Member is used for Remote Auth file hosting. Some servers do not support `$_SERVER['PHP_AUTH_USER']`. Instead, s2Member can get the username/password by parsing them out of `$_SERVER['HTTP_AUTHORIZATION']` when/if necessary. Fixed in this release.
165
+ * (s2Member/s2Member Pro) **PHP Debug Notices.** Updating s2Member's source code to further prevent PHP debug notices when running in `WP_DEBUG` mode. This is part of an ongoing effort keep s2Member running smoothly in PHP strict mode; and to maintain conformity with WordPress standards.
166
+ * (s2Member Pro) **Bug Fix**. Define `abbr_bytes()` method as static to prevent issues during automatic upgrades of s2Member Pro. Please see <https://github.com/WebSharks/s2Member/issues/37> for further details.
167
+ * (s2Member/s2Member Pro) **Backward Compatibility.** Updating calls to `get_post()`. We're adding a `NULL` argument via `$null` to prevent warnings in older releases of WordPress where an argument was required; e.g. `$null = NULL; get_post($null)`.
168
+
169
  = v131126 =
170
 
171
  * (s2Member Pro) **Google Wallet.** s2Member Pro now supports [Google Wallet for Digital Goods](https://developers.google.com/commerce/wallet/digital/).
183
  * (s2Member/s2Member Pro) **PHP Debug Notices.** Updating s2Member's source code to further prevent PHP debug notices when running in `WP_DEBUG` mode. This is part of an ongoing effort keep s2Member running smoothly in PHP strict mode; and to maintain conformity with WordPress standards.
184
  * (s2Member Pro) **Unlimited Membership Levels.** Updating the built-in software documentation for s2Member Pro to cover an edge case where a site owner many choose to exceed the recommended maximum for Membership Levels when running s2Member Pro. If you intend to use more than `100` Membership Levels (this is not recommended); but if you do, please see: `Dashboard -› s2Member Pro -› General Options -› Membership Levels/Labels` for the latest details on this.
185
  * (s2Member/s2Member Pro) **Dropping IE8 Support.** s2Member and s2Member Pro will no longer support IE8 in any official capacity. s2Member's HTML output and CSS files have been cleaned up; and all hacks related to IE8 have been removed. Out with the old, in with the new! We need to keep s2Member up-to-date with the latest improvements offered by IE9 and other modern browsers. While s2Member may continue to function relatively well in IE8, hacks used in the past to accomodate edge cases in this buggy browser have been removed in favor of standards compliance.
186
+ * (s2Member/s2Member Pro) **Lazy Loading CSS/JS.** s2Member now offers site owners the option to enable/disable lazy loading of CSS/JS libraries provided by the s2Member software. For further details, please see: `Dashboard -› s2Member -› General Options -› CSS/JS Lazy Loading`.
187
  * (s2Member/s2Member Pro) **Bug Fix.** s2Member and s2Member Pro have both been updated to prevent spaces in a comma-delimited list of Custom Capabilities; e.g. `ccaps="music, videos"` should be `ccaps="music,videos"` please. Spaces in this list have never been allowed, but now there is better server-side validation to prevent this from happening; reducing the chance of error when a site owner configures a Button or Pro Form shortcode with s2Member.
188
  * (s2Member/s2Member Pro) **Other Minor Bug Fixes.** Please see: <https://github.com/WebSharks/s2Member/commits/000000-dev>
189
 
s2member.php CHANGED
@@ -19,8 +19,8 @@
19
  */
20
  /* -- This section for WordPress parsing. ------------------------------------------------------------------------------
21
 
22
- Version: 131126
23
- Stable tag: 131126
24
 
25
  SSL Compatible: yes
26
  bbPress Compatible: yes
@@ -35,7 +35,7 @@ Authorize.Net Compatible: yes w/s2Member Pro
35
  Google Wallet Compatible: yes w/s2Member Pro
36
  ClickBank Compatible: yes w/s2Member Pro
37
 
38
- Tested up to: 3.7.1
39
  Requires at least: 3.3
40
 
41
  Copyright: © 2009 WebSharks, Inc.
@@ -75,7 +75,7 @@ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
- define("WS_PLUGIN__S2MEMBER_VERSION", "131126" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
@@ -105,7 +105,7 @@ if(!defined("WS_PLUGIN__S2MEMBER_MIN_WP_VERSION"))
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
- define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "131126" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.
@@ -174,4 +174,4 @@ else if(is_admin()) // Admin compatibility errors.
174
  add_action("all_admin_notices", create_function('', 'echo \'<div class="error fade"><p>You need WordPress v\' . WS_PLUGIN__S2MEMBER_MIN_WP_VERSION . \'+ to use the s2Member plugin.</p></div>\';'));
175
  }
176
  }
177
- ?>
19
  */
20
  /* -- This section for WordPress parsing. ------------------------------------------------------------------------------
21
 
22
+ Version: 140105
23
+ Stable tag: 140105
24
 
25
  SSL Compatible: yes
26
  bbPress Compatible: yes
35
  Google Wallet Compatible: yes w/s2Member Pro
36
  ClickBank Compatible: yes w/s2Member Pro
37
 
38
+ Tested up to: 3.8
39
  Requires at least: 3.3
40
 
41
  Copyright: © 2009 WebSharks, Inc.
75
  * @var str
76
  */
77
  if(!defined("WS_PLUGIN__S2MEMBER_VERSION"))
78
+ define("WS_PLUGIN__S2MEMBER_VERSION", "140105" /* !#distro-version#! */);
79
  /**
80
  * Minimum PHP version required to run s2Member.
81
  *
105
  * @var str
106
  */
107
  if(!defined("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION"))
108
+ define("WS_PLUGIN__S2MEMBER_MIN_PRO_VERSION", "140105" /* !#distro-version#! */);
109
  /*
110
  Several compatibility checks.
111
  If all pass, load the s2Member plugin.
174
  add_action("all_admin_notices", create_function('', 'echo \'<div class="error fade"><p>You need WordPress v\' . WS_PLUGIN__S2MEMBER_MIN_WP_VERSION . \'+ to use the s2Member plugin.</p></div>\';'));
175
  }
176
  }
177
+ ?>