PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110926
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110926
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / includes / classes / user-new-in.inc.php

user-new-in.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 110926, at includes/classes/user-new-in.inc.php

281 lines 24.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * New User handlers ( inner processing routines ).
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\New_Users
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_user_new_in"))
21 {
22 /**
23 * New User handlers ( inner processing routines ).
24 *
25 * @package s2Member\New_Users
26 * @since 3.5
27 */
28 class c_ws_plugin__s2member_user_new_in
29 {
30 /**
31 * Callback adds Custom Fields to `/wp-admin/user-new.php`.
32 *
33 * We have to buffer because `/user-new.php` has NO Hooks.
34 *
35 * @package s2Member\New_Users
36 * @since 3.5
37 *
38 * @attaches-to: ``ob_start("c_ws_plugin__s2member_user_new_in::_admin_user_new_fields");``
39 *
40 * @return str Output buffer.
41 */
42 public static function _admin_user_new_fields ($buffer = FALSE)
43 {
44 global $pagenow; /* The current admin page file name. */
45 /**/
46 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
47 do_action ("_ws_plugin__s2member_before_admin_user_new_fields", get_defined_vars ());
48 unset ($__refs, $__v); /* Unset defined __refs, __v. */
49 /**/
50 if (is_blog_admin () && $pagenow === "user-new.php" && current_user_can ("create_users"))
51 {
52 $_p = c_ws_plugin__s2member_utils_strings::trim_deep (stripslashes_deep ($_POST));
53 /**/
54 $unfs = '<div style="margin:25px 0 25px 0; height:1px; line-height:1px; background:#CCCCCC;"></div>' . "\n";
55 /**/
56 $unfs .= '<h3 style="position:relative;"><img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/large-icon.png" title="s2Member ( a Membership management system for WordPress® )" alt="" style="position:absolute; top:-15px; right:0; border:0;" />s2Member Configuration &amp; Profile Fields' . ((is_multisite ()) ? ' ( for this Blog )' : '') . '</h3>' . "\n";
57 /**/
58 $unfs .= '<table class="form-table">' . "\n";
59 /**/
60 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
61 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before", get_defined_vars ());
62 unset ($__refs, $__v); /* Unset defined __refs, __v. */
63 /**/
64 if (is_multisite ()) /* Multisite Networking is currently lacking these fields; we pop them in. */
65 {
66 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
67 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_first_name", get_defined_vars ());
68 unset ($__refs, $__v); /* Unset defined __refs, __v. */
69 /**/
70 $unfs .= '<tr>' . "\n";
71 $unfs .= '<th><label for="ws-plugin--s2member-user-new-first-name">First Name:</label></th>' . "\n";
72 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_first_name" id="ws-plugin--s2member-user-new-first-name" value="' . esc_attr ($_p["ws_plugin__s2member_user_new_first_name"]) . '" class="regular-text" /></td>' . "\n";
73 $unfs .= '</tr>' . "\n";
74 /**/
75 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
76 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_first_name", get_defined_vars ());
77 unset ($__refs, $__v); /* Unset defined __refs, __v. */
78 /**/
79 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
80 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_last_name", get_defined_vars ());
81 unset ($__refs, $__v); /* Unset defined __refs, __v. */
82 /**/
83 $unfs .= '<tr>' . "\n";
84 $unfs .= '<th><label for="ws-plugin--s2member-user-new-last-name">Last Name:</label></th>' . "\n";
85 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_last_name" id="ws-plugin--s2member-user-new-last-name" value="' . esc_attr ($_p["ws_plugin__s2member_user_new_last_name"]) . '" class="regular-text" /></td>' . "\n";
86 $unfs .= '</tr>' . "\n";
87 /**/
88 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
89 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_last_name", get_defined_vars ());
90 unset ($__refs, $__v); /* Unset defined __refs, __v. */
91 }
92 /**/
93 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
94 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_subscr_gateway", get_defined_vars ());
95 unset ($__refs, $__v); /* Unset defined __refs, __v. */
96 /**/
97 $unfs .= '<tr>' . "\n";
98 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-subscr-gateway">Paid Subscr. Gateway:</label> <a href="#" onclick="alert(\'A Payment Gateway code is associated with the Paid Subscr. ID below. A Paid Subscription ID ( or a Buy Now Transaction ID ) is only valid for paid Members. Also known as ( a Recurring Profile ID, a ClickBank® Receipt #, a Google® TID/SID ( with an s2 prefix ), an AliPay® Trade No. ). Under normal circumstances, this is filled automatically by s2Member. This field is ONLY here for Customer Service purposes; just in case you ever need to enter a Paid Subscr. Gateway/ID manually. This field will be empty for Free Subscribers, and/or anyone who is NOT paying you.\\n\\nThe value of Paid® Subscr. ID, can be a PayPal® Standard `Subscription ID`, or a PayPal® Pro `Recurring Profile ID`, or a PayPal® `Transaction ID`; depending on the type of sale. Your PayPal® account will supply this information. If you\\\'re using Google® Checkout, use the TID/SID value in the sale Description; it always starts with `s2-`. ClickBank® provides a Receipt #, ccBill® provides a Subscription ID, Authorize.Net® provides a Subscription ID, and AliPay® provides a Transaction ID. The general rule is... IF there\\\'s a Subscription ID, use that! If there\\\'s NOT, use the Transaction ID.\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
99 $unfs .= '<td><select name="ws_plugin__s2member_user_new_s2member_subscr_gateway" id="ws-plugin--s2member-user-new-s2member-subscr-gateway" style="width:25em;"><option value=""></option>' . "\n";
100 foreach (apply_filters ("ws_plugin__s2member_profile_s2member_subscr_gateways", array ("paypal" => "PayPal® ( code: paypal )"), get_defined_vars ()) as $gateway => $gateway_name)
101 $unfs .= '<option value="' . esc_attr ($gateway) . '"' . (($gateway === $_p["ws_plugin__s2member_user_new_s2member_subscr_gateway"]) ? ' selected="selected"' : '') . '>' . esc_html ($gateway_name) . '</option>' . "\n";
102 $unfs .= '</select>' . "\n";
103 $unfs .= '</td>' . "\n";
104 $unfs .= '</tr>' . "\n";
105 /**/
106 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
107 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_subscr_gateway", get_defined_vars ());
108 unset ($__refs, $__v); /* Unset defined __refs, __v. */
109 /**/
110 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
111 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_subscr_id", get_defined_vars ());
112 unset ($__refs, $__v); /* Unset defined __refs, __v. */
113 /**/
114 $unfs .= '<tr>' . "\n";
115 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-subscr-id">Paid Subscr. ID:</label> <a href="#" onclick="alert(\'A Paid Subscription ID ( or a Buy Now Transaction ID ) is only valid for paid Members. Also known as ( a Recurring Profile ID, a ClickBank® Receipt #, a Google® TID/SID ( with an s2 prefix ), an AliPay® Trade No. ). Under normal circumstances, this is filled automatically by s2Member. This field is ONLY here for Customer Service purposes; just in case you ever need to enter a Paid Subscr. Gateway/ID manually. This field will be empty for Free Subscribers, and/or anyone who is NOT paying you.\\n\\nThe value of Paid® Subscr. ID, can be a PayPal® Standard `Subscription ID`, or a PayPal® Pro `Recurring Profile ID`, or a PayPal® `Transaction ID`; depending on the type of sale. Your PayPal® account will supply this information. If you\\\'re using Google® Checkout, use the TID/SID value in the sale Description; it always starts with `s2-`. ClickBank® provides a Receipt #, ccBill® provides a Subscription ID, Authorize.Net® provides a Subscription ID, and AliPay® provides a Transaction ID. The general rule is... if there\\\'s a Subscription ID, use that! If there\\\'s NOT, use the Transaction ID.\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
116 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_s2member_subscr_id" id="ws-plugin--s2member-user-new-s2member-subscr-id" value="' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_subscr_id"]) . '" class="regular-text" /></td>' . "\n";
117 $unfs .= '</tr>' . "\n";
118 /**/
119 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
120 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_subscr_id", get_defined_vars ());
121 unset ($__refs, $__v); /* Unset defined __refs, __v. */
122 /**/
123 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
124 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_custom", get_defined_vars ());
125 unset ($__refs, $__v); /* Unset defined __refs, __v. */
126 /**/
127 $unfs .= '<tr>' . "\n";
128 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-custom">Custom Value:</label> <a href="#" onclick="alert(\'A Paid Subscription is always associated with a Custom String that is passed through the custom=\\\'\\\'' . c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"]), 3) . '\\\'\\\' attribute of your Shortcode. This Custom Value, MUST always start with your domain name. However, you can also pipe delimit additional values after your domain, if you need to.\\n\\nFor example:\n' . c_ws_plugin__s2member_utils_strings::esc_js_sq (esc_attr ($_SERVER["HTTP_HOST"]), 3) . '|cv1|cv2|cv3\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
129 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_s2member_custom" id="ws-plugin--s2member-user-new-s2member-custom" value="' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_custom"]) . '" class="regular-text" /></td>' . "\n";
130 $unfs .= '</tr>' . "\n";
131 /**/
132 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
133 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_custom", get_defined_vars ());
134 unset ($__refs, $__v); /* Unset defined __refs, __v. */
135 /**/
136 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
137 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_registration_ip", get_defined_vars ());
138 unset ($__refs, $__v); /* Unset defined __refs, __v. */
139 /**/
140 $unfs .= '<tr>' . "\n";
141 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-registration-ip">Registration IP:</label> <a href="#" onclick="alert(\'This is the IP Address the User had at the time of registration. If you don\\\'t know the User\\\'s IP Address, just leave this blank. If this is left empty, s2Member will make attempts in the future to grab the User\\\'s IP Address.\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
142 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_s2member_registration_ip" id="ws-plugin--s2member-user-new-s2member-registration-ip" value="' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_registration_ip"]) . '" class="regular-text" /></td>' . "\n";
143 $unfs .= '</tr>' . "\n";
144 /**/
145 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
146 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_registration_ip", get_defined_vars ());
147 unset ($__refs, $__v); /* Unset defined __refs, __v. */
148 /**/
149 if (!is_multisite () || !c_ws_plugin__s2member_utils_conds::is_multisite_farm () || is_main_site ())
150 /* ^ Will change once Custom Capabilities are compatible with a Blog Farm. */
151 {
152 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
153 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_ccaps", get_defined_vars ());
154 unset ($__refs, $__v); /* Unset defined __refs, __v. */
155 /**/
156 $unfs .= '<tr>' . "\n";
157 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-ccaps">Custom Capabilities:</label> <a href="#" onclick="alert(\'Optional. This is VERY advanced.\\nSee: s2Member -> API Scripting -> Custom Capabilities.' . ((is_multisite ()) ? '\\n\\nCustom Capabilities are assigned on a per-Blog basis. So having a set of Custom Capabilities for one Blog, and having NO Custom Capabilities on another Blog - is very common. This is how permissions are designed to work.' : '') . '\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
158 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_s2member_ccaps" id="ws-plugin--s2member-user-new-s2member-ccaps" value="' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_ccaps"]) . '" class="regular-text" onkeyup="if(this.value.match(/[^a-z_0-9,]/)) this.value = jQuery.trim (jQuery.trim (this.value).replace (/[ \-]/g, \'_\').replace (/[^a-z_0-9,]/gi, \'\').toLowerCase ());" /></td>' . "\n";
159 $unfs .= '</tr>' . "\n";
160 /**/
161 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
162 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_ccaps", get_defined_vars ());
163 unset ($__refs, $__v); /* Unset defined __refs, __v. */
164 }
165 /**/
166 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
167 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_auto_eot_time", get_defined_vars ());
168 unset ($__refs, $__v); /* Unset defined __refs, __v. */
169 /**/
170 $unfs .= '<tr>' . "\n";
171 $unfs .= '<th><label for="ws-plugin--s2member-user-new-auto-eot-time">Automatic EOT Time:</label> <a href="#" onclick="alert(\'EOT = End Of Term. ( i.e. Account Expiration / Termination. ).\\n\\nIf you leave this empty, s2Member will configure an EOT Time automatically, based on the paid Subscription associated with this account. In other words, if a paid Subscription expires, is cancelled, terminated, refunded, reversed, or charged back to you; s2Member will deal with the EOT automatically.\\n\\nThat being said, if you would rather take control over this, you can. If you type in a date manually, s2Member will obey the Auto-EOT Time that you\\\'ve given, no matter what. In other words, you can force certain Members to expire automatically, at a time that you specify. s2Member will obey.\\n\\nValid formats for Automatic EOT Time:\\n\\nmm/dd/yyyy\\nyyyy-mm-dd\\n+1 year\\n+2 weeks\\n+2 months\\n+10 minutes\\nnext thursday\\ntomorrow\\ntoday\\n\\n* anything compatible with PHP\\\'s strtotime() function.\'); return false;" tabindex="-1">[?]</a>' . (($auto_eot_time) ? '<br /><small>( <a href="http://www.world-time-zones.org/zones/greenwich-mean-time.htm" target="_blank" rel="external">Universal Time / GMT</a> )</small>' : '') . '</th>' . "\n";
172 $unfs .= '<td><input type="text" name="ws_plugin__s2member_user_new_s2member_auto_eot_time" id="ws-plugin--s2member-user-new-auto-eot-time" value="' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_auto_eot_time"]) . '" class="regular-text" /></td>' . "\n";
173 $unfs .= '</tr>' . "\n";
174 /**/
175 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
176 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_auto_eot_time", get_defined_vars ());
177 unset ($__refs, $__v); /* Unset defined __refs, __v. */
178 /**/
179 if (c_ws_plugin__s2member_list_servers::list_servers_integrated ()) /* Only if integrated with s2Member. */
180 {
181 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
182 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_opt_in", get_defined_vars ());
183 unset ($__refs, $__v); /* Unset defined __refs, __v. */
184 /**/
185 $unfs .= '<tr>' . "\n";
186 $unfs .= '<th><label for="ws-plugin--s2member-user-new-opt-in">Process List Servers:</label> <a href="#" onclick="alert(\'You have at least one List Server integrated with s2Member. Would you like to process a confirmation request for this new User? If not, just leave the box unchecked.\'); return false;" tabindex="-1">[?]</a></th>' . "\n";
187 $unfs .= '<td><label><input type="checkbox" name="ws_plugin__s2member_user_new_opt_in" id="ws-plugin--s2member-user-new-opt-in" value="1"' . (($_p["ws_plugin__s2member_user_new_opt_in"]) ? ' checked="checked"' : '') . ' /> Yes, send a mailing list confirmation email to this new User.</label></td>' . "\n";
188 $unfs .= '</tr>' . "\n";
189 /**/
190 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
191 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_opt_in", get_defined_vars ());
192 unset ($__refs, $__v); /* Unset defined __refs, __v. */
193 }
194 /**/
195 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) /* Now, do we have Custom Fields? */
196 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ("any", "administrative"))
197 {
198 $unfs .= '<tr>' . "\n";
199 $unfs .= '<td colspan="2">' . "\n";
200 $unfs .= '<div style="height:1px; line-height:1px; background:#CCCCCC;"></div>' . "\n";
201 $unfs .= '</td>' . "\n";
202 $unfs .= '</tr>' . "\n";
203 /**/
204 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
205 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_custom_fields", get_defined_vars ());
206 unset ($__refs, $__v); /* Unset defined __refs, __v. */
207 /**/
208 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
209 {
210 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
211 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_during_custom_fields_before", get_defined_vars ());
212 unset ($__refs, $__v); /* Unset defined __refs, __v. */
213 /**/
214 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
215 {
216 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
217 $field_id_class = preg_replace ("/_/", "-", $field_var);
218 /**/
219 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
220 if (apply_filters ("_ws_plugin__s2member_during_admin_user_new_fields_during_custom_fields_display", true, get_defined_vars ()))
221 {
222 if (!empty ($field["section"]) && $field["section"] === "yes") /* Starts a new section? */
223 $unfs .= '<tr><td colspan="2"><div class="ws-plugin--s2member-user-new-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div></td></tr>';
224 /**/
225 $unfs .= '<tr>' . "\n";
226 $unfs .= '<th><label for="ws-plugin--s2member-user-new-' . esc_attr ($field_id_class) . '">' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ucwords (preg_replace ("/_/", " ", $field_var)) : $field["label"]) . ':</label></th>' . "\n";
227 $unfs .= '<td>' . c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_user_new_", "ws-plugin--s2member-user-new-", "", ((preg_match ("/^(text|textarea|select|selects)$/", $field["type"])) ? "width:99%;" : ""), "", "", $_p, $_p["ws_plugin__s2member_user_new_" . $field_var], "administrative") . '</td>' . "\n";
228 $unfs .= '</tr>' . "\n";
229 }
230 unset ($__refs, $__v); /* Unset defined __refs, __v. */
231 }
232 /**/
233 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
234 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_during_custom_fields_after", get_defined_vars ());
235 unset ($__refs, $__v); /* Unset defined __refs, __v. */
236 }
237 /**/
238 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
239 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_custom_fields", get_defined_vars ());
240 unset ($__refs, $__v); /* Unset defined __refs, __v. */
241 /**/
242 $unfs .= '<tr>' . "\n";
243 $unfs .= '<td colspan="2">' . "\n";
244 $unfs .= '<div style="height:1px; line-height:1px; background:#CCCCCC;"></div>' . "\n";
245 $unfs .= '</td>' . "\n";
246 $unfs .= '</tr>' . "\n";
247 }
248 /**/
249 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
250 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_before_notes", get_defined_vars ());
251 unset ($__refs, $__v); /* Unset defined __refs, __v. */
252 /**/
253 $unfs .= '<tr>' . "\n";
254 $unfs .= '<th><label for="ws-plugin--s2member-user-new-s2member-notes">Administrative Notes:</label> <a href="#" onclick="alert(\'This is for Administrative purposes. You can keep a list of Notations about this account. These Notations are private; Users/Members will never see these.\\n\\n*Note* The s2Member software may `append` Notes to this field occasionally, under special circumstances. For example, when/if s2Member demotes a paid Member to a Free Subscriber, s2Member will leave a Note in this field.\'); return false;" tabindex="-1">[?]</a><br /><br /><small>These Notations are private; Users/Members will never see any of these notes.</small></th>' . "\n";
255 $unfs .= '<td><textarea name="ws_plugin__s2member_user_new_s2member_notes" id="ws-plugin--s2member-user-new-s2member-notes" rows="5" wrap="off" spellcheck="false" style="width:99%;">' . format_to_edit ($_p["ws_plugin__s2member_user_new_s2member_notes"]) . '</textarea></td>' . "\n";
256 $unfs .= '</tr>' . "\n";
257 /**/
258 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
259 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after_notes", get_defined_vars ());
260 unset ($__refs, $__v); /* Unset defined __refs, __v. */
261 /**/
262 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
263 do_action ("_ws_plugin__s2member_during_admin_user_new_fields_after", get_defined_vars ());
264 unset ($__refs, $__v); /* Unset defined __refs, __v. */
265 /**/
266 $unfs .= '</table>' . "\n";
267 /**/
268 $unfs .= '<div style="margin:25px 0 25px 0; height:1px; line-height:1px; background:#CCCCCC;"></div>' . "\n";
269 /**/
270 $buffer = preg_replace ("/(\<\/table\>)(\s*)(\<p\s+class\s*\=\s*['\"]submit['\"]\s*\>)(\s*)(\<input\s+type\s*\=\s*['\"]submit['\"]\s+name\s*\=\s*['\"]createuser['\"])/", "$1$2\n" . $unfs . "$3$4$5", $buffer);
271 }
272 /**/
273 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
274 do_action ("_ws_plugin__s2member_after_admin_user_new_fields", get_defined_vars ());
275 unset ($__refs, $__v); /* Unset defined __refs, __v. */
276 /**/
277 return apply_filters ("_ws_plugin__s2member_admin_user_new_fields", $buffer, get_defined_vars ());
278 }
279 }
280 }
281 ?>