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

Version Description

= v140423 =

(Maintenance Release) Upgrade immediately.

Download this release

Release Info

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

Code changes from version 140409 to 140423

checksum.txt CHANGED
@@ -1 +1 @@
1
- 0dc9576ca2b6a5856d4e1e602dccc109
1
+ 2901368de4b8eaf96fc4f5d0dcd5451c
includes/classes/mo-page-in.inc.php CHANGED
@@ -82,8 +82,6 @@ if(!class_exists("c_ws_plugin__s2member_mo_page_in"))
82
* Defaults to ``$seeking_type``.
83
*
84
* @return bool This function always returns true.
85
- *
86
- * @TODO Update documentation in the API Scripting section.
87
*/
88
public static function wp_redirect_w_mop_vars($seeking_type = FALSE, $seeking_type_value = FALSE, $req_type = FALSE, $req_type_value = FALSE, $seeking_uri = FALSE, $res_type = FALSE)
89
{
@@ -93,14 +91,14 @@ if(!class_exists("c_ws_plugin__s2member_mo_page_in"))
93
{
94
if($_param === "seeking_uri" || ($_param === "seeking_type_value" && $seeking_type === "ruri"))
95
${$_param} = base64_encode((string)${$_param});
96
- else ${$_param} = str_replace(".", "", (string)${$_param});
97
}
98
unset($_param); // Housekeeping.
99
100
if(!$res_type) $res_type = $seeking_type;
101
102
- $vars = $res_type.".".$req_type.".".$req_type_value.".";
103
- $vars .= $seeking_type.".".$seeking_type_value.".".$seeking_uri;
104
$vars = array("_s2member_vars" => $vars);
105
106
$status = apply_filters("ws_plugin__s2member_content_redirect_status", 301, get_defined_vars());
@@ -120,11 +118,11 @@ if(!class_exists("c_ws_plugin__s2member_mo_page_in"))
120
}
121
122
/*
123
- * s2Member's MOP Vars are now a dot (`.`) delimited list of six values.
124
*
125
* e.g. .../membership-options-page/
126
- * ?_s2member_vars=[restriction type].[requirement type].[requirement type value].
127
- * [seeking type].[seeking type value].[seeking URI base 64 encoded]
128
*/
129
public static function back_compat_mop_vars()
130
{
@@ -132,7 +130,7 @@ if(!class_exists("c_ws_plugin__s2member_mo_page_in"))
132
|| !is_string($_REQUEST["_s2member_vars"])
133
) return;
134
135
- $v = explode(".", $_REQUEST["_s2member_vars"]);
136
if(count($v) !== 6) return;
137
138
/*
82
* Defaults to ``$seeking_type``.
83
*
84
* @return bool This function always returns true.
85
*/
86
public static function wp_redirect_w_mop_vars($seeking_type = FALSE, $seeking_type_value = FALSE, $req_type = FALSE, $req_type_value = FALSE, $seeking_uri = FALSE, $res_type = FALSE)
87
{
91
{
92
if($_param === "seeking_uri" || ($_param === "seeking_type_value" && $seeking_type === "ruri"))
93
${$_param} = base64_encode((string)${$_param});
94
+ else ${$_param} = str_replace("..", "--", (string)${$_param});
95
}
96
unset($_param); // Housekeeping.
97
98
if(!$res_type) $res_type = $seeking_type;
99
100
+ $vars = $res_type."..".$req_type."..".$req_type_value."..";
101
+ $vars .= $seeking_type."..".$seeking_type_value."..".$seeking_uri;
102
$vars = array("_s2member_vars" => $vars);
103
104
$status = apply_filters("ws_plugin__s2member_content_redirect_status", 301, get_defined_vars());
118
}
119
120
/*
121
+ * s2Member's MOP Vars are now a double-dot (`..`) delimited list of six values.
122
*
123
* e.g. .../membership-options-page/
124
+ * ?_s2member_vars=[restriction type]..[requirement type]..[requirement type value]..
125
+ * [seeking type]..[seeking type value]..[seeking URI base 64 encoded]
126
*/
127
public static function back_compat_mop_vars()
128
{
130
|| !is_string($_REQUEST["_s2member_vars"])
131
) return;
132
133
+ $v = explode("..", $_REQUEST["_s2member_vars"]);
134
if(count($v) !== 6) return;
135
136
/*
includes/classes/mo-page.inc.php CHANGED
@@ -71,11 +71,11 @@ if(!class_exists("c_ws_plugin__s2member_mo_page"))
71
}
72
73
/*
74
- * s2Member's MOP Vars are now a dot (`.`) delimited list of six values.
75
*
76
* e.g. .../membership-options-page/
77
- * ?_s2member_vars=[restriction type].[requirement type].[requirement type value].
78
- * [seeking type].[seeking type value].[seeking URI base 64 encoded]
79
*/
80
public static function back_compat_mop_vars()
81
{
71
}
72
73
/*
74
+ * s2Member's MOP Vars are now a double-dot (`..`) delimited list of six values.
75
*
76
* e.g. .../membership-options-page/
77
+ * ?_s2member_vars=[restriction type]..[requirement type]..[requirement type value]..
78
+ * [seeking type]..[seeking type value]..[seeking URI base 64 encoded]
79
*/
80
public static function back_compat_mop_vars()
81
{
includes/classes/registration-times.inc.php CHANGED
@@ -1,110 +1,245 @@
1
<?php
2
/**
3
- * Registration Times.
4
- *
5
- * Copyright: © 2009-2011
6
- * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7
- * (coded in the USA)
8
- *
9
- * Released under the terms of the GNU General Public License.
10
- * You should have received a copy of the GNU General Public License,
11
- * along with this software. In the main directory, see: /licensing/
12
- * If not, see: {@link http://www.gnu.org/licenses/}.
13
- *
14
- * @package s2Member\Registrations
15
- * @since 3.5
16
- */
17
- if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
18
exit ("Do not access this file directly.");
19
20
- if (!class_exists ("c_ws_plugin__s2member_registration_times"))
21
{
22
/**
23
- * Registration Times.
24
- *
25
- * @package s2Member\Registrations
26
- * @since 3.5
27
- */
28
class c_ws_plugin__s2member_registration_times
29
- {
30
- /**
31
- * Synchronizes Paid Registration Times with Role assignments.
32
- *
33
- * @package s2Member\Registrations
34
- * @since 3.5
35
- *
36
- * @attaches-to ``add_action("set_user_role");``
37
- *
38
- * @param int|str $user_id A numeric WordPress User ID should be passed in by the Action Hook.
39
- * @param str $role A WordPress Role ID/Name should be passed in by the Action Hook.
40
- * @return null
41
- */
42
- public static function synchronize_paid_reg_times ($user_id = FALSE, $role = FALSE)
43
- {
44
- foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$__v;
45
- do_action ("ws_plugin__s2member_before_synchronize_paid_reg_times", get_defined_vars ());
46
- unset /* Unset defined __refs, __v. */ ($__refs, $__v);
47
-
48
- if ($user_id && is_object ($user = new WP_User ($user_id)) && !empty ($user->ID) && ($level = c_ws_plugin__s2member_user_access::user_access_level ($user)) > 0)
49
- {
50
- $pr_times = get_user_option ("s2member_paid_registration_times", $user_id);
51
- $pr_times["level"] = (empty ($pr_times["level"])) ? time () : $pr_times["level"];
52
- $pr_times["level" . $level] = (empty ($pr_times["level" . $level])) ? time () : $pr_times["level" . $level];
53
- update_user_option ($user_id, "s2member_paid_registration_times", $pr_times); // Update now.
54
- }
55
-
56
- return /* Return for uniformity. */;
57
- }
58
- /**
59
- * Retrieves a Registration Time.
60
- *
61
- * @package s2Member\Registrations
62
- * @since 3.5
63
- *
64
- * @param int|str $user_id Optional. A numeric WordPress User ID. Defaults to the current User, if logged-in.
65
- * @return int A Unix timestamp, indicating Registration Time, else `0` on failure.
66
- */
67
- public static function registration_time ($user_id = FALSE)
68
- {
69
- foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$__v;
70
- do_action ("ws_plugin__s2member_before_registration_time", get_defined_vars ());
71
- unset /* Unset defined __refs, __v. */ ($__refs, $__v);
72
-
73
- $user = ($user_id) ? new WP_User ($user_id) : ((is_user_logged_in ()) ? wp_get_current_user () : false);
74
-
75
- if (is_object ($user) && !empty ($user->ID) && ($user_id = $user->ID) && $user->user_registered)
76
- {
77
- return apply_filters ("ws_plugin__s2member_registration_time", strtotime ($user->user_registered), get_defined_vars ());
78
- }
79
- else // Else we return a default value of 0, because there is insufficient data.
80
- return apply_filters ("ws_plugin__s2member_registration_time", 0, get_defined_vars ());
81
- }
82
- /**
83
- * Retrieves a Paid Registration Time.
84
- *
85
- * @package s2Member\Registrations
86
- * @since 3.5
87
- *
88
- * @param int|str $level Optional. Defaults to the first/initial Paid Registration Time, regardless of Level#.
89
- * @param int|str $user_id Optional. A numeric WordPress User ID. Defaults to the current User, if logged-in.
90
- * @return int A Unix timestamp, indicating Paid Registration Time, else `0` on failure.
91
- */
92
- public static function paid_registration_time ($level = FALSE, $user_id = FALSE)
93
- {
94
- foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$__v;
95
- do_action ("ws_plugin__s2member_before_paid_registration_time", get_defined_vars ());
96
- unset /* Unset defined __refs, __v. */ ($__refs, $__v);
97
-
98
- $level = (!is_numeric ($level)) ? "level" : "level" . preg_replace ("/[^0-9]/", "", (string)$level);
99
- $user = ($user_id) ? new WP_User ($user_id) : ((is_user_logged_in ()) ? wp_get_current_user () : false);
100
-
101
- if ($level && is_object ($user) && !empty ($user->ID) && ($user_id = $user->ID) && is_array ($pr_times = get_user_option ("s2member_paid_registration_times", $user_id)))
102
- {
103
- return apply_filters ("ws_plugin__s2member_paid_registration_time", ((isset ($pr_times[$level])) ? (int)$pr_times[$level] : 0), get_defined_vars ());
104
- }
105
- else // Else we return a default value of `0`, because there is insufficient data.
106
- return apply_filters ("ws_plugin__s2member_paid_registration_time", 0, get_defined_vars ());
107
- }
108
- }
109
}
110
?>
1
<?php
2
/**
3
+ * Registration Times.
4
+ *
5
+ * Copyright: © 2009-2011
6
+ * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7
+ * (coded in the USA)
8
+ *
9
+ * Released under the terms of the GNU General Public License.
10
+ * You should have received a copy of the GNU General Public License,
11
+ * along with this software. In the main directory, see: /licensing/
12
+ * If not, see: {@link http://www.gnu.org/licenses/}.
13
+ *
14
+ * @package s2Member\Registrations
15
+ * @since 3.5
16
+ */
17
+ if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
18
exit ("Do not access this file directly.");
19
20
+ if(!class_exists("c_ws_plugin__s2member_registration_times"))
21
{
22
/**
23
+ * Registration Times.
24
+ *
25
+ * @package s2Member\Registrations
26
+ * @since 3.5
27
+ */
28
class c_ws_plugin__s2member_registration_times
29
+ {
30
+ /**
31
+ * Synchronizes Paid Registration Times with Role assignments.
32
+ *
33
+ * @package s2Member\Registrations
34
+ * @since 3.5
35
+ *
36
+ * @attaches-to ``add_action("set_user_role");``
37
+ *
38
+ * @param int|str $user_id A numeric WordPress User ID should be passed in by the Action Hook.
39
+ * @param str $role A WordPress Role ID/Name should be passed in by the Action Hook.
40
+ *
41
+ * @return null
42
+ */
43
+ public static function synchronize_paid_reg_times($user_id = FALSE, $role = FALSE)
44
+ {
45
+ foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $__v;
46
+ do_action("ws_plugin__s2member_before_synchronize_paid_reg_times", get_defined_vars());
47
+ unset($__refs, $__v);
48
+
49
+ if($user_id && is_object($user = new WP_User ($user_id)) && !empty ($user->ID) && ($level = c_ws_plugin__s2member_user_access::user_access_level($user)) > 0)
50
+ {
51
+ $pr_times = get_user_option("s2member_paid_registration_times", $user_id);
52
+ $pr_times["level"] = (empty ($pr_times["level"])) ? time() : $pr_times["level"];
53
+ $pr_times["level".$level] = (empty ($pr_times["level".$level])) ? time() : $pr_times["level".$level];
54
+ update_user_option($user_id, "s2member_paid_registration_times", $pr_times); // Update now.
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Retrieves a Registration Time.
60
+ *
61
+ * @package s2Member\Registrations
62
+ * @since 3.5
63
+ *
64
+ * @param int|str $user_id Optional. A numeric WordPress User ID. Defaults to the current User, if logged-in.
65
+ *
66
+ * @return int A Unix timestamp, indicating Registration Time, else `0` on failure.
67
+ */
68
+ public static function registration_time($user_id = FALSE)
69
+ {
70
+ foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $__v;
71
+ do_action("ws_plugin__s2member_before_registration_time", get_defined_vars());
72
+ unset($__refs, $__v);
73
+
74
+ $user = ($user_id) ? new WP_User ($user_id) : ((is_user_logged_in()) ? wp_get_current_user() : FALSE);
75
+
76
+ if(is_object($user) && !empty ($user->ID) && ($user_id = $user->ID) && $user->user_registered)
77
+ {
78
+ return apply_filters("ws_plugin__s2member_registration_time", strtotime($user->user_registered), get_defined_vars());
79
+ }
80
+ else // Else we return a default value of 0, because there is insufficient data.
81
+ return apply_filters("ws_plugin__s2member_registration_time", 0, get_defined_vars());
82
+ }
83
+
84
+ /**
85
+ * Retrieves a Paid Registration Time.
86
+ *
87
+ * @package s2Member\Registrations
88
+ * @since 3.5
89
+ *
90
+ * @param int|str $level Optional. Defaults to the first/initial Paid Registration Time, regardless of Level#.
91
+ * @param int|str $user_id Optional. A numeric WordPress User ID. Defaults to the current User, if logged-in.
92
+ *
93
+ * @return int A Unix timestamp, indicating Paid Registration Time, else `0` on failure.
94
+ */
95
+ public static function paid_registration_time($level = FALSE, $user_id = FALSE)
96
+ {
97
+ foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $__v;
98
+ do_action("ws_plugin__s2member_before_paid_registration_time", get_defined_vars());
99
+ unset($__refs, $__v);
100
+
101
+ $level = (!is_numeric($level)) ? "level" : "level".preg_replace("/[^0-9]/", "", (string)$level);
102
+ $user = ($user_id) ? new WP_User ($user_id) : ((is_user_logged_in()) ? wp_get_current_user() : FALSE);
103
+
104
+ if($level && is_object($user) && !empty ($user->ID) && ($user_id = $user->ID) && is_array($pr_times = get_user_option("s2member_paid_registration_times", $user_id)))
105
+ {
106
+ return apply_filters("ws_plugin__s2member_paid_registration_time", ((isset ($pr_times[$level])) ? (int)$pr_times[$level] : 0), get_defined_vars());
107
+ }
108
+ else // Else we return a default value of `0`, because there is insufficient data.
109
+ return apply_filters("ws_plugin__s2member_paid_registration_time", 0, get_defined_vars());
110
+ }
111
+
112
+ /**
113
+ * Logs capability times.
114
+ *
115
+ * @package s2Member\Registrations
116
+ * @since 140418
117
+ *
118
+ * @attaches-to ``add_action("update_user_meta")``
119
+ *
120
+ * @param integer $meta_id Meta row ID in database.
121
+ * @param integer $object_id User ID.
122
+ * @param string $meta_key Meta key.
123
+ * @param mixed $meta_value Meta value.
124
+ */
125
+ public static function log_capability_time($meta_id, $object_id, $meta_key, $meta_value)
126
+ {
127
+ $wpdb = $GLOBALS["wpdb"];
128
+ /** @var $wpdb \wpdb For IDEs. */
129
+
130
+ if(strpos($meta_key, "capabilities") === FALSE
131
+ || $meta_key !== $wpdb->get_blog_prefix()."capabilities"
132
+ ) return; // Not updating caps.
133
+
134
+ /*
135
+ * NOTE: $prev_caps (and $new_caps) both include individual non-role caps (e.g. `access_s2member_ccap_x`).
136
+ * These arrays ALSO include role names (minus role-specific caps); e.g. `administrator` or `s2member_level1`;
137
+ * but NOT `delete_users` or `access_s2member_leveln`.
138
+ */
139
+
140
+ $user_id = $object_id;
141
+ if(!is_array($new_caps = $meta_value))
142
+ $new_caps = array(); // All caps removed.
143
+
144
+ $user = new WP_User($user_id);
145
+ if(!$user->ID || !$user->exists())
146
+ return; // Not a valid user.
147
+ $prev_caps = $user->caps;
148
+
149
+ /*
150
+ * NOTE: we iterate these arrays so that it's possible to properly analzye boolean flags.
151
+ * WordPress can enable/disable a cap by adding/removing it; or by flagging it as TRUE|FALSE.
152
+ */
153
+ $caps_added = $caps_removed = array();
154
+
155
+ foreach($new_caps as $_new_cap => $_is_enabled)
156
+ if($_is_enabled && (!array_key_exists($_new_cap, $prev_caps) || !$prev_caps[$_new_cap]))
157
+ $caps_added[] = $_new_cap;
158
+
159
+ foreach($prev_caps as $_prev_cap => $_was_enabled)
160
+ if(!array_key_exists($_prev_cap, $new_caps) || (!$new_caps[$_prev_cap] && $_was_enabled))
161
+ $caps_removed[] = $_prev_cap;
162
+
163
+ unset($_new_cap, $_is_enabled, $_prev_cap, $_was_enabled);
164
+
165
+ /*
166
+ * Below, we log CAPS that begin with:
167
+ *
168
+ * `s2member_level`
169
+ * or `access_s2member_ccap_`
170
+ *
171
+ * This makes it possible for us to get access times for all s2Member Levels, and for CCAPS too.
172
+ */
173
+ foreach(array_unique($caps_added) as $_cap)
174
+ if(strpos($_cap, "s2member_level") === 0 || strpos($_cap, "access_s2member_ccap_") === 0)
175
+ c_ws_plugin__s2member_registration_times::_log_capability_time($user_id, $_cap);
176
+
177
+ foreach(array_unique($caps_removed) as $_cap)
178
+ if(strpos($_cap, "s2member_level") === 0 || strpos($_cap, "access_s2member_ccap_") === 0)
179
+ c_ws_plugin__s2member_registration_times::_log_capability_time($user_id, $_cap, TRUE);
180
+
181
+ unset($_cap); // Housekeeping.
182
+ }
183
+
184
+ /**
185
+ * Records access times.
186
+ *
187
+ * @package s2Member\Registrations
188
+ * @since 140418
189
+ *
190
+ * @param integer $user_id WP user ID.
191
+ * @param integer $access_cap s2Member-related capability.
192
+ * @param boolean $removed Defaults to a FALSE value. Flag as TRUE if `$access_cap` is being removed instead of being added.
193
+ */
194
+ public static function _log_capability_time($user_id, $access_cap, $removed = FALSE)
195
+ {
196
+ foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $__v;
197
+ do_action("ws_plugin__s2member_before_log_capability_time", get_defined_vars());
198
+ unset($__refs, $__v);
199
+
200
+ if($user_id && $access_cap)
201
+ {
202
+ $user_id = (integer)$user_id;
203
+ $ac_times = get_user_option("s2member_capability_times", $user_id);
204
+ $ac_times[time()] = ($removed ? "-" : "").$access_cap;
205
+ update_user_option($user_id, "s2member_capability_times", $ac_times);
206
+
207
+ do_action("ws_plugin__s2member_during_log_capability_time", get_defined_vars());
208
+ }
209
+ do_action("ws_plugin__s2member_after_log_capability_time", get_defined_vars());
210
+ }
211
+
212
+ /**
213
+ * Gets access capability times.
214
+ *
215
+ * @package s2Member\Registrations
216
+ * @since 140418
217
+ *
218
+ * @param integer $user_id WP User ID.
219
+ * @param boolean $access_caps Optional. An array of access capabilities to get the times for.
220
+ * If removal times are desired, you should add a `-` prefix.
221
+ *
222
+ * @return array An array of all access capability times.
223
+ * Keys are UTC timestamps, values are the capabilities (including `-` prefixed removals).
224
+ */
225
+ public static function get_capability_times($user_id, $access_caps = FALSE)
226
+ {
227
+ if(($user_id = (integer)$user_id))
228
+ {
229
+ $ac_times = get_user_option("s2member_capability_times", $user_id);
230
+
231
+ if(!is_array($ac_times))
232
+ $ac_times = array();
233
+
234
+ else if($access_caps)
235
+ $ac_times = array_intersect($ac_times, (array)$access_caps);
236
+
237
+ ksort($ac_times);
238
+ }
239
+ else $ac_times = array();
240
+
241
+ return apply_filters("ws_plugin__s2member_get_capability_times", $ac_times, get_defined_vars());
242
+ }
243
+ }
244
}
245
?>
includes/classes/registrations.inc.php CHANGED
@@ -974,7 +974,7 @@ if (!class_exists ("c_ws_plugin__s2member_registrations"))
974
unset($sbj, $msg, $var, $val, $recipient, $email_configs_were_on); // Housekeeping.
975
}
976
977
- if ($url = $GLOBALS["ws_plugin__s2member_registration_return_url"])
978
979
if (($url = preg_replace ("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)))
980
if (($url = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (urlencode ($role)), $url)))
974
unset($sbj, $msg, $var, $val, $recipient, $email_configs_were_on); // Housekeeping.
975
}
976
977
+ if (!empty($GLOBALS["ws_plugin__s2member_registration_return_url"]) && ($url = $GLOBALS["ws_plugin__s2member_registration_return_url"]))
978
979
if (($url = preg_replace ("/%%cv([0-9]+)%%/ei", 'urlencode(trim($cv[$1]))', $url)))
980
if (($url = preg_replace ("/%%role%%/i", c_ws_plugin__s2member_utils_strings::esc_ds (urlencode ($role)), $url)))
includes/classes/user-deletions.inc.php CHANGED
@@ -118,6 +118,7 @@ if (!class_exists ("c_ws_plugin__s2member_user_deletions"))
118
119
delete_user_option ($user_id, "s2member_ipn_signup_vars");
120
delete_user_option ($user_id, "s2member_paid_registration_times");
121
delete_user_option ($user_id, "s2member_sp_references");
122
123
delete_user_option ($user_id, "s2member_last_status_scan");
118
119
delete_user_option ($user_id, "s2member_ipn_signup_vars");
120
delete_user_option ($user_id, "s2member_paid_registration_times");
121
+ delete_user_option ($user_id, "s2member_capability_times");
122
delete_user_option ($user_id, "s2member_sp_references");
123
124
delete_user_option ($user_id, "s2member_last_status_scan");
includes/classes/users-list.inc.php CHANGED
@@ -80,28 +80,29 @@ if (!class_exists ("c_ws_plugin__s2member_users_list"))
80
do_action ("ws_plugin__s2member_before_users_list_search", get_defined_vars ());
81
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
82
83
- if (isset ($query->query_vars) && !is_network_admin ()) // NOT in Network admin panels.
84
- if (is_array ($qv = $query->query_vars) && ($s = trim ($qv["search"], "* \t\n\r\0\x0B")) && ($s = "%" . esc_sql (like_escape ($s)) . "%"))
85
- {
86
- $query->query_fields = "SQL_CALC_FOUND_ROWS DISTINCT(`" . $wpdb->users . "`.`ID`)";
87
- $query->query_from = " FROM `" . $wpdb->users . "`, `" . $wpdb->usermeta . "`"; // Include meta table also.
88
- $query->query_where = " WHERE `" . $wpdb->users . "`.`ID` = `" . $wpdb->usermeta . "`.`user_id`"; // Join w/ meta table.
89
- $query->query_where .= " AND (" . apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_before", "", get_defined_vars ());
90
- $query->query_where .= " (`" . $wpdb->users . "`.`user_login` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_nicename` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`display_name` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_email` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_url` LIKE '" . $s . "')";
91
- $query->query_where .= " OR ((`" . $wpdb->usermeta . "`.`meta_key` = 'first_name' OR `" . $wpdb->usermeta . "`.`meta_key` = 'last_name') AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
92
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_subscr_id' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
93
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
94
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom_fields' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
95
- if(apply_filters("ws_plugin__s2member_users_list_search_admin_notes", false, get_defined_vars())) // Off by default; this can get very slow on large sites.
96
- $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_notes' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
97
- $query->query_where .= apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_after", "", get_defined_vars ()) . ")"; // Leaving room for additional searches here.
98
-
99
- if(is_multisite()) // On a Multisite Network we need to make sure we're searching only users w/ capabilities on this blog.
100
- $query->query_where .= " AND `" . $wpdb->users . "`.`ID` IN(SELECT DISTINCT(`user_id`) FROM `" . $wpdb->usermeta . "` WHERE `meta_key` = '" . $wpdb->prefix . "capabilities')";
101
-
102
- $query->query_from = apply_filters ("ws_plugin__s2member_before_users_list_search_from", $query->query_from, get_defined_vars ());
103
- $query->query_where = apply_filters ("ws_plugin__s2member_before_users_list_search_where", $query->query_where, get_defined_vars ());
104
- }
105
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$__v;
106
do_action ("ws_plugin__s2member_after_users_list_search", get_defined_vars ());
107
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
80
do_action ("ws_plugin__s2member_before_users_list_search", get_defined_vars ());
81
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
82
83
+ if (is_admin() && !empty($GLOBALS['pagenow']) && $GLOBALS['pagenow'] === 'users.php')
84
+ if(isset ($query->query_vars) && !is_network_admin ()) // NOT in Network admin panels.
85
+ if (is_array ($qv = $query->query_vars) && ($s = trim ($qv["search"], "* \t\n\r\0\x0B")) && ($s = "%" . esc_sql (like_escape ($s)) . "%"))
86
+ {
87
+ $query->query_fields = "SQL_CALC_FOUND_ROWS DISTINCT(`" . $wpdb->users . "`.`ID`)";
88
+ $query->query_from = " FROM `" . $wpdb->users . "`, `" . $wpdb->usermeta . "`"; // Include meta table also.
89
+ $query->query_where = " WHERE `" . $wpdb->users . "`.`ID` = `" . $wpdb->usermeta . "`.`user_id`"; // Join w/ meta table.
90
+ $query->query_where .= " AND (" . apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_before", "", get_defined_vars ());
91
+ $query->query_where .= " (`" . $wpdb->users . "`.`user_login` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_nicename` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`display_name` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_email` LIKE '" . $s . "' OR `" . $wpdb->users . "`.`user_url` LIKE '" . $s . "')";
92
+ $query->query_where .= " OR ((`" . $wpdb->usermeta . "`.`meta_key` = 'first_name' OR `" . $wpdb->usermeta . "`.`meta_key` = 'last_name') AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
93
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_subscr_id' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
94
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
95
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_custom_fields' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
96
+ if(apply_filters("ws_plugin__s2member_users_list_search_admin_notes", false, get_defined_vars())) // Off by default; this can get very slow on large sites.
97
+ $query->query_where .= " OR (`" . $wpdb->usermeta . "`.`meta_key` = '" . $wpdb->base_prefix . "s2member_notes' AND `" . $wpdb->usermeta . "`.`meta_value` LIKE '" . $s . "')";
98
+ $query->query_where .= apply_filters ("ws_plugin__s2member_before_users_list_search_where_or_after", "", get_defined_vars ()) . ")"; // Leaving room for additional searches here.
99
+
100
+ if(is_multisite()) // On a Multisite Network we need to make sure we're searching only users w/ capabilities on this blog.
101
+ $query->query_where .= " AND `" . $wpdb->users . "`.`ID` IN(SELECT DISTINCT(`user_id`) FROM `" . $wpdb->usermeta . "` WHERE `meta_key` = '" . $wpdb->prefix . "capabilities')";
102
+
103
+ $query->query_from = apply_filters ("ws_plugin__s2member_before_users_list_search_from", $query->query_from, get_defined_vars ());
104
+ $query->query_where = apply_filters ("ws_plugin__s2member_before_users_list_search_where", $query->query_where, get_defined_vars ());
105
+ }
106
foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$__v;
107
do_action ("ws_plugin__s2member_after_users_list_search", get_defined_vars ());
108
unset /* Unset defined __refs, __v. */ ($__refs, $__v);
includes/classes/utils-arrays.inc.php CHANGED
@@ -216,7 +216,7 @@ if (!class_exists ("c_ws_plugin__s2member_utils_arrays"))
216
* See: {@link http://www.php.net/manual/en/function.ksort.php}
217
* @return Unlike PHP's ``ksort()``, this function returns the array, and does NOT work on a reference.
218
*/
219
- function ksort_deep ($array = FALSE, $flags = SORT_REGULAR)
220
{
221
$array = (array)$array;
222
ksort /* Sort by key. */ ($array, $flags);
216
* See: {@link http://www.php.net/manual/en/function.ksort.php}
217
* @return Unlike PHP's ``ksort()``, this function returns the array, and does NOT work on a reference.
218
*/
219
+ public static function ksort_deep ($array = FALSE, $flags = SORT_REGULAR)
220
{
221
$array = (array)$array;
222
ksort /* Sort by key. */ ($array, $flags);
includes/functions/api-functions.inc.php CHANGED
@@ -2240,11 +2240,20 @@ if(!function_exists("s2member_registration_time"))
2240
*/
2241
if(!function_exists("s2member_paid_registration_time"))
2242
{
2243
- function s2member_paid_registration_time($level = FALSE, $user_id = FALSE)
2244
{
2245
return c_ws_plugin__s2member_registration_times::paid_registration_time($level, $user_id);
2246
}
2247
}
2248
/**
2249
* A powerful function that can retrieve almost anything
2250
* you need to know about the current User, and/or a particular User.
2240
*/
2241
if(!function_exists("s2member_paid_registration_time"))
2242
{
2243
+ function s2member_paid_registration_time($level = false, $user_id = false)
2244
{
2245
return c_ws_plugin__s2member_registration_times::paid_registration_time($level, $user_id);
2246
}
2247
}
2248
+ if(!function_exists("s2member_capability_times"))
2249
+ {
2250
+ function s2member_capability_times($user_id = false, $levels_and_or_caps = false)
2251
+ {
2252
+ if(!$user_id) $user_id = get_current_user_id();
2253
+
2254
+ return c_ws_plugin__s2member_registration_times::get_capability_times($user_id, $levels_and_or_caps);
2255
+ }
2256
+ }
2257
/**
2258
* A powerful function that can retrieve almost anything
2259
* you need to know about the current User, and/or a particular User.
includes/hooks.inc.php CHANGED
@@ -1,19 +1,19 @@
1
<?php
2
/**
3
- * Primary Hooks/Filters used by the s2Member plugin.
4
- *
5
- * Copyright: © 2009-2011
6
- * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7
- * (coded in the USA)
8
- *
9
- * Released under the terms of the GNU General Public License.
10
- * You should have received a copy of the GNU General Public License,
11
- * along with this software. In the main directory, see: /licensing/
12
- * If not, see: {@link http://www.gnu.org/licenses/}.
13
- *
14
- * @package s2Member
15
- * @since 3.0
16
- */
17
if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
18
exit("Do not access this file directly.");
19
/*
@@ -63,7 +63,7 @@ add_action("wp", "c_ws_plugin__s2member_security::security_gate", 1);
63
64
add_filter("wp_mail", "c_ws_plugin__s2member_email_configs::email_filter");
65
66
- add_filter /* Shortcodes in widgets. */("widget_text", "do_shortcode");
67
68
add_action("wp_print_styles", "c_ws_plugin__s2member_css_js_themes::add_css");
69
add_action("wp_print_scripts", "c_ws_plugin__s2member_css_js_themes::add_js_w_globals");
@@ -159,6 +159,7 @@ add_action("show_user_profile", "c_ws_plugin__s2member_users_list::users_list_ed
159
add_action("edit_user_profile_update", "c_ws_plugin__s2member_users_list::users_list_update_cols");
160
add_action("personal_options_update", "c_ws_plugin__s2member_users_list::users_list_update_cols");
161
add_action("set_user_role", "c_ws_plugin__s2member_registration_times::synchronize_paid_reg_times", 10, 2);
162
add_filter("show_password_fields", "c_ws_plugin__s2member_user_securities::hide_password_fields", 10, 2);
163
164
add_filter("cron_schedules", "c_ws_plugin__s2member_cron_jobs::extend_cron_schedules");
1
<?php
2
/**
3
+ * Primary Hooks/Filters used by the s2Member plugin.
4
+ *
5
+ * Copyright: © 2009-2011
6
+ * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7
+ * (coded in the USA)
8
+ *
9
+ * Released under the terms of the GNU General Public License.
10
+ * You should have received a copy of the GNU General Public License,
11
+ * along with this software. In the main directory, see: /licensing/
12
+ * If not, see: {@link http://www.gnu.org/licenses/}.
13
+ *
14
+ * @package s2Member
15
+ * @since 3.0
16
+ */
17
if(realpath(__FILE__) === realpath($_SERVER["SCRIPT_FILENAME"]))
18
exit("Do not access this file directly.");
19
/*
63
64
add_filter("wp_mail", "c_ws_plugin__s2member_email_configs::email_filter");
65
66
+ add_filter("widget_text", "do_shortcode"); // Shortcodes in widgets.
67
68
add_action("wp_print_styles", "c_ws_plugin__s2member_css_js_themes::add_css");
69
add_action("wp_print_scripts", "c_ws_plugin__s2member_css_js_themes::add_js_w_globals");
159
add_action("edit_user_profile_update", "c_ws_plugin__s2member_users_list::users_list_update_cols");
160
add_action("personal_options_update", "c_ws_plugin__s2member_users_list::users_list_update_cols");
161
add_action("set_user_role", "c_ws_plugin__s2member_registration_times::synchronize_paid_reg_times", 10, 2);
162
+ add_action("update_user_meta", "c_ws_plugin__s2member_registration_times::log_capability_time", 10, 4);
163
add_filter("show_password_fields", "c_ws_plugin__s2member_user_securities::hide_password_fields", 10, 2);
164
165
add_filter("cron_schedules", "c_ws_plugin__s2member_cron_jobs::extend_cron_schedules");
includes/menu-pages/code-samples/api-mop-vars-e.x-php CHANGED
@@ -1,7 +1,7 @@
1
<?php
2
if(!empty($_REQUEST["_s2member_vars"]))
3
@list($restriction_type, $requirement_type, $requirement_type_value, $seeking_type, $seeking_type_value, $seeking_uri)
4
- = explode(".", stripslashes((string)$_REQUEST["_s2member_vars"]));
5
6
if (!empty($seeking_type) /* One of: page|post|catg|ptag|file|ruri */ )
7
echo 'You were trying to access a protected: ' . esc_html($seeking_type) . '.';
1
<?php
2
if(!empty($_REQUEST["_s2member_vars"]))
3
@list($restriction_type, $requirement_type, $requirement_type_value, $seeking_type, $seeking_type_value, $seeking_uri)
4
+ = explode("..", stripslashes((string)$_REQUEST["_s2member_vars"]));
5
6
if (!empty($seeking_type) /* One of: page|post|catg|ptag|file|ruri */ )
7
echo 'You were trying to access a protected: ' . esc_html($seeking_type) . '.';
includes/menu-pages/code-samples/api-mop-vars.x-php CHANGED
@@ -1,12 +1,12 @@
1
-----------------------------------------------------------------------------------------------------------
2
- Example redirection link with MOP Vars, in psuedo code:
3
-----------------------------------------------------------------------------------------------------------
4
5
- s2Member's MOP Vars are now a dot (`.`) delimited list of six values.
6
7
.../membership-options-page/
8
- ?_s2member_vars=[restriction type].[requirement type].[requirement type value].
9
- [seeking type].[seeking type value].[seeking URI base 64 encoded]
10
11
-----------------------------------------------------------------------------------------------------------
12
1
-----------------------------------------------------------------------------------------------------------
2
+ Example redirection link with MOP Vars, in pseudo code:
3
-----------------------------------------------------------------------------------------------------------
4
5
+ s2Member's MOP Vars are now a double-dot (`..`) delimited list of six values.
6
7
.../membership-options-page/
8
+ ?_s2member_vars=[restriction type]..[requirement type]..[requirement type value]..
9
+ [seeking type]..[seeking type value]..[seeking URI base 64 encoded]
10
11
-----------------------------------------------------------------------------------------------------------
12
includes/menu-pages/menu-pages-s-min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function($){var esc_attr=esc_html=function(str){return String(str).replace(/"/g,"&quot;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;")};if(location.href.match(/page\=ws-plugin--s2member/)){$("input.ws-plugin--s2member-update-roles-button, input.ws-plugin--s2member-reset-roles-button").click(function(){var $this=$(this);$this.val("one moment please ...");var levels='<?php echo (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; ?>';var resetUpdate=($this.hasClass("ws-plugin--s2member-reset-roles-button"))?"Reset":"Update";$.post(ajaxurl,{action:"ws_plugin__s2member_update_roles_via_ajax",ws_plugin__s2member_update_roles_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-update-roles-via-ajax")); ?>'},function(response){if(response==="1"){alert("s2Member's Roles/Capabilities "+((resetUpdate.toLowerCase()==="reset")?"have been successfully reset":"updated successfully")+".\nYour installation of s2Member has Membership Levels 0-"+levels+"."),$this.val(resetUpdate+" Roles/Capabilities")}else{if(response==="l"){alert("Sorry, your request failed.\ns2Member's Roles/Capabilities are locked by Filter:\nws_plugin__s2member_lock_roles_caps"),$this.val(resetUpdate+" Roles/Capabilities")}else{alert("Sorry, your request failed.\nAccess denied. Do you have the ability to `create_users`?"),$this.val(resetUpdate+" Roles/Capabilities")}}});return false})}if(location.href.match(/page\=ws-plugin--s2member-logs/)){$("input#ws-plugin--s2member-gateway-debug-logs-extensive-1").click(function(){var $this=$(this),thisChecked=(this.checked)?true:false;if(thisChecked){$("input#ws-plugin--s2member-gateway-debug-logs-1").attr("checked","checked")}});var $toggles=$("a.ws-plugin--s2member-log-file-viewport-toggle");$toggles.click(function(){$("textarea#ws-plugin--s2member-log-file-viewer").each(function(){var $viewer=$(this);if($viewer.attr("data-state")!=="expanded"){$viewer.css({height:($viewer.prop("scrollHeight")+50)+"px","overflow-y":"auto"});$toggles.html("&#8657; normalize viewport &#10073;");$viewer.attr("data-state","expanded")}else{$viewer.css({height:"auto","overflow-y":"scroll"});$toggles.html("&#8659; expand viewport &#8659;");$viewer.attr("data-state","scrolling")}});return false})}if(location.href.match(/page\=ws-plugin--s2member-mms-ops/)){$("select#ws-plugin--s2member-mms-registration-file").change(function(){if($(this).val()==="wp-signup"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").show(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").hide(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").show();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0")[((gv==="all")?"show":"hide")]();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val(((gv==="all")?((l0v>0)?l0v:"1"):"0"))}else{if($(this).val()==="wp-login"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").hide(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").show(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").hide();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0").hide();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val("0")}}}).trigger("change");$("select#ws-plugin--s2member-mms-registration-grants").change(function(){$("select#ws-plugin--s2member-mms-registration-file").trigger("change")})}if(location.href.match(/page\=ws-plugin--s2member-gen-ops/)){ws_plugin__s2member_generateSecurityKey=function(){var mt_rand=function(min,max){min=(arguments.length<1)?0:min;max=(arguments.length<2)?2147483647:max;return Math.floor(Math.random()*(max-min+1))+min};var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()";for(var i=0,key="";i<64;i++){key+=chars.substr(mt_rand(0,chars.length-1),1)}$("input#ws-plugin--s2member-sec-encryption-key").val(key);return false};ws_plugin__s2member_enableSecurityKey=function(){if(confirm("Edit Key? Are you sure?\nThis could break your installation!\n\n*Note* If you've been testing s2Member, feel free to change this Key before you go live. Just don't go live, and then change it. You'll have unhappy Customers. Data corruption WILL occur! For your safety, s2Member keeps a history of the last 10 Keys that you've used. If you get yourself into a real situation, s2Member will let you revert back to a previous Key.")){$("input#ws-plugin--s2member-sec-encryption-key").removeAttr("disabled")}return false};ws_plugin__s2member_securityKeyHistory=function(){$("div#ws-plugin--s2member-sec-encryption-key-history").toggle();return false};$("select#ws-plugin--s2member-new-user-emails-enabled").change(function(){var $pluggable=$("input#ws-plugin--s2member-pluggables-wp-new-user-notification"),$this=$(this),$newUserEmails=$("div#ws-plugin--s2member-new-user-emails");if($pluggable.val()==="0"||$this.val()==="0"){($pluggable.val()==="0")?$this.attr("disabled","disabled"):$this.removeAttr("disabled");$(":input",$newUserEmails).attr("disabled","disabled"),$newUserEmails.css("opacity","0.5")}else{$this.removeAttr("disabled"),$(":input",$newUserEmails).removeAttr("disabled"),$newUserEmails.css("opacity","")}}).trigger("change");$("select#ws-plugin--s2member-login-reg-design-enabled").change(function(){var $this=$(this),$loginRegDesign=$("div#ws-plugin--s2member-login-reg-design");if($this.val()==="0"){$(":input",$loginRegDesign).attr("disabled","disabled"),$loginRegDesign.css("opacity","0.5"),$loginRegDesign.hide()}else{$(":input",$loginRegDesign).removeAttr("disabled"),$loginRegDesign.css("opacity",""),$loginRegDesign.show()}}).trigger("change");if($("input#ws-plugin--s2member-custom-reg-fields").length&&$("div#ws-plugin--s2member-custom-reg-field-configuration").length){(function(){var i,fieldDefaults,tools,table,$tools,$table;var $fields=$("input#ws-plugin--s2member-custom-reg-fields");var $configuration=$("div#ws-plugin--s2member-custom-reg-field-configuration");var fields=($fields.val())?$.JSON.parse($fields.val()):[];fields=(fields instanceof Array)?fields:[];fieldDefaults={section:"no",sectitle:"",id:"",label:"",type:"text",deflt:"",options:"",expected:"",required:"yes",levels:"all",editable:"yes",classes:"",styles:"",attrs:""};for(i=0;i<fields.length;i++){fields[i]=$.extend(true,{},fieldDefaults,fields[i])}tools='<div id="ws-plugin--s2member-custom-reg-field-configuration-tools"></div>',table='<table id="ws-plugin--s2member-custom-reg-field-configuration-table"></table>';$configuration.html(tools+table);$tools=$("div#ws-plugin--s2member-custom-reg-field-configuration-tools"),$table=$("table#ws-plugin--s2member-custom-reg-field-configuration-table");ws_plugin__s2member_customRegFieldSectionChange=function(select){var section=$(select).val();var sectitle_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle";(section==="yes")?$(sectitle_trs).css("display",""):$(sectitle_trs).css("display","none")};ws_plugin__s2member_customRegFieldTypeChange=function(select){var type=$(select).val();var deflt_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt",options_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-options",expected_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected";(type.match(/^(text|textarea)#x2F;))?$(deflt_trs).css("display",""):$(deflt_trs).css("display","none");(type.match(/^(select|selects|checkboxes|radios)#x2F;))?$(options_trs).css("display",""):$(options_trs).css("display","none");(type.match(/^(text|textarea)#x2F;))?$(expected_trs).css("display",""):$(expected_trs).css("display","none")};ws_plugin__s2member_customRegFieldDelete=function(index){var newFields=new Array();for(var i=0;i<fields.length;i++){if(i!==index){newFields.push(fields[i])}}fields=newFields,updateFields(),buildTable()};ws_plugin__s2member_customRegFieldMoveUp=function(index){if(typeof fields[index]==="object"&&typeof fields[index-1]==="object"){var prevFieldObj=fields[index-1],thisFieldObj=fields[index];fields[index-1]=thisFieldObj,fields[index]=prevFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldMoveDown=function(index){if(typeof fields[index]==="object"&&typeof fields[index+1]==="object"){var nextFieldObj=fields[index+1],thisFieldObj=fields[index];fields[index+1]=thisFieldObj,fields[index]=nextFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldCreate=function(){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field))){fields.push(field),updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+(fields.length-1);alert('Field created successfully.\n* Remember to "Save All Changes".');$(row).effect("highlight",1500)},500)}};ws_plugin__s2member_customRegFieldUpdate=function(index){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field,index))){fields[index]=field,updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+index;alert('Field updated successfully.\n* Remember to "Save All Changes".');$(row).effect("highlight",1500)},500)}};ws_plugin__s2member_customRegFieldAdd=function(){buildTools(true)};ws_plugin__s2member_customRegFieldEdit=function(index){buildTools(false,index),scrollReset()};ws_plugin__s2member_customRegFieldCancel=function(){buildTools(),scrollReset()};var validateField=function(field,index){var editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,errors=[],options,i;if(typeof field!=="object"||typeof(field=$.extend(true,{},fieldDefaults,field))!=="object"){alert("Invalid field object. Please try again.");return false}field.sectitle=(field.section==="yes")?field.sectitle:"";field.deflt=(field.type.match(/^(text|textarea)#x2F;))?field.deflt:"";field.deflt=(field.type.match(/^(text)#x2F;))?field.deflt.replace(/[\r\n\t ]+/g," "):field.deflt;field.options=(field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?field.options:"";field.expected=(field.type.match(/^(text|textarea)#x2F;))?field.expected:"";if(!field.id){errors.push("Unique Field ID:\nThis is required. Please try again.")}else{if(fieldIdExists(field.id)&&(!editing||field.id!==fields[index].id)){errors.push("Unique Field ID:\nThat Field ID already exists. Please try again.")}}if(!field.label){errors.push("Field Label/Description:\nThis is required. Please try again.")}if(field.type.match(/^(select|selects|checkboxes|radios)#x2F;)&&!field.options){errors.push("Option Configuration File:\nThis is required. Please try again.")}else{if(field.type.match(/^(select|selects|checkboxes|radios)#x2F;)){for(i=0;i<(options=field.options.split(/[\r\n]+/)).length;i++){if(!(options[i]=$.trim(options[i])).match(/^([^\|]*)(\|)([^\|]*)(\|default)?#x2F;)){errors.push("Option Configuration File:\nInvalid configuration at line #"+(i+1)+".");break}}field.options=$.trim(options.join("\n"))}}if(!(field.levels=field.levels.replace(/ /g,""))){errors.push("Applicable Levels:\nThis is required. Please try again.")}else{if(!field.levels.match(/^(all|[0-9,]+)#x2F;)){errors.push("Applicable Levels:\nShould be comma-delimited Levels, or just type: all.\n(examples: 0,1,2,3,4 or type the word: all)")}}if(field.classes&&field.classes.match(/[^a-z 0-9 _ \-]/i)){errors.push("CSS Classes:\nContains invalid characters. Please try again.\n(only: alphanumerics, underscores, hyphens, spaces)")}if(field.styles&&field.styles.match(/["\=\>\<]/)){errors.push('CSS Styles:\nContains invalid characters. Please try again.\n(do NOT use these characters: = " < >)')}if(field.attrs&&field.attrs.match(/[\>\<]/)){errors.push("Other Attributes:\nContains invalid characters. Please try again.\n(do NOT use these characters: < >)")}if(errors.length>0){alert(errors.join("\n\n"));return false}else{return field}};var updateFields=function(){$fields.val(((fields.length>0)?$.JSON.stringify(fields):""))};var fieldId2Var=function(fieldId){return(typeof fieldId==="string")?$.trim(fieldId).toLowerCase().replace(/[^a-z0-9]/g,"_"):""};var fieldTypeDesc=function(type){var types={text:"Text (single line)",textarea:"Textarea (multi-line)",select:"Select Menu (drop-down)",selects:"Select Menu (multi-option)",checkbox:"Checkbox (single)",pre_checkbox:"Checkbox (pre-checked)",checkboxes:"Checkboxes (multi-option)",radios:"Radio Buttons (multi-option)"};if(typeof types[type]==="string"){return types[type]}return""};var fieldIdExists=function(fieldId){for(var i=0;i<fields.length;i++){if(fields[i].id===fieldId){return true}}};var scrollReset=function(){scrollTo(0,$("div.ws-plugin--s2member-custom-reg-fields-section").offset()["top"]-100)};var buildTools=function(adding,index){var i=0,html="",form="",w=0,h=0,editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,displayForm=(adding||editing)?true:false,field=(editing)?$.extend(true,{},fieldDefaults,fields[index]):fieldDefaults;html+='<a href="#" onclick="ws_plugin__s2member_customRegFieldAdd(); return false;">Add New Field</a>';tb_remove(),$("div#ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form").remove();if(displayForm){form+='<div id="ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form">';form+='<table id="ws-plugin--s2member-custom-reg-field-configuration-tools-form">';form+="<tbody>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">Starts A New Section?</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<select property="section" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section" onchange="ws_plugin__s2member_customRegFieldSectionChange(this);">';form+='<option value="no"'+((field.section==="no")?' selected="selected"':"")+'">No (this Field flows normally)</option>';form+='<option value="yes"'+((field.section==="yes")?' selected="selected"':"")+'">Yes (this Field begins a new section)</option>';form+="</select><br />";form+="<small>Optional. Allows Fields to be grouped into sections.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+'><td colspan="2"><hr /></td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+">";form+='<td colspan="2">';form+="Title for this new section? (optional)<br />";form+='<input type="text" property="sectitle" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle" value="'+esc_attr(field.sectitle)+'" /><br />';form+="<small>If empty, a simple divider will be used by default.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-type"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">Form Field Type: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<select property="type" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type" onchange="ws_plugin__s2member_customRegFieldTypeChange(this);">';form+='<option value="text"'+((field.type==="text")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("text"))+"</option>";form+='<option value="textarea"'+((field.type==="textarea")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("textarea"))+"</option>";form+='<option value="select"'+((field.type==="select")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("select"))+"</option>";form+='<option value="selects"'+((field.type==="selects")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("selects"))+"</option>";form+='<option value="checkbox"'+((field.type==="checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkbox"))+"</option>";form+='<option value="pre_checkbox"'+((field.type==="pre_checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("pre_checkbox"))+"</option>";form+='<option value="checkboxes"'+((field.type==="checkboxes")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkboxes"))+"</option>";form+='<option value="radios"'+((field.type==="radios")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("radios"))+"</option>";form+="</select><br />";form+="<small>The options below may change, based on the Field Type you choose here.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-label"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">Field Label/Desc: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<input type="text" property="label" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label" value="'+esc_attr(field.label)+'" /><br />';form+="<small>Examples: <code>Choose Country</code>, <code>Street Address</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-id"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">Unique Field ID: *</label></label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<input type="text" property="id" maxlength="25" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id" value="'+esc_attr(field.id)+'" /><br />';form+="<small>Examples: <code>country_code</code>, <code>street_address</code></small><br />";form+='<small>e.g. <code>[s2Get user_field="country_code" /]</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-required"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">Field Required: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<select property="required" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<option value="yes"'+((field.required==="yes")?' selected="selected"':"")+'">Yes (required)</option>';form+='<option value="no"'+((field.required==="no")?' selected="selected"':"")+'">No (optional)</option>';form+="</select><br />";form+='<small>If <code>yes</code>, only Users/Members will be "required" to enter this field.</small><br />';form+="<small>* Administrators are exempt from this requirement.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt">Default Text Value: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="deflt" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt" rows="1">'+esc_html(field.deflt)+"</textarea><br />";form+="<small>Default value before user input is received.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options">Option Configuration File: * (one option per line)</label><br />';form+="<small>Use a pipe <code>|</code> delimited format: <code>option value|option label</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="options" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options" rows="3">'+esc_html(field.options)+"</textarea><br />";form+="Here is a quick example:<br />";form+="<small>You can also specify a <em>default</em> option:</small><br />";form+="<code>US|United States|default</code><br />";form+="<code>CA|Canada</code><br />";form+="<code>VI|Virgin Islands (U.S.)</code>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">Expected Format: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<select property="expected" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">';form+='<option value=""'+((field.expected==="")?' selected="selected"':"")+'">Anything Goes</option>';form+='<option disabled="disabled"></option>';form+='<optgroup label="Specific Input Types">';form+='<option value="numeric-wp-commas"'+((field.expected==="numeric-wp-commas")?' selected="selected"':"")+'">Numeric (with or without decimals, commas allowed)</option>';form+='<option value="numeric"'+((field.expected==="numeric")?' selected="selected"':"")+'">Numeric (with or without decimals, no commas)</option>';form+='<option value="integer"'+((field.expected==="integer")?' selected="selected"':"")+'">Integer (whole number, without any decimals)</option>';form+='<option value="integer-gt-0"'+((field.expected==="integer-gt-0")?' selected="selected"':"")+'">Integer > 0 (whole number, no decimals, greater than 0)</option>';form+='<option value="float"'+((field.expected==="float")?' selected="selected"':"")+'">Float (floating point number, decimals required)</option>';form+='<option value="float-gt-0"'+((field.expected==="float-gt-0")?' selected="selected"':"")+'">Float > 0 (floating point number, decimals required, greater than 0)</option>';form+='<option value="date"'+((field.expected==="date")?' selected="selected"':"")+'">Date (required date format: dd/mm/yyyy)</option>';form+='<option value="email"'+((field.expected==="email")?' selected="selected"':"")+'">Email (require valid email)</option>';form+='<option value="url"'+((field.expected==="url")?' selected="selected"':"")+'">Full URL (starting with http or https)</option>';form+='<option value="domain"'+((field.expected==="domain")?' selected="selected"':"")+'">Domain Name (domain name only, without http)</option>';form+='<option value="phone"'+((field.expected==="phone")?' selected="selected"':"")+'">Phone # (10 digits w/possible hyphens,spaces,brackets)</option>';form+='<option value="uszip"'+((field.expected==="uszip")?' selected="selected"':"")+'">US Zipcode (5-9 digits w/possible hyphen)</option>';form+='<option value="cazip"'+((field.expected==="cazip")?' selected="selected"':"")+'">Canadian Zipcode (6 alpha-numerics w/possible space)</option>';form+='<option value="uczip"'+((field.expected==="uczip")?' selected="selected"':"")+'">US/Canadian Zipcode (either a US or Canadian zipcode)</option>';form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Any Character Combination">';for(i=1;i<=25;i++){form+='<option value="any-'+i+'"'+((field.expected==="any-"+i)?' selected="selected"':"")+'">Any Character Combination ( '+i+" character minimum )</option>";form+='<option value="any-'+i+'-e"'+((field.expected==="any-"+i+"-e")?' selected="selected"':"")+'">Any Character Combination ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics, Spaces &amp; Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-punctuation-'+i+'"'+((field.expected==="alphanumerics-spaces-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics, Spaces &amp; Punctuation ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-spaces-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-spaces-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics, Spaces &amp; Punctuation ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics &amp; Spaces Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-'+i+'"'+((field.expected==="alphanumerics-spaces-"+i)?' selected="selected"':"")+'">Alphanumerics &amp; Spaces ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-spaces-'+i+'-e"'+((field.expected==="alphanumerics-spaces-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics &amp; Spaces ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics &amp; Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-punctuation-'+i+'"'+((field.expected==="alphanumerics-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics &amp; Punctuation ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics &amp; Punctuation ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-'+i+'"'+((field.expected==="alphanumerics-"+i)?' selected="selected"':"")+'">Alphanumerics ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-'+i+'-e"'+((field.expected==="alphanumerics-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphabetics Only">';for(i=1;i<=25;i++){form+='<option value="alphabetics-'+i+'"'+((field.expected==="alphabetics-"+i)?' selected="selected"':"")+'">Alphabetics ( '+i+" character minimum )</option>";form+='<option value="alphabetics-'+i+'-e"'+((field.expected==="alphabetics-"+i+"-e")?' selected="selected"':"")+'">Alphabetics ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Numeric Digits Only">';for(i=1;i<=25;i++){form+='<option value="numerics-'+i+'"'+((field.expected==="numerics-"+i)?' selected="selected"':"")+'">Numeric Digits ( '+i+" digit minimum )</option>";form+='<option value="numerics-'+i+'-e"'+((field.expected==="numerics-"+i+"-e")?' selected="selected"':"")+'">Numeric Digits ( exactly '+i+" digit"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+="</select><br />";form+="<small>Only Users/Members will be required to meet this criteria.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">Applicable Membership Levels: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<input type="text" property="levels" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels" value="'+esc_attr(field.levels)+'" /><br />';form+="<small>Please use comma-delimited Level #'s: <code>0,1,2,3,4</code> or type: <code>all</code>.</small><br />";form+="<small>This allows you to enable this field - only at specific Membership Levels.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">Allow Profile Edits: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<select property="editable" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<option value="yes"'+((field.editable==="yes")?' selected="selected"':"")+'">Yes (editable)</option>';form+='<option value="no"'+((field.editable==="no")?' selected="selected"':"")+'">No (uneditable after registration)</option>';form+='<option value="no-invisible"'+((field.editable==="no-invisible")?' selected="selected"':"")+'">No (uneditable &amp; totally invisible after registration)</option>';form+='<option value="no-always-invisible"'+((field.editable==="no-always-invisible")?' selected="selected"':"")+'">No (uneditable &amp; totally invisible, both during &amp; after registration)</option>';form+='<option value="yes-invisible"'+((field.editable==="yes-invisible")?' selected="selected"':"")+'">Yes (editable after registration / invisible during registration)</option>';form+="</select><br />";form+="<small>If <code>No</code>, this field will be un-editable after registration.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">CSS Classes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<input type="text" property="classes" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes" value="'+esc_attr(field.classes)+'" /><br />';form+="<small>Example: <code>my-style-1 my-style-2</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">CSS Styles: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<input type="text" property="styles" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles" value="'+esc_attr(field.styles)+'" /><br />';form+="<small>Example: <code>color:#000000; background:#FFFFFF;</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">Other Attributes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<input type="text" property="attrs" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs" value="'+esc_attr(field.attrs)+'" /><br />';form+='<small>Example: <code>onkeyup="" onblur=""</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons">';form+='<td align="left">';form+='<input type="button" value="Cancel" onclick="ws_plugin__s2member_customRegFieldCancel();" />';form+="</td>";form+='<td align="right">';form+='<input type="button" value="'+((editing)?"Update This Field":"Create Registration Field")+'" onclick="'+((editing)?"ws_plugin__s2member_customRegFieldUpdate("+index+");":"ws_plugin__s2member_customRegFieldCreate();")+'" />';form+="</td>";form+="</tr>";form+="</tbody>";form+="</table>";form+="<div>";$("body").append(form);tb_show(((editing)?"Editing Registration/Profile Field":"New Custom Registration/Profile Field"),"#TB_inline?inlineId=ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form");$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form").show()}$tools.html(html)};var buildTable=function(){var l=fields.length,i=0,html="",eo="o";html+="<tbody>";html+="<tr>";html+="<th>Order</th>";html+="<th>Field Type</th>";html+="<th>Unique ID</th>";html+="<th>Required</th>";html+="<th>Levels</th>";html+="<th>- Tools -</th>";html+="</tr>";if(fields.length>0){for(i=0;i<fields.length;i++){html+='<tr class="'+esc_attr((eo=(eo==="o")?"e":"o"))+((fields[i].section==="yes")?" s":"")+" ws-plugin--s2member-custom-reg-field-configuration-table-row-"+i+'">';html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-move-up" href="#" onclick="ws_plugin__s2member_customRegFieldMoveUp('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-move-down" href="#" onclick="ws_plugin__s2member_customRegFieldMoveDown('+i+'); return false;"></a></td>';html+='<td nowrap="nowrap">'+esc_html(fieldTypeDesc(fields[i].type))+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].id)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].required)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].levels)+"</td>";html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-edit" href="#" onclick="ws_plugin__s2member_customRegFieldEdit('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-delete" href="#" onclick="ws_plugin__s2member_customRegFieldDelete('+i+'); return false;"></a></td>';html+="</tr>"}}else{html+="<tr>";html+='<td colspan="6">No Custom Fields are configured.</td>';html+="</tr>"}html+="</tbody>";$table.html(html)};buildTools(),buildTable()})()}}if(location.href.match(/page\=ws-plugin--s2member-res-ops/)){$("input#ws-plugin--s2member-brute-force-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's Brute Force Restriction Logs have all been reset."),$this.val("Reset Brute Force Logs")});return false});$("input#ws-plugin--s2member-ip-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's IP Restriction Logs have all been reset."),$this.val("Reset IP Restriction Logs")});return false});$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').change(function(){var thisChange=$(this).val();$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="all"&&this.checked){$this.nextAll(checkboxes).attr({checked:"checked",disabled:"disabled"})}else{if(val==="all"&&!this.checked){$this.nextAll(checkboxes).removeAttr("disabled");(thisChange==="all")?$this.nextAll(checkboxes).removeAttr("checked"):null}}})}).last().trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-down-ops/)){var updateCloudFrontPrivateKey=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyEntry=$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry");var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyEntryValue=$.trim($visiblePrivateKeyEntry.val());if((hiddenPrivateKeyValue&&!visiblePrivateKeyEntryValue)||visiblePrivateKeyEntryValue.match(/[^\r\n\u25CF]/)){$hiddenPrivateKey.val(visiblePrivateKeyEntryValue),$visiblePrivateKeyEntry.val(visiblePrivateKeyEntryValue.replace(/[^\r\n]/g,String.fromCharCode(9679)))}};$("form#ws-plugin--s2member-options-form").submit(updateCloudFrontPrivateKey);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontPrivateKey).trigger("change");var updateCloudFrontDistroCfgs=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyId=$("input#ws-plugin--s2member-amazon-cf-files-private-key-id");var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistrosStatus=$("input#ws-plugin--s2member-amazon-cf-files-distros-auto-config-status");var autoConfigDistrosStatusValue=$.trim($autoConfigDistrosStatus.val());var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyIdValue=$.trim($visiblePrivateKeyId.val());var hiddenPrivateKeyPrevConfigValue=$.trim($hiddenPrivateKey.attr("data-s-prev-config-value")),visiblePrivateKeyIdPrevConfigValue=$.trim($visiblePrivateKeyId.attr("data-s-prev-config-value"));if(autoConfigDistrosStatusValue==="configured"&&((visiblePrivateKeyIdPrevConfigValue&&visiblePrivateKeyIdValue!==visiblePrivateKeyIdPrevConfigValue)||(hiddenPrivateKeyPrevConfigValue&&hiddenPrivateKeyValue!==hiddenPrivateKeyPrevConfigValue))){alert("s2Member will need to delete and re-configure your Amazon CloudFront distributions if you change this. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}else{if(autoConfigDistrosStatusValue!=="configured"&&visiblePrivateKeyIdValue&&hiddenPrivateKeyValue){alert("s2Member will need to auto-configure your Amazon CloudFront distributions for you. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}}};$("input#ws-plugin--s2member-amazon-cf-files-private-key-id").change(updateCloudFrontDistroCfgs);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontDistroCfgs);$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros-w-cnames").change(function(){var $this=$(this),thisChecked=(this.checked)?true:false;var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistroCnames=$("div#ws-plugin--s2member-amazon-cf-files-auto-configure-distro-cnames");(thisChecked)?$autoConfigDistroCnames.show():$autoConfigDistroCnames.hide();(thisChecked)?$autoConfigDistros.attr("checked","checked"):null}).trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-paypal-ops/)){$("select#ws-plugin--s2member-auto-eot-system-enabled").change(function(){var $this=$(this),val=$this.val();var $viaCron=$("p#ws-plugin--s2member-auto-eot-system-enabled-via-cron");if(val==2){$viaCron.show()}else{$viaCron.hide()}})}if(location.href.match(/page\=ws-plugin--s2member-paypal-buttons/)){$("div.ws-menu-page select[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification)-term#x2F;)}).change(function(){var button=this.id.replace(/^ws-plugin--s2member-(.+?)-term#x2F;g,"$1");var trialDisabled=($(this).val().split("-")[2].replace(/[^0-1BN]/g,"")==="BN")?1:0;$("p#ws-plugin--s2member-"+button+"-trial-line").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-trial-then").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-20p-rule").css("display",(trialDisabled?"none":""));(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-period").val(0):null;(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-amount").val("0.00"):null});$("div.ws-menu-page input[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification|ccap)-ccaps#x2F;)}).keyup(function(){var value=this.value.replace(/^(-all|-al|-a|-)[;,]*/gi,""),_all=(this.value.match(/^(-all|-al|-a|-)[;,]*/i))?"-all,":"";if(value.match(/[^a-z_0-9,]/)){this.value=_all+$.trim($.trim(value).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase())}});ws_plugin__s2member_paypalButtonGenerate=function(button){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="",labels={};eval("<?php echo c_ws_plugin__s2member_utils_strings::esc_dq($labels); ?>");var shortCode=$("input#ws-plugin--s2member-"+button+"-shortcode");var code=$("textarea#ws-plugin--s2member-"+button+"-button");var modLevel=$("select#ws-plugin--s2member-modification-level");var level=(button==="modification")?modLevel.val().split(":",2)[1]:button.replace(/^level/,"");var label=labels["level"+level].replace(/"/g,"");var desc=$.trim($("input#ws-plugin--s2member-"+button+"-desc").val().replace(/"/g,""));var trialAmount=$("input#ws-plugin--s2member-"+button+"-trial-amount").val().replace(/[^0-9\.]/g,"");var trialPeriod=$("input#ws-plugin--s2member-"+button+"-trial-period").val().replace(/[^0-9]/g,"");var trialTerm=$("select#ws-plugin--s2member-"+button+"-trial-term").val().replace(/[^A-Z]/g,"");var regAmount=$("input#ws-plugin--s2member-"+button+"-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var regRecurTimes="",regRecurRetry="1";var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-"+button+"-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-"+button+"-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();trialPeriod=(regRecur==="BN")?"0":trialPeriod;trialAmount=(!trialAmount||isNaN(trialAmount)||trialAmount<0.01||trialPeriod<=0)?"0":trialAmount;var levelCcapsPer=(regRecur==="BN"&&regTerm!=="L")?level+":"+cCaps+":"+regPeriod+" "+regTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(trialAmount!=="0"&&(isNaN(trialAmount)||trialAmount<0)){alert("— Oops, a slight problem: —\n\nWhen provided, Trial Amount must be >= 0.00");return false}else{if(trialAmount!=="0"&&trialAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Trial Amount is: 10000.00");return false}else{if(trialTerm==="D"&&trialPeriod>90){alert("— Oops, a slight problem: —\n\nMaximum Trial Days is: 90.\nIf you want to offer more than 90 days, please choose Weeks or Months from the drop-down.");return false}else{if(trialTerm==="W"&&trialPeriod>52){alert("— Oops, a slight problem: —\n\nMaximum Trial Weeks is: 52.\nIf you want to offer more than 52 weeks, please choose Months from the drop-down.");return false}else{if(trialTerm==="M"&&trialPeriod>24){alert("— Oops, a slight problem: —\n\nMaximum Trial Months is: 24.\nIf you want to offer more than 24 months, please choose Years from the drop-down.");return false}else{if(trialTerm==="Y"&&trialPeriod>5){alert("— Oops, a slight problem: —\n\nMax Trial Period Years is: 5.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}}}}}}code.html(code.val().replace(/ \<\!--(\<input type\="hidden" name\="(amount|src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)--\>/g," $1"));(parseInt(trialPeriod)<=0)?code.html(code.val().replace(/ (\<input type\="hidden" name\="(a1|p1|t1)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick$3")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="(src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick-subscriptions$3")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="amount" value\="(.*?)" \/\>)/g," <!--$1-->")):null;shortCodeTemplateAttrs+=(button==="modification")?'modify="1" ':"";shortCodeTemplateAttrs+='level="'+esc_attr(level)+'" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'" custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"';shortCodeTemplateAttrs+=' ta="'+esc_attr(trialAmount)+'" tp="'+esc_attr(trialPeriod)+'" tt="'+esc_attr(trialTerm)+'" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'" rrt="'+esc_attr(regRecurTimes)+'" rra="'+esc_attr(regRecurRetry)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="modify" value\="(.*?)"/,' name="modify" value="'+((button==="modification")?"1":"0")+'"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="src" value\="(.*?)"/,' name="src" value="'+esc_attr(regRecur)+'"'));code.html(code.val().replace(/ name\="srt" value\="(.*?)"/,' name="srt" value="'+esc_attr(regRecurTimes)+'"'));code.html(code.val().replace(/ name\="sra" value\="(.*?)"/,' name="sra" value="'+esc_attr(regRecurRetry)+'"'));code.html(code.val().replace(/ name\="a1" value\="(.*?)"/,' name="a1" value="'+esc_attr(trialAmount)+'"'));code.html(code.val().replace(/ name\="p1" value\="(.*?)"/,' name="p1" value="'+esc_attr(trialPeriod)+'"'));code.html(code.val().replace(/ name\="t1" value\="(.*?)"/,' name="t1" value="'+esc_attr(trialTerm)+'"'));code.html(code.val().replace(/ name\="a3" value\="(.*?)"/,' name="a3" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="p3" value\="(.*?)"/,' name="p3" value="'+esc_attr(regPeriod)+'"'));code.html(code.val().replace(/ name\="t3" value\="(.*?)"/,' name="t3" value="'+esc_attr(regTerm)+'"'));$("div#ws-plugin--s2member-"+button+"-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));(button==="modification")?alert("Your Modification Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Modification Buttons should be displayed to existing Users/Members, and they should be logged-in, BEFORE clicking this Button."):alert("Your Button has been generated.\nPlease copy/paste the Shortcode Format into your Membership Options Page.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalCcapButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-ccap-shortcode");var code=$("textarea#ws-plugin--s2member-ccap-button");var desc=$.trim($("input#ws-plugin--s2member-ccap-desc").val().replace(/"/g,""));var regAmount=$("input#ws-plugin--s2member-ccap-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-ccap-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-ccap-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-ccap-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-ccap-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-ccap-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();var levelCcapsPer=(regRecur==="BN"&&regTerm!=="L")?"*:"+cCaps+":"+regPeriod+" "+regTerm:"*:"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(!cCaps||cCaps==="-all"){alert("— Oops, a slight problem: —\n\nPlease provide at least one Custom Capability.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}shortCodeTemplateAttrs+='level="*" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-ccap-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Independent Custom Capability Buttons should ONLY be displayed to existing Users/Members, and they MUST be logged-in, BEFORE clicking this Button.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalSpButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-sp-shortcode");var code=$("textarea#ws-plugin--s2member-sp-button");var leading=$("select#ws-plugin--s2member-sp-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-hours").val().replace(/[^0-9]/g,"");var regAmount=$("input#ws-plugin--s2member-sp-amount").val().replace(/[^0-9\.]/g,"");var desc=$.trim($("input#ws-plugin--s2member-sp-desc").val().replace(/"/g,""));var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-sp-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-sp-currency").val().replace(/[^A-Z]/g,"");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member -› Restriction Options -› Specific Post/Page Access.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}var spIdsHours="sp:"+ids+":"+hours;shortCodeTemplateAttrs+='sp="1" ids="'+esc_attr(ids)+'" exp="'+esc_attr(hours)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(spIdsHours)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-sp-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your WordPress Editor.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalRegLinkGenerate=function(){var level=$("select#ws-plugin--s2member-reg-link-level").val().replace(/[^0-9]/g,"");var subscrID=$.trim($("input#ws-plugin--s2member-reg-link-subscr-id").val());var custom=$.trim($("input#ws-plugin--s2member-reg-link-custom").val());var cCaps=$.trim($.trim($("input#ws-plugin--s2member-reg-link-ccaps").val()).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());var fixedTerm=$.trim($("input#ws-plugin--s2member-reg-link-fixed-term").val().replace(/[^A-Z 0-9]/gi,"").toUpperCase());var $link=$("p#ws-plugin--s2member-reg-link"),$loading=$("img#ws-plugin--s2member-reg-link-loading");var levelCcapsPer=(fixedTerm&&!fixedTerm.match(/L#x2F;))?level+":"+cCaps+":"+fixedTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(!subscrID){alert("— Oops, a slight problem: —\n\nPaid Subscr. ID is a required value.");return false}else{if(!custom||custom.indexOf('<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq ($_SERVER["HTTP_HOST"]); ?>')!==0){alert("— Oops, a slight problem: —\n\nThe Custom Value MUST start with your domain name.");return false}else{if(fixedTerm&&!fixedTerm.match(/^[1-9]+ (D|W|M|Y|L)#x2F;)){alert("— Oops, a slight problem: —\n\nThe Fixed Term Length is not formatted properly.");return false}}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_reg_access_link_via_ajax",ws_plugin__s2member_reg_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-reg-access-link-via-ajax")); ?>',s2member_reg_access_link_subscr_gateway:"paypal",s2member_reg_access_link_subscr_id:subscrID,s2member_reg_access_link_custom:custom,s2member_reg_access_link_item_number:levelCcapsPer},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false};ws_plugin__s2member_paypalSpLinkGenerate=function(){var leading=$("select#ws-plugin--s2member-sp-link-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-link-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-link-hours").val().replace(/[^0-9]/g,"");var $link=$("p#ws-plugin--s2member-sp-link"),$loading=$("img#ws-plugin--s2member-sp-link-loading");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member -› Restriction Options -› Specific Post/Page Access.");return false}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_sp_access_link_via_ajax",ws_plugin__s2member_sp_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link-via-ajax")); ?>',s2member_sp_access_link_ids:ids,s2member_sp_access_link_hours:hours},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false}}if(location.href.match(/page\=ws-plugin--s2member-els-ops/)){$("select#ws-plugin--s2member-custom-reg-opt-in").change(function(){var $this=$(this),val=$this.val();var $rows=$("tr.ws-plugin--s2member-custom-reg-opt-in-label-row");var $prevImg=$("img.ws-plugin--s2member-custom-reg-opt-in-label-prev-img");if(val<=0){$rows.css("display","none"),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png#x2F;,"/unchecked.png"))}else{if(val==1){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/unchecked\.png#x2F;,"/checked.png"))}else{if(val==2){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png#x2F;,"/unchecked.png"))}}}});$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').change(function(){var thisChange=$(this).val(),checkedIndexes=[];$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="removal-deletion"&&this.checked){$this.nextAll(checkboxes).slice(0,2).attr({checked:"checked",disabled:"disabled"})}else{if(val==="removal-deletion"&&!this.checked){$this.nextAll(checkboxes).slice(0,2).removeAttr("disabled");(thisChange==="removal-deletion")?$this.nextAll(checkboxes).slice(0,2).removeAttr("checked"):null}else{if(val==="modification"&&this.checked){$this.nextAll(checkboxes).slice(0,3).attr({checked:"checked",disabled:"disabled"})}else{if(val==="modification"&&!this.checked){(thisChange==="modification")?$this.nextAll(checkboxes).slice(0,3).removeAttr("checked"):null;$this.nextAll(checkboxes).slice(0,3).removeAttr("disabled")}}}}}).each(function(index){(this.checked)?checkedIndexes.push(index):null});$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").removeAttr("disabled");if($.inArray(3,checkedIndexes)===-1&&$.inArray(4,checkedIndexes)===-1&&$.inArray(5,checkedIndexes)===-1&&$.inArray(6,checkedIndexes)===-1){$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").attr("disabled","disabled")}}).last().trigger("change")}});
1
+ jQuery(document).ready(function($){var esc_attr=esc_html=function(str){return String(str).replace(/"/g,"&quot;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;")};if(location.href.match(/page\=ws-plugin--s2member/)){$("input.ws-plugin--s2member-update-roles-button, input.ws-plugin--s2member-reset-roles-button").click(function(){var $this=$(this);$this.val("one moment please ...");var levels='<?php echo (int)$GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; ?>';var resetUpdate=($this.hasClass("ws-plugin--s2member-reset-roles-button"))?"Reset":"Update";$.post(ajaxurl,{action:"ws_plugin__s2member_update_roles_via_ajax",ws_plugin__s2member_update_roles_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-update-roles-via-ajax")); ?>'},function(response){if(response==="1"){alert("s2Member's Roles/Capabilities "+((resetUpdate.toLowerCase()==="reset")?"have been successfully reset":"updated successfully")+".\nYour installation of s2Member has Membership Levels 0-"+levels+"."),$this.val(resetUpdate+" Roles/Capabilities")}else{if(response==="l"){alert("Sorry, your request failed.\ns2Member's Roles/Capabilities are locked by Filter:\nws_plugin__s2member_lock_roles_caps"),$this.val(resetUpdate+" Roles/Capabilities")}else{alert("Sorry, your request failed.\nAccess denied. Do you have the ability to `create_users`?"),$this.val(resetUpdate+" Roles/Capabilities")}}});return false})}if(location.href.match(/page\=ws-plugin--s2member-logs/)){$("input#ws-plugin--s2member-gateway-debug-logs-extensive-1").click(function(){var $this=$(this),thisChecked=(this.checked)?true:false;if(thisChecked){$("input#ws-plugin--s2member-gateway-debug-logs-1").attr("checked","checked")}});var $toggles=$("a.ws-plugin--s2member-log-file-viewport-toggle");$toggles.click(function(){$("textarea#ws-plugin--s2member-log-file-viewer").each(function(){var $viewer=$(this);if($viewer.attr("data-state")!=="expanded"){$viewer.css({height:($viewer.prop("scrollHeight")+50)+"px","overflow-y":"auto"});$toggles.html("&#8657; normalize viewport &#10073;");$viewer.attr("data-state","expanded")}else{$viewer.css({height:"auto","overflow-y":"scroll"});$toggles.html("&#8659; expand viewport &#8659;");$viewer.attr("data-state","scrolling")}});return false})}if(location.href.match(/page\=ws-plugin--s2member-mms-ops/)){$("select#ws-plugin--s2member-mms-registration-file").change(function(){if($(this).val()==="wp-signup"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").show(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").hide(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").show();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0")[((gv==="all")?"show":"hide")]();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val(((gv==="all")?((l0v>0)?l0v:"1"):"0"))}else{if($(this).val()==="wp-login"){var gv=$("select#ws-plugin--s2member-mms-registration-grants").val(),l0v=$("input#ws-plugin--s2member-mms-registration-blogs-level0").val();$("div#ws-plugin--s2member-mms-registration-support-package-details-wrapper").hide(),$("div.ws-plugin--s2member-mms-registration-wp-login, table.ws-plugin--s2member-mms-registration-wp-login").show(),$("div.ws-plugin--s2member-mms-registration-wp-signup, table.ws-plugin--s2member-mms-registration-wp-signup").hide();$("div.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0, table.ws-plugin--s2member-mms-registration-wp-signup-blogs-level0").hide();$("input#ws-plugin--s2member-mms-registration-blogs-level0").val("0")}}}).trigger("change");$("select#ws-plugin--s2member-mms-registration-grants").change(function(){$("select#ws-plugin--s2member-mms-registration-file").trigger("change")})}if(location.href.match(/page\=ws-plugin--s2member-gen-ops/)){ws_plugin__s2member_generateSecurityKey=function(){var mt_rand=function(min,max){min=(arguments.length<1)?0:min;max=(arguments.length<2)?2147483647:max;return Math.floor(Math.random()*(max-min+1))+min};var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()";for(var i=0,key="";i<64;i++){key+=chars.substr(mt_rand(0,chars.length-1),1)}$("input#ws-plugin--s2member-sec-encryption-key").val(key);return false};ws_plugin__s2member_enableSecurityKey=function(){if(confirm("Edit Key? Are you sure?\nThis could break your installation!\n\n*Note* If you've been testing s2Member, feel free to change this Key before you go live. Just don't go live, and then change it. You'll have unhappy Customers. Data corruption WILL occur! For your safety, s2Member keeps a history of the last 10 Keys that you've used. If you get yourself into a real situation, s2Member will let you revert back to a previous Key.")){$("input#ws-plugin--s2member-sec-encryption-key").removeAttr("disabled")}return false};ws_plugin__s2member_securityKeyHistory=function(){$("div#ws-plugin--s2member-sec-encryption-key-history").toggle();return false};$("select#ws-plugin--s2member-new-user-emails-enabled").change(function(){var $pluggable=$("input#ws-plugin--s2member-pluggables-wp-new-user-notification"),$this=$(this),$newUserEmails=$("div#ws-plugin--s2member-new-user-emails");if($pluggable.val()==="0"||$this.val()==="0"){($pluggable.val()==="0")?$this.attr("disabled","disabled"):$this.removeAttr("disabled");$(":input",$newUserEmails).attr("disabled","disabled"),$newUserEmails.css("opacity","0.5")}else{$this.removeAttr("disabled"),$(":input",$newUserEmails).removeAttr("disabled"),$newUserEmails.css("opacity","")}}).trigger("change");$("select#ws-plugin--s2member-login-reg-design-enabled").change(function(){var $this=$(this),$loginRegDesign=$("div#ws-plugin--s2member-login-reg-design");if($this.val()==="0"){$(":input",$loginRegDesign).attr("disabled","disabled"),$loginRegDesign.css("opacity","0.5"),$loginRegDesign.hide()}else{$(":input",$loginRegDesign).removeAttr("disabled"),$loginRegDesign.css("opacity",""),$loginRegDesign.show()}}).trigger("change");if($("input#ws-plugin--s2member-custom-reg-fields").length&&$("div#ws-plugin--s2member-custom-reg-field-configuration").length){(function(){var i,fieldDefaults,tools,table,$tools,$table;var $fields=$("input#ws-plugin--s2member-custom-reg-fields");var $configuration=$("div#ws-plugin--s2member-custom-reg-field-configuration");var fields=($fields.val())?$.JSON.parse($fields.val()):[];fields=(fields instanceof Array)?fields:[];fieldDefaults={section:"no",sectitle:"",id:"",label:"",type:"text",deflt:"",options:"",expected:"",required:"yes",levels:"all",editable:"yes",classes:"",styles:"",attrs:""};for(i=0;i<fields.length;i++){fields[i]=$.extend(true,{},fieldDefaults,fields[i])}tools='<div id="ws-plugin--s2member-custom-reg-field-configuration-tools"></div>',table='<table id="ws-plugin--s2member-custom-reg-field-configuration-table"></table>';$configuration.html(tools+table);$tools=$("div#ws-plugin--s2member-custom-reg-field-configuration-tools"),$table=$("table#ws-plugin--s2member-custom-reg-field-configuration-table");ws_plugin__s2member_customRegFieldSectionChange=function(select){var section=$(select).val();var sectitle_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle";(section==="yes")?$(sectitle_trs).css("display",""):$(sectitle_trs).css("display","none")};ws_plugin__s2member_customRegFieldTypeChange=function(select){var type=$(select).val();var deflt_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt",options_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-options",expected_trs="tr.ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected";(type.match(/^(text|textarea)#x2F;))?$(deflt_trs).css("display",""):$(deflt_trs).css("display","none");(type.match(/^(select|selects|checkboxes|radios)#x2F;))?$(options_trs).css("display",""):$(options_trs).css("display","none");(type.match(/^(text|textarea)#x2F;))?$(expected_trs).css("display",""):$(expected_trs).css("display","none")};ws_plugin__s2member_customRegFieldDelete=function(index){var newFields=new Array();for(var i=0;i<fields.length;i++){if(i!==index){newFields.push(fields[i])}}fields=newFields,updateFields(),buildTable()};ws_plugin__s2member_customRegFieldMoveUp=function(index){if(typeof fields[index]==="object"&&typeof fields[index-1]==="object"){var prevFieldObj=fields[index-1],thisFieldObj=fields[index];fields[index-1]=thisFieldObj,fields[index]=prevFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldMoveDown=function(index){if(typeof fields[index]==="object"&&typeof fields[index+1]==="object"){var nextFieldObj=fields[index+1],thisFieldObj=fields[index];fields[index+1]=thisFieldObj,fields[index]=nextFieldObj;updateFields(),buildTable()}};ws_plugin__s2member_customRegFieldCreate=function(){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field))){fields.push(field),updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+(fields.length-1);alert('Field created successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldUpdate=function(index){var $table=$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form"),field={};$(":input[property]",$table).each(function(){var $this=$(this),property=$this.attr("property"),val=$.trim($this.val());field[property]=val});if((field=validateField(field,index))){fields[index]=field,updateFields(),buildTools(),buildTable(),scrollReset();setTimeout(function(){var row="tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-"+index;alert('Field updated successfully.\n* Remember to "Save All Changes".')},500)}};ws_plugin__s2member_customRegFieldAdd=function(){buildTools(true)};ws_plugin__s2member_customRegFieldEdit=function(index){buildTools(false,index),scrollReset()};ws_plugin__s2member_customRegFieldCancel=function(){buildTools(),scrollReset()};var validateField=function(field,index){var editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,errors=[],options,i;if(typeof field!=="object"||typeof(field=$.extend(true,{},fieldDefaults,field))!=="object"){alert("Invalid field object. Please try again.");return false}field.sectitle=(field.section==="yes")?field.sectitle:"";field.deflt=(field.type.match(/^(text|textarea)#x2F;))?field.deflt:"";field.deflt=(field.type.match(/^(text)#x2F;))?field.deflt.replace(/[\r\n\t ]+/g," "):field.deflt;field.options=(field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?field.options:"";field.expected=(field.type.match(/^(text|textarea)#x2F;))?field.expected:"";if(!field.id){errors.push("Unique Field ID:\nThis is required. Please try again.")}else{if(fieldIdExists(field.id)&&(!editing||field.id!==fields[index].id)){errors.push("Unique Field ID:\nThat Field ID already exists. Please try again.")}}if(!field.label){errors.push("Field Label/Description:\nThis is required. Please try again.")}if(field.type.match(/^(select|selects|checkboxes|radios)#x2F;)&&!field.options){errors.push("Option Configuration File:\nThis is required. Please try again.")}else{if(field.type.match(/^(select|selects|checkboxes|radios)#x2F;)){for(i=0;i<(options=field.options.split(/[\r\n]+/)).length;i++){if(!(options[i]=$.trim(options[i])).match(/^([^\|]*)(\|)([^\|]*)(\|default)?#x2F;)){errors.push("Option Configuration File:\nInvalid configuration at line #"+(i+1)+".");break}}field.options=$.trim(options.join("\n"))}}if(!(field.levels=field.levels.replace(/ /g,""))){errors.push("Applicable Levels:\nThis is required. Please try again.")}else{if(!field.levels.match(/^(all|[0-9,]+)#x2F;)){errors.push("Applicable Levels:\nShould be comma-delimited Levels, or just type: all.\n(examples: 0,1,2,3,4 or type the word: all)")}}if(field.classes&&field.classes.match(/[^a-z 0-9 _ \-]/i)){errors.push("CSS Classes:\nContains invalid characters. Please try again.\n(only: alphanumerics, underscores, hyphens, spaces)")}if(field.styles&&field.styles.match(/["\=\>\<]/)){errors.push('CSS Styles:\nContains invalid characters. Please try again.\n(do NOT use these characters: = " < >)')}if(field.attrs&&field.attrs.match(/[\>\<]/)){errors.push("Other Attributes:\nContains invalid characters. Please try again.\n(do NOT use these characters: < >)")}if(errors.length>0){alert(errors.join("\n\n"));return false}else{return field}};var updateFields=function(){$fields.val(((fields.length>0)?$.JSON.stringify(fields):""))};var fieldId2Var=function(fieldId){return(typeof fieldId==="string")?$.trim(fieldId).toLowerCase().replace(/[^a-z0-9]/g,"_"):""};var fieldTypeDesc=function(type){var types={text:"Text (single line)",textarea:"Textarea (multi-line)",select:"Select Menu (drop-down)",selects:"Select Menu (multi-option)",checkbox:"Checkbox (single)",pre_checkbox:"Checkbox (pre-checked)",checkboxes:"Checkboxes (multi-option)",radios:"Radio Buttons (multi-option)"};if(typeof types[type]==="string"){return types[type]}return""};var fieldIdExists=function(fieldId){for(var i=0;i<fields.length;i++){if(fields[i].id===fieldId){return true}}};var scrollReset=function(){scrollTo(0,$("div.ws-plugin--s2member-custom-reg-fields-section").offset()["top"]-100)};var buildTools=function(adding,index){var i=0,html="",form="",w=0,h=0,editing=(typeof index==="number"&&typeof fields[index]==="object")?true:false,displayForm=(adding||editing)?true:false,field=(editing)?$.extend(true,{},fieldDefaults,fields[index]):fieldDefaults;html+='<a href="#" onclick="ws_plugin__s2member_customRegFieldAdd(); return false;">Add New Field</a>';tb_remove(),$("div#ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form").remove();if(displayForm){form+='<div id="ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form">';form+='<table id="ws-plugin--s2member-custom-reg-field-configuration-tools-form">';form+="<tbody>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">Starts A New Section?</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section">';form+='<td colspan="2">';form+='<select property="section" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-section" onchange="ws_plugin__s2member_customRegFieldSectionChange(this);">';form+='<option value="no"'+((field.section==="no")?' selected="selected"':"")+'">No (this Field flows normally)</option>';form+='<option value="yes"'+((field.section==="yes")?' selected="selected"':"")+'">Yes (this Field begins a new section)</option>';form+="</select><br />";form+="<small>Optional. Allows Fields to be grouped into sections.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+'><td colspan="2"><hr /></td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle ws-plugin--s2member-custom-reg-field-configuration-tools-form-section"'+((field.section==="yes")?"":' style="display:none;"')+">";form+='<td colspan="2">';form+="Title for this new section? (optional)<br />";form+='<input type="text" property="sectitle" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-sectitle" value="'+esc_attr(field.sectitle)+'" /><br />';form+="<small>If empty, a simple divider will be used by default.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-type"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">Form Field Type: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type">';form+='<td colspan="2">';form+='<select property="type" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-type" onchange="ws_plugin__s2member_customRegFieldTypeChange(this);">';form+='<option value="text"'+((field.type==="text")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("text"))+"</option>";form+='<option value="textarea"'+((field.type==="textarea")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("textarea"))+"</option>";form+='<option value="select"'+((field.type==="select")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("select"))+"</option>";form+='<option value="selects"'+((field.type==="selects")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("selects"))+"</option>";form+='<option value="checkbox"'+((field.type==="checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkbox"))+"</option>";form+='<option value="pre_checkbox"'+((field.type==="pre_checkbox")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("pre_checkbox"))+"</option>";form+='<option value="checkboxes"'+((field.type==="checkboxes")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("checkboxes"))+"</option>";form+='<option value="radios"'+((field.type==="radios")?' selected="selected"':"")+'">'+esc_html(fieldTypeDesc("radios"))+"</option>";form+="</select><br />";form+="<small>The options below may change, based on the Field Type you choose here.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-label"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">Field Label/Desc: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label">';form+='<td colspan="2">';form+='<input type="text" property="label" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-label" value="'+esc_attr(field.label)+'" /><br />';form+="<small>Examples: <code>Choose Country</code>, <code>Street Address</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-id"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">Unique Field ID: *</label></label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id">';form+='<td colspan="2">';form+='<input type="text" property="id" maxlength="25" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-id" value="'+esc_attr(field.id)+'" /><br />';form+="<small>Examples: <code>country_code</code>, <code>street_address</code></small><br />";form+='<small>e.g. <code>[s2Get user_field="country_code" /]</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-required"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">Field Required: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<td colspan="2">';form+='<select property="required" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-required">';form+='<option value="yes"'+((field.required==="yes")?' selected="selected"':"")+'">Yes (required)</option>';form+='<option value="no"'+((field.required==="no")?' selected="selected"':"")+'">No (optional)</option>';form+="</select><br />";form+='<small>If <code>yes</code>, only Users/Members will be "required" to enter this field.</small><br />';form+="<small>* Administrators are exempt from this requirement.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt">Default Text Value: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="deflt" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-deflt" rows="1">'+esc_html(field.deflt)+"</textarea><br />";form+="<small>Default value before user input is received.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options">Option Configuration File: * (one option per line)</label><br />';form+="<small>Use a pipe <code>|</code> delimited format: <code>option value|option label</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options"'+((field.type.match(/^(select|selects|checkboxes|radios)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<textarea property="options" wrap="off" spellcheck="false" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-options" rows="3">'+esc_html(field.options)+"</textarea><br />";form+="Here is a quick example:<br />";form+="<small>You can also specify a <em>default</em> option:</small><br />";form+="<code>US|United States|default</code><br />";form+="<code>CA|Canada</code><br />";form+="<code>VI|Virgin Islands (U.S.)</code>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+'><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">Expected Format: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected"'+((field.type.match(/^(text|textarea)#x2F;))?"":' style="display:none;"')+">";form+='<td colspan="2">';form+='<select property="expected" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-expected">';form+='<option value=""'+((field.expected==="")?' selected="selected"':"")+'">Anything Goes</option>';form+='<option disabled="disabled"></option>';form+='<optgroup label="Specific Input Types">';form+='<option value="numeric-wp-commas"'+((field.expected==="numeric-wp-commas")?' selected="selected"':"")+'">Numeric (with or without decimals, commas allowed)</option>';form+='<option value="numeric"'+((field.expected==="numeric")?' selected="selected"':"")+'">Numeric (with or without decimals, no commas)</option>';form+='<option value="integer"'+((field.expected==="integer")?' selected="selected"':"")+'">Integer (whole number, without any decimals)</option>';form+='<option value="integer-gt-0"'+((field.expected==="integer-gt-0")?' selected="selected"':"")+'">Integer > 0 (whole number, no decimals, greater than 0)</option>';form+='<option value="float"'+((field.expected==="float")?' selected="selected"':"")+'">Float (floating point number, decimals required)</option>';form+='<option value="float-gt-0"'+((field.expected==="float-gt-0")?' selected="selected"':"")+'">Float > 0 (floating point number, decimals required, greater than 0)</option>';form+='<option value="date"'+((field.expected==="date")?' selected="selected"':"")+'">Date (required date format: dd/mm/yyyy)</option>';form+='<option value="email"'+((field.expected==="email")?' selected="selected"':"")+'">Email (require valid email)</option>';form+='<option value="url"'+((field.expected==="url")?' selected="selected"':"")+'">Full URL (starting with http or https)</option>';form+='<option value="domain"'+((field.expected==="domain")?' selected="selected"':"")+'">Domain Name (domain name only, without http)</option>';form+='<option value="phone"'+((field.expected==="phone")?' selected="selected"':"")+'">Phone # (10 digits w/possible hyphens,spaces,brackets)</option>';form+='<option value="uszip"'+((field.expected==="uszip")?' selected="selected"':"")+'">US Zipcode (5-9 digits w/possible hyphen)</option>';form+='<option value="cazip"'+((field.expected==="cazip")?' selected="selected"':"")+'">Canadian Zipcode (6 alpha-numerics w/possible space)</option>';form+='<option value="uczip"'+((field.expected==="uczip")?' selected="selected"':"")+'">US/Canadian Zipcode (either a US or Canadian zipcode)</option>';form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Any Character Combination">';for(i=1;i<=25;i++){form+='<option value="any-'+i+'"'+((field.expected==="any-"+i)?' selected="selected"':"")+'">Any Character Combination ( '+i+" character minimum )</option>";form+='<option value="any-'+i+'-e"'+((field.expected==="any-"+i+"-e")?' selected="selected"':"")+'">Any Character Combination ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics, Spaces &amp; Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-punctuation-'+i+'"'+((field.expected==="alphanumerics-spaces-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics, Spaces &amp; Punctuation ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-spaces-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-spaces-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics, Spaces &amp; Punctuation ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics &amp; Spaces Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-spaces-'+i+'"'+((field.expected==="alphanumerics-spaces-"+i)?' selected="selected"':"")+'">Alphanumerics &amp; Spaces ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-spaces-'+i+'-e"'+((field.expected==="alphanumerics-spaces-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics &amp; Spaces ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics &amp; Punctuation Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-punctuation-'+i+'"'+((field.expected==="alphanumerics-punctuation-"+i)?' selected="selected"':"")+'">Alphanumerics &amp; Punctuation ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-punctuation-'+i+'-e"'+((field.expected==="alphanumerics-punctuation-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics &amp; Punctuation ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphanumerics Only">';for(i=1;i<=25;i++){form+='<option value="alphanumerics-'+i+'"'+((field.expected==="alphanumerics-"+i)?' selected="selected"':"")+'">Alphanumerics ( '+i+" character minimum )</option>";form+='<option value="alphanumerics-'+i+'-e"'+((field.expected==="alphanumerics-"+i+"-e")?' selected="selected"':"")+'">Alphanumerics ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Alphabetics Only">';for(i=1;i<=25;i++){form+='<option value="alphabetics-'+i+'"'+((field.expected==="alphabetics-"+i)?' selected="selected"':"")+'">Alphabetics ( '+i+" character minimum )</option>";form+='<option value="alphabetics-'+i+'-e"'+((field.expected==="alphabetics-"+i+"-e")?' selected="selected"':"")+'">Alphabetics ( exactly '+i+" character"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+='<option disabled="disabled"></option>';form+='<optgroup label="Numeric Digits Only">';for(i=1;i<=25;i++){form+='<option value="numerics-'+i+'"'+((field.expected==="numerics-"+i)?' selected="selected"':"")+'">Numeric Digits ( '+i+" digit minimum )</option>";form+='<option value="numerics-'+i+'-e"'+((field.expected==="numerics-"+i+"-e")?' selected="selected"':"")+'">Numeric Digits ( exactly '+i+" digit"+((i>1)?"s":"")+" )</option>"}form+="</optgroup>";form+="</select><br />";form+="<small>Only Users/Members will be required to meet this criteria.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">Applicable Membership Levels: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels">';form+='<td colspan="2">';form+='<input type="text" property="levels" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-levels" value="'+esc_attr(field.levels)+'" /><br />';form+="<small>Please use comma-delimited Level #'s: <code>0,1,2,3,4</code> or type: <code>all</code>.</small><br />";form+="<small>This allows you to enable this field - only at specific Membership Levels.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">Allow Profile Edits: *</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<td colspan="2">';form+='<select property="editable" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-editable">';form+='<option value="yes"'+((field.editable==="yes")?' selected="selected"':"")+'">Yes (editable)</option>';form+='<option value="no"'+((field.editable==="no")?' selected="selected"':"")+'">No (uneditable after registration)</option>';form+='<option value="no-invisible"'+((field.editable==="no-invisible")?' selected="selected"':"")+'">No (uneditable &amp; totally invisible after registration)</option>';form+='<option value="no-always-invisible"'+((field.editable==="no-always-invisible")?' selected="selected"':"")+'">No (uneditable &amp; totally invisible, both during &amp; after registration)</option>';form+='<option value="yes-invisible"'+((field.editable==="yes-invisible")?' selected="selected"':"")+'">Yes (editable after registration / invisible during registration)</option>';form+="</select><br />";form+="<small>If <code>No</code>, this field will be un-editable after registration.</small><br />";form+="<small>* Administrators are exempt from this.</small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">CSS Classes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes">';form+='<td colspan="2">';form+='<input type="text" property="classes" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-classes" value="'+esc_attr(field.classes)+'" /><br />';form+="<small>Example: <code>my-style-1 my-style-2</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">CSS Styles: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles">';form+='<td colspan="2">';form+='<input type="text" property="styles" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-styles" value="'+esc_attr(field.styles)+'" /><br />';form+="<small>Example: <code>color:#000000; background:#FFFFFF;</code></small>";form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<label for="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">Other Attributes: (optional)</label>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs">';form+='<td colspan="2">';form+='<input type="text" property="attrs" autocomplete="off" id="ws-plugin--s2member-custom-reg-field-configuration-tools-form-attrs" value="'+esc_attr(field.attrs)+'" /><br />';form+='<small>Example: <code>onkeyup="" onblur=""</code></small>';form+="</td>";form+="</tr>";form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-spacer ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons"><td colspan="2">&nbsp;</td></tr>';form+='<tr class="ws-plugin--s2member-custom-reg-field-configuration-tools-form-buttons">';form+='<td align="left">';form+='<input type="button" value="Cancel" onclick="ws_plugin__s2member_customRegFieldCancel();" />';form+="</td>";form+='<td align="right">';form+='<input type="button" value="'+((editing)?"Update This Field":"Create Registration Field")+'" onclick="'+((editing)?"ws_plugin__s2member_customRegFieldUpdate("+index+");":"ws_plugin__s2member_customRegFieldCreate();")+'" />';form+="</td>";form+="</tr>";form+="</tbody>";form+="</table>";form+="<div>";$("body").append(form);tb_show(((editing)?"Editing Registration/Profile Field":"New Custom Registration/Profile Field"),"#TB_inline?inlineId=ws-plugin--s2member-custom-reg-field-configuration-thickbox-tools-form");$("table#ws-plugin--s2member-custom-reg-field-configuration-tools-form").show()}$tools.html(html)};var buildTable=function(){var l=fields.length,i=0,html="",eo="o";html+="<tbody>";html+="<tr>";html+="<th>Order</th>";html+="<th>Field Type</th>";html+="<th>Unique ID</th>";html+="<th>Required</th>";html+="<th>Levels</th>";html+="<th>- Tools -</th>";html+="</tr>";if(fields.length>0){for(i=0;i<fields.length;i++){html+='<tr class="'+esc_attr((eo=(eo==="o")?"e":"o"))+((fields[i].section==="yes")?" s":"")+" ws-plugin--s2member-custom-reg-field-configuration-table-row-"+i+'">';html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-move-up" href="#" onclick="ws_plugin__s2member_customRegFieldMoveUp('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-move-down" href="#" onclick="ws_plugin__s2member_customRegFieldMoveDown('+i+'); return false;"></a></td>';html+='<td nowrap="nowrap">'+esc_html(fieldTypeDesc(fields[i].type))+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].id)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].required)+"</td>";html+='<td nowrap="nowrap">'+esc_html(fields[i].levels)+"</td>";html+='<td nowrap="nowrap"><a class="ws-plugin--s2member-custom-reg-field-configuration-edit" href="#" onclick="ws_plugin__s2member_customRegFieldEdit('+i+'); return false;"></a><a class="ws-plugin--s2member-custom-reg-field-configuration-delete" href="#" onclick="ws_plugin__s2member_customRegFieldDelete('+i+'); return false;"></a></td>';html+="</tr>"}}else{html+="<tr>";html+='<td colspan="6">No Custom Fields are configured.</td>';html+="</tr>"}html+="</tbody>";$table.html(html)};buildTools(),buildTable()})()}}if(location.href.match(/page\=ws-plugin--s2member-res-ops/)){$("input#ws-plugin--s2member-brute-force-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's Brute Force Restriction Logs have all been reset."),$this.val("Reset Brute Force Logs")});return false});$("input#ws-plugin--s2member-ip-restrictions-reset-button").click(function(){var $this=$(this);$this.val("one moment please ...");$.post(ajaxurl,{action:"ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax",ws_plugin__s2member_delete_reset_all_ip_restrictions_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-delete-reset-all-ip-restrictions-via-ajax")); ?>'},function(response){alert("s2Member's IP Restriction Logs have all been reset."),$this.val("Reset IP Restriction Logs")});return false});$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').change(function(){var thisChange=$(this).val();$('div.ws-plugin--s2member-query-level-access-section input[type="checkbox"][name="ws_plugin__s2member_filter_wp_query[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="all"&&this.checked){$this.nextAll(checkboxes).attr({checked:"checked",disabled:"disabled"})}else{if(val==="all"&&!this.checked){$this.nextAll(checkboxes).removeAttr("disabled");(thisChange==="all")?$this.nextAll(checkboxes).removeAttr("checked"):null}}})}).last().trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-down-ops/)){var updateCloudFrontPrivateKey=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyEntry=$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry");var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyEntryValue=$.trim($visiblePrivateKeyEntry.val());if((hiddenPrivateKeyValue&&!visiblePrivateKeyEntryValue)||visiblePrivateKeyEntryValue.match(/[^\r\n\u25CF]/)){$hiddenPrivateKey.val(visiblePrivateKeyEntryValue),$visiblePrivateKeyEntry.val(visiblePrivateKeyEntryValue.replace(/[^\r\n]/g,String.fromCharCode(9679)))}};$("form#ws-plugin--s2member-options-form").submit(updateCloudFrontPrivateKey);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontPrivateKey).trigger("change");var updateCloudFrontDistroCfgs=function(){var $hiddenPrivateKey=$("input#ws-plugin--s2member-amazon-cf-files-private-key");var $visiblePrivateKeyId=$("input#ws-plugin--s2member-amazon-cf-files-private-key-id");var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistrosStatus=$("input#ws-plugin--s2member-amazon-cf-files-distros-auto-config-status");var autoConfigDistrosStatusValue=$.trim($autoConfigDistrosStatus.val());var hiddenPrivateKeyValue=$.trim($hiddenPrivateKey.val()),visiblePrivateKeyIdValue=$.trim($visiblePrivateKeyId.val());var hiddenPrivateKeyPrevConfigValue=$.trim($hiddenPrivateKey.attr("data-s-prev-config-value")),visiblePrivateKeyIdPrevConfigValue=$.trim($visiblePrivateKeyId.attr("data-s-prev-config-value"));if(autoConfigDistrosStatusValue==="configured"&&((visiblePrivateKeyIdPrevConfigValue&&visiblePrivateKeyIdValue!==visiblePrivateKeyIdPrevConfigValue)||(hiddenPrivateKeyPrevConfigValue&&hiddenPrivateKeyValue!==hiddenPrivateKeyPrevConfigValue))){alert("s2Member will need to delete and re-configure your Amazon CloudFront distributions if you change this. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}else{if(autoConfigDistrosStatusValue!=="configured"&&visiblePrivateKeyIdValue&&hiddenPrivateKeyValue){alert("s2Member will need to auto-configure your Amazon CloudFront distributions for you. When you're done editing, click (Save All Changes) below.");$autoConfigDistros.attr("checked","checked")}}};$("input#ws-plugin--s2member-amazon-cf-files-private-key-id").change(updateCloudFrontDistroCfgs);$("textarea#ws-plugin--s2member-amazon-cf-files-private-key-entry").change(updateCloudFrontDistroCfgs);$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros-w-cnames").change(function(){var $this=$(this),thisChecked=(this.checked)?true:false;var $autoConfigDistros=$("input#ws-plugin--s2member-amazon-cf-files-auto-configure-distros");var $autoConfigDistroCnames=$("div#ws-plugin--s2member-amazon-cf-files-auto-configure-distro-cnames");(thisChecked)?$autoConfigDistroCnames.show():$autoConfigDistroCnames.hide();(thisChecked)?$autoConfigDistros.attr("checked","checked"):null}).trigger("change")}if(location.href.match(/page\=ws-plugin--s2member-paypal-ops/)){$("select#ws-plugin--s2member-auto-eot-system-enabled").change(function(){var $this=$(this),val=$this.val();var $viaCron=$("p#ws-plugin--s2member-auto-eot-system-enabled-via-cron");if(val==2){$viaCron.show()}else{$viaCron.hide()}})}if(location.href.match(/page\=ws-plugin--s2member-paypal-buttons/)){$("div.ws-menu-page select[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification)-term#x2F;)}).change(function(){var button=this.id.replace(/^ws-plugin--s2member-(.+?)-term#x2F;g,"$1");var trialDisabled=($(this).val().split("-")[2].replace(/[^0-1BN]/g,"")==="BN")?1:0;$("p#ws-plugin--s2member-"+button+"-trial-line").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-trial-then").css("display",(trialDisabled?"none":""));$("span#ws-plugin--s2member-"+button+"-20p-rule").css("display",(trialDisabled?"none":""));(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-period").val(0):null;(trialDisabled)?$("input#ws-plugin--s2member-"+button+"-trial-amount").val("0.00"):null});$("div.ws-menu-page input[id]").filter(function(){return this.id.match(/^ws-plugin--s2member-(level[1-9][0-9]*|modification|ccap)-ccaps#x2F;)}).keyup(function(){var value=this.value.replace(/^(-all|-al|-a|-)[;,]*/gi,""),_all=(this.value.match(/^(-all|-al|-a|-)[;,]*/i))?"-all,":"";if(value.match(/[^a-z_0-9,]/)){this.value=_all+$.trim($.trim(value).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase())}});ws_plugin__s2member_paypalButtonGenerate=function(button){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="",labels={};eval("<?php echo c_ws_plugin__s2member_utils_strings::esc_dq($labels); ?>");var shortCode=$("input#ws-plugin--s2member-"+button+"-shortcode");var code=$("textarea#ws-plugin--s2member-"+button+"-button");var modLevel=$("select#ws-plugin--s2member-modification-level");var level=(button==="modification")?modLevel.val().split(":",2)[1]:button.replace(/^level/,"");var label=labels["level"+level].replace(/"/g,"");var desc=$.trim($("input#ws-plugin--s2member-"+button+"-desc").val().replace(/"/g,""));var trialAmount=$("input#ws-plugin--s2member-"+button+"-trial-amount").val().replace(/[^0-9\.]/g,"");var trialPeriod=$("input#ws-plugin--s2member-"+button+"-trial-period").val().replace(/[^0-9]/g,"");var trialTerm=$("select#ws-plugin--s2member-"+button+"-trial-term").val().replace(/[^A-Z]/g,"");var regAmount=$("input#ws-plugin--s2member-"+button+"-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-"+button+"-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var regRecurTimes="",regRecurRetry="1";var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-"+button+"-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-"+button+"-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-"+button+"-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();trialPeriod=(regRecur==="BN")?"0":trialPeriod;trialAmount=(!trialAmount||isNaN(trialAmount)||trialAmount<0.01||trialPeriod<=0)?"0":trialAmount;var levelCcapsPer=(regRecur==="BN"&&regTerm!=="L")?level+":"+cCaps+":"+regPeriod+" "+regTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(trialAmount!=="0"&&(isNaN(trialAmount)||trialAmount<0)){alert("— Oops, a slight problem: —\n\nWhen provided, Trial Amount must be >= 0.00");return false}else{if(trialAmount!=="0"&&trialAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Trial Amount is: 10000.00");return false}else{if(trialTerm==="D"&&trialPeriod>90){alert("— Oops, a slight problem: —\n\nMaximum Trial Days is: 90.\nIf you want to offer more than 90 days, please choose Weeks or Months from the drop-down.");return false}else{if(trialTerm==="W"&&trialPeriod>52){alert("— Oops, a slight problem: —\n\nMaximum Trial Weeks is: 52.\nIf you want to offer more than 52 weeks, please choose Months from the drop-down.");return false}else{if(trialTerm==="M"&&trialPeriod>24){alert("— Oops, a slight problem: —\n\nMaximum Trial Months is: 24.\nIf you want to offer more than 24 months, please choose Years from the drop-down.");return false}else{if(trialTerm==="Y"&&trialPeriod>5){alert("— Oops, a slight problem: —\n\nMax Trial Period Years is: 5.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}}}}}}code.html(code.val().replace(/ \<\!--(\<input type\="hidden" name\="(amount|src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)--\>/g," $1"));(parseInt(trialPeriod)<=0)?code.html(code.val().replace(/ (\<input type\="hidden" name\="(a1|p1|t1)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick$3")):null;(regRecur==="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="(src|srt|sra|a1|p1|t1|a3|p3|t3)" value\="(.*?)" \/\>)/g," <!--$1-->")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="cmd" value\=")(.*?)(" \/\>)/g," $1_xclick-subscriptions$3")):null;(regRecur!=="BN")?code.html(code.val().replace(/ (\<input type\="hidden" name\="amount" value\="(.*?)" \/\>)/g," <!--$1-->")):null;shortCodeTemplateAttrs+=(button==="modification")?'modify="1" ':"";shortCodeTemplateAttrs+='level="'+esc_attr(level)+'" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'" custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"';shortCodeTemplateAttrs+=' ta="'+esc_attr(trialAmount)+'" tp="'+esc_attr(trialPeriod)+'" tt="'+esc_attr(trialTerm)+'" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'" rrt="'+esc_attr(regRecurTimes)+'" rra="'+esc_attr(regRecurRetry)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="modify" value\="(.*?)"/,' name="modify" value="'+((button==="modification")?"1":"0")+'"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="src" value\="(.*?)"/,' name="src" value="'+esc_attr(regRecur)+'"'));code.html(code.val().replace(/ name\="srt" value\="(.*?)"/,' name="srt" value="'+esc_attr(regRecurTimes)+'"'));code.html(code.val().replace(/ name\="sra" value\="(.*?)"/,' name="sra" value="'+esc_attr(regRecurRetry)+'"'));code.html(code.val().replace(/ name\="a1" value\="(.*?)"/,' name="a1" value="'+esc_attr(trialAmount)+'"'));code.html(code.val().replace(/ name\="p1" value\="(.*?)"/,' name="p1" value="'+esc_attr(trialPeriod)+'"'));code.html(code.val().replace(/ name\="t1" value\="(.*?)"/,' name="t1" value="'+esc_attr(trialTerm)+'"'));code.html(code.val().replace(/ name\="a3" value\="(.*?)"/,' name="a3" value="'+esc_attr(regAmount)+'"'));code.html(code.val().replace(/ name\="p3" value\="(.*?)"/,' name="p3" value="'+esc_attr(regPeriod)+'"'));code.html(code.val().replace(/ name\="t3" value\="(.*?)"/,' name="t3" value="'+esc_attr(regTerm)+'"'));$("div#ws-plugin--s2member-"+button+"-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));(button==="modification")?alert("Your Modification Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Modification Buttons should be displayed to existing Users/Members, and they should be logged-in, BEFORE clicking this Button."):alert("Your Button has been generated.\nPlease copy/paste the Shortcode Format into your Membership Options Page.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalCcapButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-ccap-shortcode");var code=$("textarea#ws-plugin--s2member-ccap-button");var desc=$.trim($("input#ws-plugin--s2member-ccap-desc").val().replace(/"/g,""));var regAmount=$("input#ws-plugin--s2member-ccap-amount").val().replace(/[^0-9\.]/g,"");var regPeriod=$("select#ws-plugin--s2member-ccap-term").val().split("-")[0].replace(/[^0-9]/g,"");var regTerm=$("select#ws-plugin--s2member-ccap-term").val().split("-")[1].replace(/[^A-Z]/g,"");var regRecur=$("select#ws-plugin--s2member-ccap-term").val().split("-")[2].replace(/[^0-1BN]/g,"");var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-ccap-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-ccap-currency").val().replace(/[^A-Z]/g,"");var cCaps=$.trim($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).replace(/^(-all|-al|-a|-)[;,]*/gi,"").replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());cCaps=($.trim($("input#ws-plugin--s2member-ccap-ccaps").val()).match(/^(-all|-al|-a|-)[;,]*/i))?((cCaps)?"-all,":"-all")+cCaps.toLowerCase():cCaps.toLowerCase();var levelCcapsPer=(regRecur==="BN"&&regTerm!=="L")?"*:"+cCaps+":"+regPeriod+" "+regTerm:"*:"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(!cCaps||cCaps==="-all"){alert("— Oops, a slight problem: —\n\nPlease provide at least one Custom Capability.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}shortCodeTemplateAttrs+='level="*" ccaps="'+esc_attr(cCaps)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'" rp="'+esc_attr(regPeriod)+'" rt="'+esc_attr(regTerm)+'" rr="'+esc_attr(regRecur)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(levelCcapsPer)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-ccap-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your Login Welcome Page, or wherever you feel it would be most appropriate.\n\n* Remember, Independent Custom Capability Buttons should ONLY be displayed to existing Users/Members, and they MUST be logged-in, BEFORE clicking this Button.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalSpButtonGenerate=function(){var shortCodeTemplate='[s2Member-PayPal-Button %%attrs%% image="default" output="button" /]',shortCodeTemplateAttrs="";var shortCode=$("input#ws-plugin--s2member-sp-shortcode");var code=$("textarea#ws-plugin--s2member-sp-button");var leading=$("select#ws-plugin--s2member-sp-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-hours").val().replace(/[^0-9]/g,"");var regAmount=$("input#ws-plugin--s2member-sp-amount").val().replace(/[^0-9\.]/g,"");var desc=$.trim($("input#ws-plugin--s2member-sp-desc").val().replace(/"/g,""));var localeCode="",digital="0",noShipping="1";var pageStyle=$.trim($("input#ws-plugin--s2member-sp-page-style").val().replace(/"/g,""));var currencyCode=$("select#ws-plugin--s2member-sp-currency").val().replace(/[^A-Z]/g,"");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member -› Restriction Options -› Specific Post/Page Access.");return false}else{if(!regAmount||isNaN(regAmount)||regAmount<0.01){alert("— Oops, a slight problem: —\n\nAmount must be >= 0.01");return false}else{if(regAmount>10000&&currencyCode.toUpperCase()==="USD"){alert("— Oops, a slight problem: —\n\nMaximum Amount is: 10000.00");return false}else{if(!desc){alert("— Oops, a slight problem: —\n\nPlease type a Description for this Button.");return false}}}}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}var spIdsHours="sp:"+ids+":"+hours;shortCodeTemplateAttrs+='sp="1" ids="'+esc_attr(ids)+'" exp="'+esc_attr(hours)+'" desc="'+esc_attr(desc)+'" ps="'+esc_attr(pageStyle)+'" lc="'+esc_attr(localeCode)+'" cc="'+esc_attr(currencyCode)+'" dg="'+esc_attr(digital)+'" ns="'+esc_attr(noShipping)+'"';shortCodeTemplateAttrs+=' custom="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>" ra="'+esc_attr(regAmount)+'"';shortCode.val(shortCodeTemplate.replace(/%%attrs%%/,shortCodeTemplateAttrs));code.html(code.val().replace(/ name\="lc" value\="(.*?)"/,' name="lc" value="'+esc_attr(localeCode)+'"'));code.html(code.val().replace(/ name\="no_shipping" value\="(.*?)"/,' name="no_shipping" value="'+esc_attr(noShipping)+'"'));code.html(code.val().replace(/ name\="item_name" value\="(.*?)"/,' name="item_name" value="'+esc_attr(desc)+'"'));code.html(code.val().replace(/ name\="item_number" value\="(.*?)"/,' name="item_number" value="'+esc_attr(spIdsHours)+'"'));code.html(code.val().replace(/ name\="page_style" value\="(.*?)"/,' name="page_style" value="'+esc_attr(pageStyle)+'"'));code.html(code.val().replace(/ name\="currency_code" value\="(.*?)"/,' name="currency_code" value="'+esc_attr(currencyCode)+'"'));code.html(code.val().replace(/ name\="custom" value\="(.*?)"/,' name="custom" value="<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"])); ?>"'));code.html(code.val().replace(/ name\="amount" value\="(.*?)"/,' name="amount" value="'+esc_attr(regAmount)+'"'));$("div#ws-plugin--s2member-sp-button-prev").html(code.val().replace(/\<form/,'<form target="_blank"').replace(/\<\?php echo S2MEMBER_VALUE_FOR_PP_INV\(\); \?\>/g,Math.round(new Date().getTime())+'~<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["REMOTE_ADDR"])); ?>').replace(/\<\?php echo S2MEMBER_CURRENT_USER_VALUE_FOR_PP_(ON0|OS0|ON1|OS1); \?\>/g,""));alert("Your Button has been generated.\nPlease copy/paste the Shortcode into your WordPress Editor.");shortCode.each(function(){this.focus(),this.select()});return false};ws_plugin__s2member_paypalRegLinkGenerate=function(){var level=$("select#ws-plugin--s2member-reg-link-level").val().replace(/[^0-9]/g,"");var subscrID=$.trim($("input#ws-plugin--s2member-reg-link-subscr-id").val());var custom=$.trim($("input#ws-plugin--s2member-reg-link-custom").val());var cCaps=$.trim($.trim($("input#ws-plugin--s2member-reg-link-ccaps").val()).replace(/[ \-]/g,"_").replace(/[^a-z_0-9,]/gi,"").toLowerCase());var fixedTerm=$.trim($("input#ws-plugin--s2member-reg-link-fixed-term").val().replace(/[^A-Z 0-9]/gi,"").toUpperCase());var $link=$("p#ws-plugin--s2member-reg-link"),$loading=$("img#ws-plugin--s2member-reg-link-loading");var levelCcapsPer=(fixedTerm&&!fixedTerm.match(/L#x2F;))?level+":"+cCaps+":"+fixedTerm:level+":"+cCaps;levelCcapsPer=levelCcapsPer.replace(/\:+#x2F;g,"");if(!subscrID){alert("— Oops, a slight problem: —\n\nPaid Subscr. ID is a required value.");return false}else{if(!custom||custom.indexOf('<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq ($_SERVER["HTTP_HOST"]); ?>')!==0){alert("— Oops, a slight problem: —\n\nThe Custom Value MUST start with your domain name.");return false}else{if(fixedTerm&&!fixedTerm.match(/^[1-9]+ (D|W|M|Y|L)#x2F;)){alert("— Oops, a slight problem: —\n\nThe Fixed Term Length is not formatted properly.");return false}}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_reg_access_link_via_ajax",ws_plugin__s2member_reg_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-reg-access-link-via-ajax")); ?>',s2member_reg_access_link_subscr_gateway:"paypal",s2member_reg_access_link_subscr_id:subscrID,s2member_reg_access_link_custom:custom,s2member_reg_access_link_item_number:levelCcapsPer},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false};ws_plugin__s2member_paypalSpLinkGenerate=function(){var leading=$("select#ws-plugin--s2member-sp-link-leading-id").val().replace(/[^0-9]/g,"");var additionals=$("select#ws-plugin--s2member-sp-link-additional-ids").val()||[];var hours=$("select#ws-plugin--s2member-sp-link-hours").val().replace(/[^0-9]/g,"");var $link=$("p#ws-plugin--s2member-sp-link"),$loading=$("img#ws-plugin--s2member-sp-link-loading");if(!leading){alert("— Oops, a slight problem: —\n\nPlease select a Leading Post/Page.\n\n*Tip* If there are no Posts/Pages in the menu, it's because you've not configured s2Member for Specific Post/Page Access yet. See: s2Member -› Restriction Options -› Specific Post/Page Access.");return false}for(var i=0,ids=leading;i<additionals.length;i++){if(additionals[i]&&additionals[i]!==leading){ids+=","+additionals[i]}}$link.hide(),$loading.show(),$.post(ajaxurl,{action:"ws_plugin__s2member_sp_access_link_via_ajax",ws_plugin__s2member_sp_access_link_via_ajax:'<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (wp_create_nonce ("ws-plugin--s2member-sp-access-link-via-ajax")); ?>',s2member_sp_access_link_ids:ids,s2member_sp_access_link_hours:hours},function(response){$link.show().html('<a href="'+esc_attr(response)+'" target="_blank" rel="external">'+esc_html(response)+"</a>"),$loading.hide()});return false}}if(location.href.match(/page\=ws-plugin--s2member-els-ops/)){$("select#ws-plugin--s2member-custom-reg-opt-in").change(function(){var $this=$(this),val=$this.val();var $rows=$("tr.ws-plugin--s2member-custom-reg-opt-in-label-row");var $prevImg=$("img.ws-plugin--s2member-custom-reg-opt-in-label-prev-img");if(val<=0){$rows.css("display","none"),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png#x2F;,"/unchecked.png"))}else{if(val==1){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/unchecked\.png#x2F;,"/checked.png"))}else{if(val==2){$rows.css("display",""),$prevImg.attr("src",$prevImg.attr("src").replace(/\/checked\.png#x2F;,"/unchecked.png"))}}}});$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').change(function(){var thisChange=$(this).val(),checkedIndexes=[];$('div.ws-plugin--s2member-opt-out-section input[type="checkbox"][name="ws_plugin__s2member_custom_reg_auto_opt_outs[]"]').each(function(){var $this=$(this),val=$this.val(),checkboxes='input[type="checkbox"]';if(val==="removal-deletion"&&this.checked){$this.nextAll(checkboxes).slice(0,2).attr({checked:"checked",disabled:"disabled"})}else{if(val==="removal-deletion"&&!this.checked){$this.nextAll(checkboxes).slice(0,2).removeAttr("disabled");(thisChange==="removal-deletion")?$this.nextAll(checkboxes).slice(0,2).removeAttr("checked"):null}else{if(val==="modification"&&this.checked){$this.nextAll(checkboxes).slice(0,3).attr({checked:"checked",disabled:"disabled"})}else{if(val==="modification"&&!this.checked){(thisChange==="modification")?$this.nextAll(checkboxes).slice(0,3).removeAttr("checked"):null;$this.nextAll(checkboxes).slice(0,3).removeAttr("disabled")}}}}}).each(function(index){(this.checked)?checkedIndexes.push(index):null});$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").removeAttr("disabled");if($.inArray(3,checkedIndexes)===-1&&$.inArray(4,checkedIndexes)===-1&&$.inArray(5,checkedIndexes)===-1&&$.inArray(6,checkedIndexes)===-1){$("select#ws-plugin--s2member-custom-reg-auto-opt-out-transitions").attr("disabled","disabled")}}).last().trigger("change")}});
includes/menu-pages/menu-pages-s.js CHANGED
@@ -248,7 +248,7 @@ jQuery(document).ready(function($)
248
{
249
var row = 'tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-'+(fields.length-1);
250
alert('Field created successfully.\n* Remember to "Save All Changes".');
251
- $(row).effect('highlight', 1500);
252
}, 500);
253
}
254
};
@@ -270,7 +270,7 @@ jQuery(document).ready(function($)
270
{
271
var row = 'tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-'+index;
272
alert('Field updated successfully.\n* Remember to "Save All Changes".');
273
- $(row).effect('highlight', 1500);
274
}, 500);
275
}
276
};
248
{
249
var row = 'tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-'+(fields.length-1);
250
alert('Field created successfully.\n* Remember to "Save All Changes".');
251
+ //$(row).effect('highlight');
252
}, 500);
253
}
254
};
270
{
271
var row = 'tr.ws-plugin--s2member-custom-reg-field-configuration-table-row-'+index;
272
alert('Field updated successfully.\n* Remember to "Save All Changes".');
273
+ //$(row).effect('highlight');
274
}, 500);
275
}
276
};
includes/s2member.js CHANGED
@@ -425,7 +425,7 @@ jQuery(document).ready (function($)
425
{
426
return label + '\n' + '<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (_x ("Must be a full URL (starting with http or https).", "s2member-front", "s2member")); ?>';
427
}
428
- else if (expected === 'domain' && !value.match (/^([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,6})#x2F;i))
429
{
430
return label + '\n' + '<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (_x ("Must be a domain name (domain name only, without http).", "s2member-front", "s2member")); ?>';
431
}
425
{
426
return label + '\n' + '<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (_x ("Must be a full URL (starting with http or https).", "s2member-front", "s2member")); ?>';
427
}
428
+ else if (expected === 'domain' && !value.match (/^([a-z0-9]+)(((-*)([a-z0-9]+))*)(((\.)([a-z0-9]+)(((-*)([a-z0-9]+))*))*)(\.)([a-z]{2,})#x2F;i))
429
{
430
return label + '\n' + '<?php echo c_ws_plugin__s2member_utils_strings::esc_js_sq (_x ("Must be a domain name (domain name only, without http).", "s2member-front", "s2member")); ?>';
431
}
includes/translations/s2member.pot CHANGED
@@ -2,9 +2,9 @@
2
# This file is distributed under the same license as the package.
3
msgid ""
4
msgstr ""
5
- "Project-Id-Version: 140409\n"
6
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
- "POT-Creation-Date: 2014-04-10 02:25:41+00:00\n"
8
"MIME-Version: 1.0\n"
9
"Content-Type: text/plain; charset=UTF-8\n"
10
"Content-Transfer-Encoding: 8bit\n"
@@ -635,7 +635,7 @@ msgstr ""
635
#: s2member/includes/classes/paypal-utilities.inc.php:316
636
#: s2member/includes/classes/paypal-utilities.inc.php:324
637
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:97
638
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:329
639
msgctxt "s2member-front"
640
msgid "Error. Please contact Support for assistance."
641
msgstr ""
@@ -668,7 +668,7 @@ msgstr ""
668
#: s2member/includes/classes/paypal-utilities.inc.php:314
669
#: s2member/includes/classes/paypal-utilities.inc.php:322
670
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
671
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:326
672
msgctxt "s2member-front"
673
msgid "Error #%1$s. %2$s."
674
msgstr ""
@@ -2744,7 +2744,7 @@ msgstr ""
2744
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
2745
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:517
2746
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
2747
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:597
2748
msgctxt "s2member-front"
2749
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
2750
msgstr ""
@@ -2759,208 +2759,208 @@ msgstr ""
2759
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:244
2760
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:244
2761
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:250
2762
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:260
2763
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:266
2764
msgctxt "s2member-front"
2765
msgid "Nothing to cancel. You have NO recurring fees."
2766
msgstr ""
2767
2768
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:250
2769
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:528
2770
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:272
2771
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:608
2772
msgctxt "s2member-front"
2773
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing information."
2774
msgstr ""
2775
2776
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
2777
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:275
2778
msgctxt "s2member-front"
2779
msgid "Nothing to update. You're NOT a paid Member."
2780
msgstr ""
2781
2782
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:258
2783
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:261
2784
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:280
2785
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:289
2786
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:302
2787
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:308
2788
msgctxt "s2member-front"
2789
msgid "Nothing to update. You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance."
2790
msgstr ""
2791
2792
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
2793
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:314
2794
msgctxt "s2member-admin"
2795
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2796
msgstr ""
2797
2798
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
2799
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:317
2800
msgctxt "s2member-admin"
2801
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2802
msgstr ""
2803
2804
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
2805
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:361
2806
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:320
2807
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:426
2808
msgctxt "s2member-admin"
2809
msgid "Invalid form configuration. Invalid \"ccaps\" attribute. Custom Capabilities. When provided, must be all lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
2810
msgstr ""
2811
2812
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
2813
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:385
2814
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:323
2815
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:468
2816
msgctxt "s2member-admin"
2817
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be numeric."
2818
msgstr ""
2819
2820
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
2821
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:388
2822
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:326
2823
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:471
2824
msgctxt "s2member-admin"
2825
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be >= 1."
2826
msgstr ""
2827
2828
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
2829
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:391
2830
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:329
2831
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:474
2832
msgctxt "s2member-admin"
2833
msgid "Invalid form configuration. Missing \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2834
msgstr ""
2835
2836
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
2837
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:394
2838
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:332
2839
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:477
2840
msgctxt "s2member-admin"
2841
msgid "Invalid form configuration. Invalid \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2842
msgstr ""
2843
2844
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
2845
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:335
2846
msgctxt "s2member-admin"
2847
msgid "Invalid form configuration. Invalid \"custom\" attribute. When provided, must start with your domain name."
2848
msgstr ""
2849
2850
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
2851
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:340
2852
msgctxt "s2member-admin"
2853
msgid "Invalid form configuration. Missing \"ids\" attribute. Must contain comma-delimited Post/Page IDs."
2854
msgstr ""
2855
2856
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
2857
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:343
2858
msgctxt "s2member-admin"
2859
msgid "Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-delimited Post/Page IDs. Must contain [0-9,] only."
2860
msgstr ""
2861
2862
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
2863
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:346
2864
msgctxt "s2member-admin"
2865
msgid "Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2866
msgstr ""
2867
2868
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
2869
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:349
2870
msgctxt "s2member-admin"
2871
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2872
msgstr ""
2873
2874
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
2875
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:352
2876
msgctxt "s2member-admin"
2877
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be >= 1."
2878
msgstr ""
2879
2880
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
2881
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:355
2882
msgctxt "s2member-admin"
2883
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be <= 43800."
2884
msgstr ""
2885
2886
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
2887
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:358
2888
msgctxt "s2member-admin"
2889
msgid "Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2890
msgstr ""
2891
2892
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
2893
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:361
2894
msgctxt "s2member-admin"
2895
msgid "Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2896
msgstr ""
2897
2898
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
2899
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:367
2900
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:364
2901
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:432
2902
msgctxt "s2member-admin"
2903
msgid "Invalid form configuration. Missing \"desc\" attribute. Please provide a Description for this form."
2904
msgstr ""
2905
2906
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
2907
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:370
2908
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:367
2909
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:435
2910
msgctxt "s2member-admin"
2911
msgid "Invalid form configuration. Your \"desc\" (Description) attribute must be <= 100 characters long."
2912
msgstr ""
2913
2914
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
2915
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:373
2916
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:370
2917
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:438
2918
msgctxt "s2member-admin"
2919
msgid "Invalid form configuration. Missing \"custom\" attribute. Must start with your domain name."
2920
msgstr ""
2921
2922
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
2923
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:373
2924
msgctxt "s2member-admin"
2925
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with your domain name."
2926
msgstr ""
2927
2928
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
2929
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:379
2930
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:376
2931
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:444
2932
msgctxt "s2member-admin"
2933
msgid "Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character Currency Code."
2934
msgstr ""
2935
2936
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
2937
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:382
2938
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:379
2939
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:447
2940
msgctxt "s2member-admin"
2941
msgid "Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character Currency Code."
2942
msgstr ""
2943
2944
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
2945
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:463
2946
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:400
2947
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:537
2948
msgctxt "s2member-admin"
2949
msgid "Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2950
msgstr ""
2951
2952
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
2953
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:466
2954
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:403
2955
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:540
2956
msgctxt "s2member-admin"
2957
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be numeric."
2958
msgstr ""
2959
2960
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
2961
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:469
2962
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:406
2963
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:543
2964
msgctxt "s2member-admin"
2965
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2966
msgstr ""
@@ -2972,69 +2972,69 @@ msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount.
2972
msgstr ""
2973
2974
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
2975
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:414
2976
msgctxt "s2member-front"
2977
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing plan."
2978
msgstr ""
2979
2980
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
2981
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:417
2982
msgctxt "s2member-front"
2983
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this purchase."
2984
msgstr ""
2985
2986
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
2987
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:420
2988
msgctxt "s2member-admin"
2989
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
2990
msgstr ""
2991
2992
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
2993
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:423
2994
msgctxt "s2member-admin"
2995
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
2996
msgstr ""
2997
2998
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
2999
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:429
3000
msgctxt "s2member-admin"
3001
msgid "Invalid form configuration. Missing or invalid \"ccaps\" attribute. When \"level\" is \"*\" for (Independent Custom Capabilities), \"ccaps\" is required. All lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
3002
msgstr ""
3003
3004
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
3005
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:441
3006
msgctxt "s2member-admin"
3007
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with matching domain."
3008
msgstr ""
3009
3010
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
3011
msgctxt "s2member-admin"
3012
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
3013
msgstr ""
3014
3015
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
3016
msgctxt "s2member-admin"
3017
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
3018
msgstr ""
3019
3020
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
3021
msgctxt "s2member-admin"
3022
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
3023
msgstr ""
3024
3025
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
3026
msgctxt "s2member-admin"
3027
- msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. The \"tt\" (Trial Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
3028
msgstr ""
3029
3030
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
3031
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:480
3032
msgctxt "s2member-admin"
3033
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be numeric."
3034
msgstr ""
3035
3036
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
3037
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:483
3038
msgctxt "s2member-admin"
3039
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be >= 0.00."
3040
msgstr ""
@@ -3045,31 +3045,31 @@ msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. W
3045
msgstr ""
3046
3047
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
3048
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:489
3049
msgctxt "s2member-admin"
3050
msgid "Invalid form configuration. Missing \"rp\" attribute. The Regular Period. Must be >= 1."
3051
msgstr ""
3052
3053
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
3054
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:492
3055
msgctxt "s2member-admin"
3056
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be numeric."
3057
msgstr ""
3058
3059
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
3060
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:495
3061
msgctxt "s2member-admin"
3062
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be >= 1."
3063
msgstr ""
3064
3065
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
3066
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:498
3067
msgctxt "s2member-admin"
3068
msgid "Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3069
msgstr ""
3070
3071
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
3072
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:501
3073
msgctxt "s2member-admin"
3074
msgid "Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3075
msgstr ""
@@ -3080,93 +3080,93 @@ msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\"
3080
msgstr ""
3081
3082
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
3083
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:504
3084
msgctxt "s2member-admin"
3085
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) > 365, and \"rr\" is not \"BN\" (Buy Now)."
3086
msgstr ""
3087
3088
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
3089
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:507
3090
msgctxt "s2member-admin"
3091
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"W\", \"rp\" (Regular Period) > 52, and \"rr\" is not \"BN\" (Buy Now)."
3092
msgstr ""
3093
3094
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
3095
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:510
3096
msgctxt "s2member-admin"
3097
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"M\", \"rp\" (Regular Period) > 12, and \"rr\" is not \"BN\" (Buy Now)."
3098
msgstr ""
3099
3100
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
3101
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:519
3102
msgctxt "s2member-admin"
3103
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 1, and \"rr\" is not \"BN\" (Buy Now)."
3104
msgstr ""
3105
3106
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
3107
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:522
3108
msgctxt "s2member-admin"
3109
msgid "Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) > 1."
3110
msgstr ""
3111
3112
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
3113
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:525
3114
msgctxt "s2member-admin"
3115
msgid "Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN\" (Buy Now)."
3116
msgstr ""
3117
3118
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
3119
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:528
3120
msgctxt "s2member-admin"
3121
msgid "Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3122
msgstr ""
3123
3124
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
3125
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:460
3126
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:531
3127
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:534
3128
msgctxt "s2member-admin"
3129
msgid "Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3130
msgstr ""
3131
3132
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
3133
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:549
3134
msgctxt "s2member-admin"
3135
msgid "Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. When provided, must be 0, 1, or BN."
3136
msgstr ""
3137
3138
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
3139
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:552
3140
msgctxt "s2member-admin"
3141
msgid "Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial Period) is not \"0\"."
3142
msgstr ""
3143
3144
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
3145
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:555
3146
msgctxt "s2member-admin"
3147
msgid "Invalid form configuration. Invalid \"level, rr\" attributes. The \"level\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr\" is not \"BN\" (Buy Now)."
3148
msgstr ""
3149
3150
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
3151
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:558
3152
msgctxt "s2member-admin"
3153
msgid "Invalid form configuration. Invalid \"ta, tp, tt\" attributes. Trial Period. When provided, these cannot be exactly the same as your \"ra, rp, rt\" attributes."
3154
msgstr ""
3155
3156
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
3157
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:561
3158
msgctxt "s2member-admin"
3159
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be numeric."
3160
msgstr ""
3161
3162
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
3163
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:564
3164
msgctxt "s2member-admin"
3165
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be >= 1."
3166
msgstr ""
3167
3168
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
3169
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:567
3170
msgctxt "s2member-admin"
3171
msgid "Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
3172
msgstr ""
@@ -3176,11 +3176,11 @@ msgstr ""
3176
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:614
3177
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:670
3178
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:762
3179
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:600
3180
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:650
3181
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:694
3182
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:750
3183
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:842
3184
msgctxt "s2member-front"
3185
msgid "Missing or invalid Security Code. Please try again."
3186
msgstr ""
@@ -3188,9 +3188,9 @@ msgstr ""
3188
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:523
3189
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:531
3190
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:681
3191
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:603
3192
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:611
3193
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:761
3194
msgctxt "s2member-admin"
3195
msgid "Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access."
3196
msgstr ""
@@ -3198,9 +3198,9 @@ msgstr ""
3198
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
3199
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:631
3200
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:723
3201
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:614
3202
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:711
3203
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:803
3204
msgctxt "s2member-front"
3205
msgid "Missing Card Type (Billing Method). Please try again."
3206
msgstr ""
@@ -3210,11 +3210,11 @@ msgstr ""
3210
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:637
3211
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:726
3212
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:729
3213
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:617
3214
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:714
3215
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:717
3216
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:806
3217
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:809
3218
msgctxt "s2member-front"
3219
msgid "Invalid Card Type (Billing Method). Please try again."
3220
msgstr ""
@@ -3222,9 +3222,9 @@ msgstr ""
3222
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:540
3223
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:640
3224
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:732
3225
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:620
3226
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:720
3227
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:812
3228
msgctxt "s2member-front"
3229
msgid "Missing Card Number. Please try again."
3230
msgstr ""
@@ -3232,9 +3232,9 @@ msgstr ""
3232
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:543
3233
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:643
3234
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:735
3235
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:623
3236
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:723
3237
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:815
3238
msgctxt "s2member-front"
3239
msgid "Missing Card Expiration Date (mm/yyyy). Please try again."
3240
msgstr ""
@@ -3242,9 +3242,9 @@ msgstr ""
3242
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:546
3243
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:646
3244
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:738
3245
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:626
3246
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:726
3247
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:818
3248
msgctxt "s2member-front"
3249
msgid "Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again."
3250
msgstr ""
@@ -3252,9 +3252,9 @@ msgstr ""
3252
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
3253
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:649
3254
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:741
3255
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:629
3256
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:729
3257
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:821
3258
msgctxt "s2member-front"
3259
msgid "Missing Card Verification Code. It's on the back of your Card. 3-4 digits. Please try again."
3260
msgstr ""
@@ -3262,9 +3262,9 @@ msgstr ""
3262
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
3263
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:652
3264
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:744
3265
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:632
3266
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:732
3267
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:824
3268
msgctxt "s2member-front"
3269
msgid "Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again."
3270
msgstr ""
@@ -3272,9 +3272,9 @@ msgstr ""
3272
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
3273
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:655
3274
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:747
3275
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:635
3276
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:735
3277
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:827
3278
msgctxt "s2member-front"
3279
msgid "Missing Street Address. Please try again."
3280
msgstr ""
@@ -3282,9 +3282,9 @@ msgstr ""
3282
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:558
3283
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:658
3284
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:750
3285
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:638
3286
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:738
3287
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:830
3288
msgctxt "s2member-front"
3289
msgid "Missing City/Town. Please try again."
3290
msgstr ""
@@ -3292,9 +3292,9 @@ msgstr ""
3292
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:561
3293
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:661
3294
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:753
3295
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:641
3296
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:741
3297
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:833
3298
msgctxt "s2member-front"
3299
msgid "Missing State/Province. Please try again."
3300
msgstr ""
@@ -3302,9 +3302,9 @@ msgstr ""
3302
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:564
3303
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:664
3304
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:756
3305
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:644
3306
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:744
3307
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:836
3308
msgctxt "s2member-front"
3309
msgid "Missing Country. Please try again."
3310
msgstr ""
@@ -3312,9 +3312,9 @@ msgstr ""
3312
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:567
3313
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:667
3314
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:759
3315
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:647
3316
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:747
3317
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:839
3318
msgctxt "s2member-front"
3319
msgid "Missing Postal/Zip Code. Please try again."
3320
msgstr ""
@@ -3322,9 +3322,9 @@ msgstr ""
3322
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:575
3323
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:619
3324
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:684
3325
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:655
3326
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:699
3327
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:764
3328
msgctxt "s2member-front"
3329
msgid "Missing First Name. Please try again."
3330
msgstr ""
@@ -3332,9 +3332,9 @@ msgstr ""
3332
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:578
3333
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:622
3334
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:687
3335
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:658
3336
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:702
3337
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:767
3338
msgctxt "s2member-front"
3339
msgid "Missing Last Name. Please try again."
3340
msgstr ""
@@ -3342,9 +3342,9 @@ msgstr ""
3342
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:581
3343
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:625
3344
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:690
3345
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:661
3346
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:705
3347
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:770
3348
msgctxt "s2member-front"
3349
msgid "Missing or invalid Email Address. Please try again."
3350
msgstr ""
@@ -3352,91 +3352,91 @@ msgstr ""
3352
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:584
3353
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:628
3354
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:693
3355
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:664
3356
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:708
3357
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:773
3358
msgctxt "s2member-front"
3359
msgid "Invalid Email Address. Please try again."
3360
msgstr ""
3361
3362
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:587
3363
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:696
3364
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:667
3365
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:776
3366
msgctxt "s2member-front"
3367
msgid "That Email Address is already in use. Please try again."
3368
msgstr ""
3369
3370
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:590
3371
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:699
3372
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:670
3373
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:779
3374
msgctxt "s2member-front"
3375
msgid "Missing or invalid Username. Please try again."
3376
msgstr ""
3377
3378
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:593
3379
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:702
3380
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:673
3381
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:782
3382
msgctxt "s2member-front"
3383
msgid "Invalid Username. Please try again. Use ONLY lowercase alphanumerics."
3384
msgstr ""
3385
3386
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:596
3387
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:705
3388
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:676
3389
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:785
3390
msgctxt "s2member-front"
3391
msgid "That Username is already in use. Please try again."
3392
msgstr ""
3393
3394
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:602
3395
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:711
3396
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:682
3397
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:791
3398
msgctxt "s2member-front"
3399
msgid "Missing Password. Please try again."
3400
msgstr ""
3401
3402
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:605
3403
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:714
3404
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:685
3405
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:794
3406
msgctxt "s2member-front"
3407
msgid "Invalid Password. Must be at least 6 characters. Please try again."
3408
msgstr ""
3409
3410
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:608
3411
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:717
3412
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:688
3413
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:797
3414
msgctxt "s2member-front"
3415
msgid "Invalid Password. Max length is 20 characters. Please try again."
3416
msgstr ""
3417
3418
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:611
3419
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:720
3420
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:691
3421
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:800
3422
msgctxt "s2member-front"
3423
msgid "Password fields do NOT match. Please try again."
3424
msgstr ""
3425
3426
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:675
3427
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:755
3428
msgctxt "s2member-front"
3429
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to modify your billing plan."
3430
msgstr ""
3431
3432
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:678
3433
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:758
3434
msgctxt "s2member-front"
3435
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> before making this purchase."
3436
msgstr ""
3437
3438
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:765
3439
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:845
3440
msgctxt "s2member-front"
3441
msgid "Unknown form submission type. Please contact Support."
3442
msgstr ""
@@ -3473,26 +3473,26 @@ msgctxt "s2member-front"
3473
msgid "<strong>Oops.</strong> No Subscr. ID. Please contact Support for assistance."
3474
msgstr ""
3475
3476
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:666
3477
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:809
3478
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:295
3479
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:438
3480
msgctxt "s2member-front percentage-symbol"
3481
msgid "%"
3482
msgstr ""
3483
3484
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:808
3485
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:437
3486
msgctxt "s2member-front"
3487
msgid " + tax"
3488
msgstr ""
3489
3490
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:853
3491
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:905
3492
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:918
3493
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:940
3494
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1000
3495
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1015
3496
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:482
3497
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:534
3498
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:547
@@ -3503,12 +3503,12 @@ msgctxt "s2member-front"
3503
msgid "COUPON %s off. (Now: %s)"
3504
msgstr ""
3505
3506
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:854
3507
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:906
3508
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:919
3509
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:941
3510
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1001
3511
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1016
3512
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:483
3513
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:535
3514
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:548
@@ -3519,12 +3519,12 @@ msgctxt "s2member-front"
3519
msgid "<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s</strong>)</div>"
3520
msgstr ""
3521
3522
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:866
3523
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:879
3524
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:892
3525
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:955
3526
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:970
3527
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:985
3528
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:495
3529
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:508
3530
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:521
@@ -3535,12 +3535,12 @@ msgctxt "s2member-front"
3535
msgid "COUPON %s off. (Now: %s, then %s)"
3536
msgstr ""
3537
3538
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:867
3539
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:880
3540
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:893
3541
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:956
3542
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:971
3543
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:986
3544
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:496
3545
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:509
3546
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:522
@@ -3551,27 +3551,27 @@ msgctxt "s2member-front"
3551
msgid "<div>Coupon: <strong>%s off</strong>. (Now: <strong>%s, then %s</strong>)</div>"
3552
msgstr ""
3553
3554
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:923
3555
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1020
3556
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:552
3557
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:649
3558
msgctxt "s2member-front"
3559
msgid "<div>Sorry, your Coupon is not applicable.</div>"
3560
msgstr ""
3561
3562
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1024
3563
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:653
3564
msgctxt "s2member-front"
3565
msgid "<div>Coupon: <strong>%s0.00 off</strong>.</div>"
3566
msgstr ""
3567
3568
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1028
3569
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:657
3570
msgctxt "s2member-front"
3571
msgid "<div>Sorry, your Coupon cannot be applied to this particular purchase.</div>"
3572
msgstr ""
3573
3574
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1032
3575
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:661
3576
msgctxt "s2member-front"
3577
msgid "<div>Sorry, your Coupon <strong>expired</strong>: <em>%s</em>.</div>"
@@ -3579,14 +3579,14 @@ msgstr ""
3579
3580
#. translators: `%1$s` is new price/description, after coupon applied. `%2$s`
3581
#. is original description.
3582
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1038
3583
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:667
3584
msgctxt "s2member-front"
3585
msgid "%1$s ~ ORIGINALLY: %2$s"
3586
msgstr ""
3587
3588
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1067
3589
- #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:1070
3590
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:696
3591
#: s2member-pro/includes/classes/gateways/paypal/paypal-utilities.inc.php:699
3592
msgctxt "s2member-front"
@@ -3616,7 +3616,7 @@ msgstr ""
3616
3617
#: s2member-pro/includes/classes/gateways/paypal/paypal-cancellation-in.inc.php:123
3618
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:247
3619
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:263
3620
msgctxt "s2member-front"
3621
msgid "<strong>Unable to cancel at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
3622
msgstr ""
@@ -3682,9 +3682,9 @@ msgctxt "s2member-admin"
3682
msgid "PayPal configuration error. Your PayPal API Signature is not yet configured."
3683
msgstr ""
3684
3685
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:283
3686
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:296
3687
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:299
3688
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:79
3689
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:135
3690
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:139
@@ -3694,76 +3694,76 @@ msgctxt "s2member-front"
3694
msgid "Please <a href=\"%s\" rel=\"nofollow\">log in at PayPal</a> to update your billing information."
3695
msgstr ""
3696
3697
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:286
3698
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:305
3699
#: s2member-pro/includes/classes/gateways/paypal/paypal-update-in.inc.php:127
3700
msgctxt "s2member-front"
3701
msgid "<strong>Unable to update at this time.</strong> Your account is pending other changes. Please try again in 15 minutes."
3702
msgstr ""
3703
3704
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:382
3705
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:450
3706
msgctxt "s2member-admin"
3707
msgid "Invalid form configuration. Missing \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
3708
msgstr ""
3709
3710
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:385
3711
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:453
3712
msgctxt "s2member-admin"
3713
msgid "Invalid form configuration. Invalid \"dg\" attribute. Digital indicator. Must be numeric [0-1]."
3714
msgstr ""
3715
3716
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:388
3717
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:456
3718
msgctxt "s2member-admin"
3719
msgid "Invalid form configuration. Missing \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
3720
msgstr ""
3721
3722
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:391
3723
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:459
3724
msgctxt "s2member-admin"
3725
msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be numeric [0-2]."
3726
msgstr ""
3727
3728
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:394
3729
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:462
3730
msgctxt "s2member-admin"
3731
msgid "Invalid form configuration. Invalid \"ns\" attribute. Shipping configuration. Must be 1 with \"dg\" (digital) items."
3732
msgstr ""
3733
3734
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:397
3735
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:465
3736
msgctxt "s2member-admin"
3737
msgid "Invalid form configuration. Invalid \"lc\" attribute. Locale Code. When provided, must be a 2 character country code."
3738
msgstr ""
3739
3740
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:409
3741
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:546
3742
msgctxt "s2member-admin"
3743
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be <= 10000.00."
3744
msgstr ""
3745
3746
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:486
3747
msgctxt "s2member-admin"
3748
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be <= 10000.00."
3749
msgstr ""
3750
3751
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:513
3752
msgctxt "s2member-admin"
3753
msgid "Invalid Payflow form configuration. Invalid \"rt, rp, rr\" attributes. Payflow supports a specific set of recurring intervals. Pro Forms can be configured to charge: weekly, bi-weekly, monthly, quarterly, semi-yearly or yearly. Any other combination results in this error. This is a Payflow limitation."
3754
msgstr ""
3755
3756
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:516
3757
msgctxt "s2member-admin"
3758
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 5, and \"rr\" is not \"BN\" (Buy Now)."
3759
msgstr ""
3760
3761
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:570
3762
msgctxt "s2member-admin"
3763
msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be numeric."
3764
msgstr ""
3765
3766
- #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:573
3767
msgctxt "s2member-admin"
3768
msgid "Invalid form configuration. Invalid \"rr, rra\" attributes. When \"rr\" (Regular Recurring) is 0 or 1, \"rra\" (Recurring Retry Attempts) must be >= 0."
3769
msgstr ""
2
# This file is distributed under the same license as the package.
3
msgid ""
4
msgstr ""
5
+ "Project-Id-Version: 140423\n"
6
"Report-Msgid-Bugs-To: http://wordpress.org/tag/s2member\n"
7
+ "POT-Creation-Date: 2014-04-24 01:15:56+00:00\n"
8
"MIME-Version: 1.0\n"
9
"Content-Type: text/plain; charset=UTF-8\n"
10
"Content-Transfer-Encoding: 8bit\n"
635
#: s2member/includes/classes/paypal-utilities.inc.php:316
636
#: s2member/includes/classes/paypal-utilities.inc.php:324
637
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:97
638
+ #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:325
639
msgctxt "s2member-front"
640
msgid "Error. Please contact Support for assistance."
641
msgstr ""
668
#: s2member/includes/classes/paypal-utilities.inc.php:314
669
#: s2member/includes/classes/paypal-utilities.inc.php:322
670
#: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:94
671
+ #: s2member-pro/includes/classes/gateways/authnet/authnet-utilities.inc.php:322
672
msgctxt "s2member-front"
673
msgid "Error #%1$s. %2$s."
674
msgstr ""
2744
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:233
2745
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:517
2746
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:236
2747
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:595
2748
msgctxt "s2member-front"
2749
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to cancel your account."
2750
msgstr ""
2759
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:244
2760
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:244
2761
#: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:250
2762
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:259
2763
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:265
2764
msgctxt "s2member-front"
2765
msgid "Nothing to cancel. You have NO recurring fees."
2766
msgstr ""
2767
2768
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:250
2769
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:528
2770
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:271
2771
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:606
2772
msgctxt "s2member-front"
2773
msgid "You must <a href=\"%s\" rel=\"nofollow\">log in</a> to update your billing information."
2774
msgstr ""
2775
2776
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:253
2777
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:274
2778
msgctxt "s2member-front"
2779
msgid "Nothing to update. You're NOT a paid Member."
2780
msgstr ""
2781
2782
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:258
2783
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:261
2784
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:279
2785
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:288
2786
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:300
2787
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:306
2788
msgctxt "s2member-front"
2789
msgid "Nothing to update. You have NO recurring fees. Or, your billing profile is no longer active. Please contact Support if you need assistance."
2790
msgstr ""
2791
2792
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:267
2793
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:312
2794
msgctxt "s2member-admin"
2795
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2796
msgstr ""
2797
2798
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:270
2799
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:315
2800
msgctxt "s2member-admin"
2801
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [0-%s]."
2802
msgstr ""
2803
2804
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:273
2805
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:361
2806
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:318
2807
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:424
2808
msgctxt "s2member-admin"
2809
msgid "Invalid form configuration. Invalid \"ccaps\" attribute. Custom Capabilities. When provided, must be all lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
2810
msgstr ""
2811
2812
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:276
2813
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:385
2814
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:321
2815
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:466
2816
msgctxt "s2member-admin"
2817
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be numeric."
2818
msgstr ""
2819
2820
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:279
2821
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:388
2822
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:324
2823
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:469
2824
msgctxt "s2member-admin"
2825
msgid "Invalid form configuration. Invalid \"tp\" attribute. The Trial Period. When provided, must be >= 1."
2826
msgstr ""
2827
2828
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:282
2829
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:391
2830
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:327
2831
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:472
2832
msgctxt "s2member-admin"
2833
msgid "Invalid form configuration. Missing \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2834
msgstr ""
2835
2836
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:285
2837
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:394
2838
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:330
2839
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:475
2840
msgctxt "s2member-admin"
2841
msgid "Invalid form configuration. Invalid \"tt\" attribute. The Trial Term. When \"tp\" is provided, \"tt\" (Trial Term) must be one of D,W,M,Y."
2842
msgstr ""
2843
2844
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:288
2845
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:333
2846
msgctxt "s2member-admin"
2847
msgid "Invalid form configuration. Invalid \"custom\" attribute. When provided, must start with your domain name."
2848
msgstr ""
2849
2850
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:293
2851
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:338
2852
msgctxt "s2member-admin"
2853
msgid "Invalid form configuration. Missing \"ids\" attribute. Must contain comma-delimited Post/Page IDs."
2854
msgstr ""
2855
2856
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:296
2857
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:341
2858
msgctxt "s2member-admin"
2859
msgid "Invalid form configuration. Invalid \"ids\" attribute. Must contain comma-delimited Post/Page IDs. Must contain [0-9,] only."
2860
msgstr ""
2861
2862
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:299
2863
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:344
2864
msgctxt "s2member-admin"
2865
msgid "Invalid form configuration. Missing \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2866
msgstr ""
2867
2868
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:302
2869
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:347
2870
msgctxt "s2member-admin"
2871
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be numeric."
2872
msgstr ""
2873
2874
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:305
2875
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:350
2876
msgctxt "s2member-admin"
2877
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be >= 1."
2878
msgstr ""
2879
2880
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:308
2881
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:353
2882
msgctxt "s2member-admin"
2883
msgid "Invalid form configuration. Invalid \"exp\" attribute. Specific Post/Page Expiration (in hours). Must be <= 43800."
2884
msgstr ""
2885
2886
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:311
2887
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:356
2888
msgctxt "s2member-admin"
2889
msgid "Invalid form configuration. Missing \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2890
msgstr ""
2891
2892
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:314
2893
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:359
2894
msgctxt "s2member-admin"
2895
msgid "Invalid form configuration. Invalid \"sp_ids_exp\" internal attribute. Please check Shortcode Attributes."
2896
msgstr ""
2897
2898
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:317
2899
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:367
2900
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:362
2901
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:430
2902
msgctxt "s2member-admin"
2903
msgid "Invalid form configuration. Missing \"desc\" attribute. Please provide a Description for this form."
2904
msgstr ""
2905
2906
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:320
2907
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:370
2908
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:365
2909
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:433
2910
msgctxt "s2member-admin"
2911
msgid "Invalid form configuration. Your \"desc\" (Description) attribute must be <= 100 characters long."
2912
msgstr ""
2913
2914
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:323
2915
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:373
2916
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:368
2917
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:436
2918
msgctxt "s2member-admin"
2919
msgid "Invalid form configuration. Missing \"custom\" attribute. Must start with your domain name."
2920
msgstr ""
2921
2922
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:326
2923
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:371
2924
msgctxt "s2member-admin"
2925
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with your domain name."
2926
msgstr ""
2927
2928
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:329
2929
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:379
2930
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:374
2931
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:442
2932
msgctxt "s2member-admin"
2933
msgid "Invalid form configuration. Missing \"cc\" attribute. Must be a 3 character Currency Code."
2934
msgstr ""
2935
2936
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:332
2937
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:382
2938
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:377
2939
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:445
2940
msgctxt "s2member-admin"
2941
msgid "Invalid form configuration. Invalid \"cc\" attribute. Must be a 3 character Currency Code."
2942
msgstr ""
2943
2944
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:335
2945
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:463
2946
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:398
2947
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:535
2948
msgctxt "s2member-admin"
2949
msgid "Invalid form configuration. Missing \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2950
msgstr ""
2951
2952
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:338
2953
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:466
2954
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:401
2955
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:538
2956
msgctxt "s2member-admin"
2957
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be numeric."
2958
msgstr ""
2959
2960
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:341
2961
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:469
2962
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:404
2963
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:541
2964
msgctxt "s2member-admin"
2965
msgid "Invalid form configuration. Invalid \"ra\" attribute. The Regular Amount. Must be >= 0.00."
2966
msgstr ""
2972
msgstr ""
2973
2974
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:349
2975
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:412
2976
msgctxt "s2member-front"
2977
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> to update your billing plan."
2978
msgstr ""
2979
2980
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:352
2981
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:415
2982
msgctxt "s2member-front"
2983
msgid "You must <a href=\"%s\" rel=\"nofollow\">login</a> before making this purchase."
2984
msgstr ""
2985
2986
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:355
2987
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:418
2988
msgctxt "s2member-admin"
2989
msgid "Invalid form configuration. Missing \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
2990
msgstr ""
2991
2992
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:358
2993
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:421
2994
msgctxt "s2member-admin"
2995
msgid "Invalid form configuration. Invalid \"level\" attribute. Membership Level. Must be numeric [1-%s], or an asterisk (*)."
2996
msgstr ""
2997
2998
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:364
2999
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:427
3000
msgctxt "s2member-admin"
3001
msgid "Invalid form configuration. Missing or invalid \"ccaps\" attribute. When \"level\" is \"*\" for (Independent Custom Capabilities), \"ccaps\" is required. All lowercase [a-z_0-9,]. A preceding `-all,` directive is also acceptable."
3002
msgstr ""
3003
3004
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:376
3005
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:439
3006
msgctxt "s2member-admin"
3007
msgid "Invalid form configuration. Invalid \"custom\" attribute. Must start with matching domain."
3008
msgstr ""
3009
3010
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:397
3011
msgctxt "s2member-admin"
3012
+ msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. There is an Intial/Trial amount, and \"tt\" (Trial Term) attribute is \"D\", and \"tp\" (Trial Period) > 365."
3013
msgstr ""
3014
3015
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:400
3016
msgctxt "s2member-admin"
3017
+ msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. There is an Intial/Trial amount, and \"tt\" (Trial Term) attribute is \"W\", and \"tp\" (Trial Period) > 52."
3018
msgstr ""
3019
3020
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:403
3021
msgctxt "s2member-admin"
3022
+ msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. There is an Intial/Trial amount, and \"tt\" (Trial Term) attribute is \"M\", and \"tp\" (Trial Period) > 12."
3023
msgstr ""
3024
3025
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:406
3026
msgctxt "s2member-admin"
3027
+ msgid "Invalid form configuration. Invalid \"tt, tp\" attributes. There is an Intial/Trial amount, and \"tt\" (Trial Term) attribute is \"Y\", and \"tp\" (Trial Period) > 1."
3028
msgstr ""
3029
3030
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:409
3031
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:478
3032
msgctxt "s2member-admin"
3033
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be numeric."
3034
msgstr ""
3035
3036
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:412
3037
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:481
3038
msgctxt "s2member-admin"
3039
msgid "Invalid form configuration. Invalid \"ta\" attribute. The Trial Amount. When provided, must be >= 0.00."
3040
msgstr ""
3045
msgstr ""
3046
3047
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:418
3048
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:487
3049
msgctxt "s2member-admin"
3050
msgid "Invalid form configuration. Missing \"rp\" attribute. The Regular Period. Must be >= 1."
3051
msgstr ""
3052
3053
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:421
3054
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:490
3055
msgctxt "s2member-admin"
3056
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be numeric."
3057
msgstr ""
3058
3059
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:424
3060
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:493
3061
msgctxt "s2member-admin"
3062
msgid "Invalid form configuration. Invalid \"rp\" attribute. The Regular Period. Must be >= 1."
3063
msgstr ""
3064
3065
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:427
3066
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:496
3067
msgctxt "s2member-admin"
3068
msgid "Invalid form configuration. Missing \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3069
msgstr ""
3070
3071
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:430
3072
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:499
3073
msgctxt "s2member-admin"
3074
msgid "Invalid form configuration. Invalid \"rt\" attribute. The Regular Term. Must be one of D,W,M,Y,L."
3075
msgstr ""
3080
msgstr ""
3081
3082
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:436
3083
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:502
3084
msgctxt "s2member-admin"
3085
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"D\", \"rp\" (Regular Period) > 365, and \"rr\" is not \"BN\" (Buy Now)."
3086
msgstr ""
3087
3088
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:439
3089
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:505
3090
msgctxt "s2member-admin"
3091
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"W\", \"rp\" (Regular Period) > 52, and \"rr\" is not \"BN\" (Buy Now)."
3092
msgstr ""
3093
3094
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:442
3095
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:508
3096
msgctxt "s2member-admin"
3097
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"M\", \"rp\" (Regular Period) > 12, and \"rr\" is not \"BN\" (Buy Now)."
3098
msgstr ""
3099
3100
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:445
3101
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:517
3102
msgctxt "s2member-admin"
3103
msgid "Invalid form configuration. Invalid \"rt, rp, rr\" attributes. The \"rt\" (Regular Term) attribute is \"Y\", \"rp\" (Regular Period) > 1, and \"rr\" is not \"BN\" (Buy Now)."
3104
msgstr ""
3105
3106
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:448
3107
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:520
3108
msgctxt "s2member-admin"
3109
msgid "Invalid form configuration. Invalid \"rp, rt\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rp\" (Regular Period) > 1."
3110
msgstr ""
3111
3112
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:451
3113
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:523
3114
msgctxt "s2member-admin"
3115
msgid "Invalid form configuration. Invalid \"rt, rr\" attributes. The \"rt\" (Regular Term) attribute is \"L\" (Lifetime), and \"rr\" is not \"BN\" (Buy Now)."
3116
msgstr ""
3117
3118
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:454
3119
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:526
3120
msgctxt "s2member-admin"
3121
msgid "Invalid form configuration. Missing \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3122
msgstr ""
3123
3124
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:457
3125
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:460
3126
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:529
3127
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:532
3128
msgctxt "s2member-admin"
3129
msgid "Invalid form configuration. Invalid \"level_ccaps_eotper\" attribute. Please check Shortcode Attributes."
3130
msgstr ""
3131
3132
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:475
3133
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:547
3134
msgctxt "s2member-admin"
3135
msgid "Invalid form configuration. Invalid \"rr\" attribute. Regular Recurring. When provided, must be 0, 1, or BN."
3136
msgstr ""
3137
3138
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:478
3139
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:550
3140
msgctxt "s2member-admin"
3141
msgid "Invalid form configuration. Invalid \"rr, tp\" attributes. The \"rr\" (Regular Recurring) attribute is \"BN\" (Buy Now), and \"tp\" (Trial Period) is not \"0\"."
3142
msgstr ""
3143
3144
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:481
3145
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:553
3146
msgctxt "s2member-admin"
3147
msgid "Invalid form configuration. Invalid \"level, rr\" attributes. The \"level\" (Level) attribute is \"*\" for (Independent Custom Capabilities), and \"rr\" is not \"BN\" (Buy Now)."
3148
msgstr ""
3149
3150
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:484
3151
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:556
3152
msgctxt "s2member-admin"
3153
msgid "Invalid form configuration. Invalid \"ta, tp, tt\" attributes. Trial Period. When provided, these cannot be exactly the same as your \"ra, rp, rt\" attributes."
3154
msgstr ""
3155
3156
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:487
3157
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:559
3158
msgctxt "s2member-admin"
3159
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be numeric."
3160
msgstr ""
3161
3162
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:490
3163
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:562
3164
msgctxt "s2member-admin"
3165
msgid "Invalid form configuration. Invalid \"rrt\" attribute. Recurring Times (fixed). When provided, must be >= 1."
3166
msgstr ""
3167
3168
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:493
3169
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:565
3170
msgctxt "s2member-admin"
3171
msgid "Invalid form configuration. Invalid \"rr, rrt\" attributes. When \"rrt\" (Recurring Times) is provided, \"rr\" (Regular Recurring) must be 1."
3172
msgstr ""
3176
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:614
3177
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:670
3178
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:762
3179
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:598
3180
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:648
3181
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:692
3182
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:748
3183
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:840
3184
msgctxt "s2member-front"
3185
msgid "Missing or invalid Security Code. Please try again."
3186
msgstr ""
3188
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:523
3189
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:531
3190
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:681
3191
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:601
3192
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:609
3193
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:759
3194
msgctxt "s2member-admin"
3195
msgid "Unable to process. You are an Administrator. Stopping here for security. Otherwise, an Administrator could lose access."
3196
msgstr ""
3198
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:534
3199
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:631
3200
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:723
3201
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:612
3202
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:709
3203
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:801
3204
msgctxt "s2member-front"
3205
msgid "Missing Card Type (Billing Method). Please try again."
3206
msgstr ""
3210
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:637
3211
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:726
3212
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:729
3213
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:615
3214
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:712
3215
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:715
3216
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:804
3217
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:807
3218
msgctxt "s2member-front"
3219
msgid "Invalid Card Type (Billing Method). Please try again."
3220
msgstr ""
3222
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:540
3223
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:640
3224
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:732
3225
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:618
3226
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:718
3227
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:810
3228
msgctxt "s2member-front"
3229
msgid "Missing Card Number. Please try again."
3230
msgstr ""
3232
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:543
3233
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:643
3234
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:735
3235
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:621
3236
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:721
3237
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:813
3238
msgctxt "s2member-front"
3239
msgid "Missing Card Expiration Date (mm/yyyy). Please try again."
3240
msgstr ""
3242
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:546
3243
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:646
3244
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:738
3245
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:624
3246
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:724
3247
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:816
3248
msgctxt "s2member-front"
3249
msgid "Invalid Card Expiration Date. Must be in this format (mm/yyyy). Please try again."
3250
msgstr ""
3252
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:549
3253
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:649
3254
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:741
3255
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:627
3256
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:727
3257
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:819
3258
msgctxt "s2member-front"
3259
msgid "Missing Card Verification Code. It's on the back of your Card. 3-4 digits. Please try again."
3260
msgstr ""
3262
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:552
3263
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:652
3264
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:744
3265
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:630
3266
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:730
3267
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:822
3268
msgctxt "s2member-front"
3269
msgid "Missing Card Start Date, or Issue #. Required for Maestro/Solo. Please try again."
3270
msgstr ""
3272
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:555
3273
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:655
3274
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:747
3275
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:633
3276
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:733
3277
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:825
3278
msgctxt "s2member-front"
3279
msgid "Missing Street Address. Please try again."
3280
msgstr ""
3282
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:558
3283
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:658
3284
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:750
3285
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:636
3286
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:736
3287
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:828
3288
msgctxt "s2member-front"
3289
msgid "Missing City/Town. Please try again."
3290
msgstr ""
3292
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:561
3293
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:661
3294
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:753
3295
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:639
3296
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:739
3297
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:831
3298
msgctxt "s2member-front"
3299
msgid "Missing State/Province. Please try again."
3300
msgstr ""
3302
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:564
3303
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:664
3304
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:756
3305
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:642
3306
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:742
3307
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:834
3308
msgctxt "s2member-front"
3309
msgid "Missing Country. Please try again."
3310
msgstr ""
3312
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:567
3313
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:667
3314
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:759
3315
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:645
3316
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:745
3317
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:837
3318
msgctxt "s2member-front"
3319
msgid "Missing Postal/Zip Code. Please try again."
3320
msgstr ""
3322
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:575
3323
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:619
3324
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:684
3325
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:653
3326
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:697
3327
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:762
3328
msgctxt "s2member-front"
3329
msgid "Missing First Name. Please try again."
3330
msgstr ""
3332
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:578
3333
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:622
3334
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:687
3335
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:656
3336
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:700
3337
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:765
3338
msgctxt "s2member-front"
3339
msgid "Missing Last Name. Please try again."
3340
msgstr ""
3342
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:581
3343
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:625
3344
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:690
3345
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:659
3346
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:703
3347
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:768
3348
msgctxt "s2member-front"
3349
msgid "Missing or invalid Email Address. Please try again."
3350
msgstr ""
3352
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:584
3353
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:628
3354
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:693
3355
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:662
3356
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:706
3357
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:771
3358
msgctxt "s2member-front"
3359
msgid "Invalid Email Address. Please try again."
3360
msgstr ""
3361
3362
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:587
3363
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:696
3364
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:665
3365
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:774
3366
msgctxt "s2member-front"
3367
msgid "That Email Address is already in use. Please try again."
3368
msgstr ""
3369
3370
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:590
3371
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:699
3372
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:668
3373
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:777
3374
msgctxt "s2member-front"
3375
msgid "Missing or invalid Username. Please try again."
3376
msgstr ""
3377
3378
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:593
3379
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:702
3380
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:671
3381
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:780
3382
msgctxt "s2member-front"
3383
msgid "Invalid Username. Please try again. Use ONLY lowercase alphanumerics."
3384
msgstr ""
3385
3386
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:596
3387
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:705
3388
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:674
3389
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:783
3390
msgctxt "s2member-front"
3391
msgid "That Username is already in use. Please try again."
3392
msgstr ""
3393
3394
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:602
3395
#: s2member-pro/includes/classes/gateways/authnet/authnet-responses.inc.php:711
3396
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:680
3397
+ #: s2member-pro/includes/classes/gateways/paypal/paypal-responses.inc.php:789
3398
msgctxt "s2member-front"
3399
msgid "Missing Password. Please try again."
3400
msgstr ""
3401