PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110731
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110731
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 / sc-profile-in.inc.php

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

295 lines 17.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Shortcode for `[s2Member-Profile /]` ( 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\Profiles
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_sc_profile_in"))
21 {
22 /**
23 * Shortcode for `[s2Member-Profile /]` ( inner processing routines ).
24 *
25 * @package s2Member\Profiles
26 * @since 3.5
27 */
28 class c_ws_plugin__s2member_sc_profile_in
29 {
30 /**
31 * Handles the Shortcode for: `[s2Member-Profile /]`.
32 *
33 * @package s2Member\Profiles
34 * @since 3.5
35 *
36 * @attaches-to: ``add_shortcode("s2Member-Profile");``
37 *
38 * @param array $attr An array of Attributes.
39 * @param str $content Content inside the Shortcode.
40 * @param str $shortcode The actual Shortcode name itself.
41 * @return str|null The resulting Profile Modifiation Form *( inline )*, or null if not logged-in.
42 */
43 public static function sc_profile ($attr = FALSE, $content = FALSE, $shortcode = FALSE)
44 {
45 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
46 do_action ("ws_plugin__s2member_before_sc_profile", get_defined_vars ());
47 unset ($__refs, $__v); /* Unset defined __refs, __v. */
48 /**/
49 c_ws_plugin__s2member_no_cache::no_cache_constants (true); /* No caching. */
50 /**/
51 $tabindex = apply_filters ("ws_plugin__s2member_sc_profile_tabindex", 0, get_defined_vars ());
52 /**/
53 if (($user = (is_user_logged_in ()) ? wp_get_current_user () : false) && ($user_id = $user->ID))
54 {
55 $attr = c_ws_plugin__s2member_utils_strings::trim_quot_deep ((array)$attr);
56 /**/
57 $attr = shortcode_atts (array (), $attr); /* Possible Attributes. None. */
58 /**/
59 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
60 do_action ("ws_plugin__s2member_before_sc_profile_after_shortcode_atts", get_defined_vars ());
61 unset ($__refs, $__v); /* Unset defined __refs, __v. */
62 /**/
63 ob_start (); /* Start buffering. Allows Hooks to echo output like: `/?s2member_profile=1`. */
64 /**/
65 echo '<form method="post" name="ws_plugin__s2member_profile" id="ws-plugin--s2member-profile">' . "\n";
66 /**/
67 if ($GLOBALS["ws_plugin__s2member_profile_saved"]) /* Respond to successful updates. */
68 {
69 echo '<div id="ws-plugin--s2member-profile-saved">' . "\n";
70 echo 'Profile updated successfully.' . "\n";
71 echo '</div>' . "\n";
72 }
73 /**/
74 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
75 do_action ("ws_plugin__s2member_during_profile_before_table", get_defined_vars ());
76 unset ($__refs, $__v); /* Unset defined __refs, __v. */
77 /**/
78 echo '<table cellpadding="0" cellspacing="0">' . "\n";
79 echo '<tbody>' . "\n";
80 /**/
81 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
82 do_action ("ws_plugin__s2member_during_profile_before_fields", get_defined_vars ());
83 unset ($__refs, $__v); /* Unset defined __refs, __v. */
84 /**/
85 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_username", true, get_defined_vars ()))
86 {
87 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
88 do_action ("ws_plugin__s2member_during_profile_during_fields_before_username", get_defined_vars ());
89 unset ($__refs, $__v); /* Unset defined __refs, __v. */
90 /**/
91 echo '<tr>' . "\n";
92 echo '<td>' . "\n";
93 echo '<label for="ws-plugin--s2member-profile-login">' . "\n";
94 echo '<strong>Username *</strong> <small>( cannot be changed )</small><br />' . "\n";
95 echo '<input aria-required="true" type="text" maxlength="60" name="ws_plugin__s2member_profile_login" id="ws-plugin--s2member-profile-login" class="ws-plugin--s2member-profile-field" value="' . format_to_edit ($user->user_login) . '" disabled="disabled" />' . "\n";
96 echo '</label>' . "\n";
97 echo '</td>' . "\n";
98 echo '</tr>' . "\n";
99 /**/
100 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
101 do_action ("ws_plugin__s2member_during_profile_during_fields_after_username", get_defined_vars ());
102 unset ($__refs, $__v); /* Unset defined __refs, __v. */
103 }
104 /**/
105 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_email", true, get_defined_vars ()))
106 {
107 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
108 do_action ("ws_plugin__s2member_during_profile_during_fields_before_email", get_defined_vars ());
109 unset ($__refs, $__v); /* Unset defined __refs, __v. */
110 /**/
111 echo '<tr>' . "\n";
112 echo '<td>' . "\n";
113 echo '<label for="ws-plugin--s2member-profile-email">' . "\n";
114 echo '<strong>Email Address *</strong><br />' . "\n";
115 echo '<input aria-required="true" data-expected="email" type="text" maxlength="100" name="ws_plugin__s2member_profile_email" id="ws-plugin--s2member-profile-email" class="ws-plugin--s2member-profile-field" value="' . format_to_edit ($user->user_email) . '" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '" />' . "\n";
116 echo '</label>' . "\n";
117 echo '</td>' . "\n";
118 echo '</tr>' . "\n";
119 /**/
120 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
121 do_action ("ws_plugin__s2member_during_profile_during_fields_after_email", get_defined_vars ());
122 unset ($__refs, $__v); /* Unset defined __refs, __v. */
123 }
124 /**/
125 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_names"])
126 {
127 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_first_name", true, get_defined_vars ()))
128 {
129 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
130 do_action ("ws_plugin__s2member_during_profile_during_fields_before_first_name", get_defined_vars ());
131 unset ($__refs, $__v); /* Unset defined __refs, __v. */
132 /**/
133 echo '<tr>' . "\n";
134 echo '<td>' . "\n";
135 echo '<label for="ws-plugin--s2member-profile-first-name">' . "\n";
136 echo '<strong>First Name *</strong><br />' . "\n";
137 echo '<input aria-required="true" type="text" maxlength="100" name="ws_plugin__s2member_profile_first_name" id="ws-plugin--s2member-profile-first-name" class="ws-plugin--s2member-profile-field" value="' . format_to_edit ($user->first_name) . '" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '" />' . "\n";
138 echo '</label>' . "\n";
139 echo '</td>' . "\n";
140 echo '</tr>' . "\n";
141 /**/
142 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
143 do_action ("ws_plugin__s2member_during_profile_during_fields_after_first_name", get_defined_vars ());
144 unset ($__refs, $__v); /* Unset defined __refs, __v. */
145 }
146 /**/
147 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_last_name", true, get_defined_vars ()))
148 {
149 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
150 do_action ("ws_plugin__s2member_during_profile_during_fields_before_last_name", get_defined_vars ());
151 unset ($__refs, $__v); /* Unset defined __refs, __v. */
152 /**/
153 echo '<tr>' . "\n";
154 echo '<td>' . "\n";
155 echo '<label for="ws-plugin--s2member-profile-last-name">' . "\n";
156 echo '<strong>Last Name *</strong><br />' . "\n";
157 echo '<input aria-required="true" type="text" maxlength="100" name="ws_plugin__s2member_profile_last_name" id="ws-plugin--s2member-profile-last-name" class="ws-plugin--s2member-profile-field" value="' . format_to_edit ($user->last_name) . '" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '" />' . "\n";
158 echo '</label>' . "\n";
159 echo '</td>' . "\n";
160 echo '</tr>' . "\n";
161 /**/
162 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
163 do_action ("ws_plugin__s2member_during_profile_during_fields_after_last_name", get_defined_vars ());
164 unset ($__refs, $__v); /* Unset defined __refs, __v. */
165 }
166 /**/
167 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_display_name", true, get_defined_vars ()))
168 {
169 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
170 do_action ("ws_plugin__s2member_during_profile_during_fields_before_display_name", get_defined_vars ());
171 unset ($__refs, $__v); /* Unset defined __refs, __v. */
172 /**/
173 echo '<tr>' . "\n";
174 echo '<td>' . "\n";
175 echo '<label for="ws-plugin--s2member-profile-display-name">' . "\n";
176 echo '<strong>Display Name *</strong><br />' . "\n";
177 echo '<input aria-required="true" type="text" maxlength="100" name="ws_plugin__s2member_profile_display_name" id="ws-plugin--s2member-profile-display-name" class="ws-plugin--s2member-profile-field" value="' . format_to_edit ($user->display_name) . '" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '" />' . "\n";
178 echo '</label>' . "\n";
179 echo '</td>' . "\n";
180 echo '</tr>' . "\n";
181 /**/
182 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
183 do_action ("ws_plugin__s2member_during_profile_during_fields_after_display_name", get_defined_vars ());
184 unset ($__refs, $__v); /* Unset defined __refs, __v. */
185 }
186 }
187 /**/
188 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_custom_fields", true, get_defined_vars ()))
189 {
190 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"]) /* Now, do we have Custom Fields? */
191 if ($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level ("auto-detection", "profile"))
192 {
193 $fields = get_user_option ("s2member_custom_fields", $user_id);
194 /**/
195 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
196 do_action ("ws_plugin__s2member_during_profile_during_fields_before_custom_fields", get_defined_vars ());
197 unset ($__refs, $__v); /* Unset defined __refs, __v. */
198 /**/
199 foreach (json_decode ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"], true) as $field)
200 {
201 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
202 do_action ("ws_plugin__s2member_during_profile_during_fields_during_custom_fields_before", get_defined_vars ());
203 unset ($__refs, $__v); /* Unset defined __refs, __v. */
204 /**/
205 if (in_array ($field["id"], $fields_applicable)) /* Field applicable? */
206 {
207 $field_var = preg_replace ("/[^a-z0-9]/i", "_", strtolower ($field["id"]));
208 $field_id_class = preg_replace ("/_/", "-", $field_var);
209 /**/
210 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
211 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_during_custom_fields_display", true, get_defined_vars ()))
212 {
213 if (!empty ($field["section"]) && $field["section"] === "yes") /* Starts a new section? */
214 echo '<tr><td><div class="ws-plugin--s2member-profile-field-divider-section' . ((!empty ($field["sectitle"])) ? '-title' : '') . '">' . ((!empty ($field["sectitle"])) ? $field["sectitle"] : '') . '</div></td></tr>';
215 /**/
216 echo '<tr>' . "\n";
217 echo '<td>' . "\n";
218 echo '<label for="ws-plugin--s2member-profile-' . esc_attr ($field_id_class) . '">' . "\n";
219 echo '<strong' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? ' style="display:none;"' : '') . '>' . $field["label"] . (($field["required"] === "yes") ? ' *' : '') . '</strong></label>' . ((preg_match ("/^(checkbox|pre_checkbox)$/", $field["type"])) ? '' : '<br />') . "\n";
220 echo c_ws_plugin__s2member_custom_reg_fields::custom_field_gen (__FUNCTION__, $field, "ws_plugin__s2member_profile_", "ws-plugin--s2member-profile-", "ws-plugin--s2member-profile-field", "", ($tabindex = $tabindex + 10), "", $fields, $fields[$field_var], "profile");
221 echo '</td>' . "\n";
222 echo '</tr>' . "\n";
223 }
224 unset ($__refs, $__v); /* Unset defined __refs, __v. */
225 }
226 /**/
227 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
228 do_action ("ws_plugin__s2member_during_profile_during_fields_during_custom_fields_after", get_defined_vars ());
229 unset ($__refs, $__v); /* Unset defined __refs, __v. */
230 }
231 /**/
232 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
233 do_action ("ws_plugin__s2member_during_profile_during_fields_after_custom_fields", get_defined_vars ());
234 unset ($__refs, $__v); /* Unset defined __refs, __v. */
235 }
236 }
237 /**/
238 if (apply_filters ("ws_plugin__s2member_during_profile_during_fields_display_password", true, get_defined_vars ()))
239 {
240 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
241 do_action ("ws_plugin__s2member_during_profile_during_fields_before_password", get_defined_vars ());
242 unset ($__refs, $__v); /* Unset defined __refs, __v. */
243 /**/
244 echo '<tr>' . "\n";
245 echo '<td>' . "\n";
246 /**/
247 echo '<label for="ws-plugin--s2member-profile-password1" title="Please type your Password twice to confirm.">' . "\n";
248 echo '<strong>New Password?</strong> <em>( please type it twice )</em><br />' . "\n";
249 echo '<em>Only if changing password, otherwise leave blank.</em><br />' . "\n";
250 echo '<input type="password" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_password1" id="ws-plugin--s2member-profile-password1" class="ws-plugin--s2member-profile-field" value="" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '"' . (($user->user_login === "demo") ? ' disabled="disabled"' : '') . ' />' . "\n";
251 echo '</label>' . "\n";
252 /**/
253 echo '<label for="ws-plugin--s2member-profile-password2" title="Please type your Password twice to confirm.">' . "\n";
254 echo '<input type="password" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_password2" id="ws-plugin--s2member-profile-password2" class="ws-plugin--s2member-profile-field" value="" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '"' . (($user->user_login === "demo") ? ' disabled="disabled"' : '') . ' />' . "\n";
255 echo '</label>' . "\n";
256 /**/
257 echo '<div id="ws-plugin--s2member-profile-password-strength" class="ws-plugin--s2member-password-strength"><em>password strength indicator</em></div>' . "\n";
258 /**/
259 echo '</td>' . "\n";
260 echo '</tr>' . "\n";
261 /**/
262 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
263 do_action ("ws_plugin__s2member_during_profile_during_fields_after_password", get_defined_vars ());
264 unset ($__refs, $__v); /* Unset defined __refs, __v. */
265 }
266 /**/
267 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
268 do_action ("ws_plugin__s2member_during_profile_after_fields", get_defined_vars ());
269 unset ($__refs, $__v); /* Unset defined __refs, __v. */
270 /**/
271 echo '<tr>' . "\n";
272 echo '<td>' . "\n";
273 echo '<input type="hidden" name="ws_plugin__s2member_sc_profile_save" id="ws-plugin--s2member-sc-profile-save" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-sc-profile-save")) . '" />' . "\n";
274 echo '<input type="hidden" name="ws_plugin__s2member_profile_save" id="ws-plugin--s2member-profile-save" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-profile-save")) . '" />' . "\n";
275 echo '<input id="ws-plugin--s2member-profile-submit" type="submit" value="Save All Changes" tabindex="' . esc_attr (($tabindex = $tabindex + 10)) . '" />' . "\n";
276 echo '</td>' . "\n";
277 echo '</tr>' . "\n";
278 /**/
279 echo '</tbody>' . "\n";
280 echo '</table>' . "\n";
281 /**/
282 eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
283 do_action ("ws_plugin__s2member_during_profile_after_table", get_defined_vars ());
284 unset ($__refs, $__v); /* Unset defined __refs, __v. */
285 /**/
286 echo '</form>' . "\n";
287 /**/
288 $code = ob_get_clean ();
289 }
290 /**/
291 return apply_filters ("ws_plugin__s2member_sc_profile", ((!empty ($code)) ? $code : null), get_defined_vars ());
292 }
293 }
294 }
295 ?>