PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / trunk
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions vtrunk
260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 120219 120301 All 187 releases
s2member / src / includes / classes / profile-in.inc.php

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

295 lines 16.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // @codingStandardsIgnoreFile
3 /**
4 * s2Member Stand-Alone Profile page (inner processing routines).
5 *
6 * Copyright: © 2009-2011
7 * {@link http://websharks-inc.com/ WebSharks, Inc.}
8 * (coded in the USA)
9 *
10 * Released under the terms of the GNU General Public License.
11 * You should have received a copy of the GNU General Public License,
12 * along with this software. In the main directory, see: /licensing/
13 * If not, see: {@link http://www.gnu.org/licenses/}.
14 *
15 * @package s2Member\Profiles
16 * @since 3.5
17 */
18 if(!defined('WPINC')) // MUST have WordPress.
19 exit ('Do not access this file directly.');
20
21 if(!class_exists('c_ws_plugin__s2member_profile_in'))
22 {
23 /**
24 * s2Member Stand-Alone Profile page (inner processing routines).
25 *
26 * @package s2Member\Profiles
27 * @since 3.5
28 */
29 class c_ws_plugin__s2member_profile_in
30 {
31 /**
32 * Displays a Stand-Alone Profile Modification Form.
33 *
34 * @package s2Member\Profiles
35 * @since 3.5
36 *
37 * @attaches-to ``add_action("init");``
38 */
39 public static function profile()
40 {
41 do_action('ws_plugin__s2member_before_profile', get_defined_vars());
42
43 if(!empty($_GET['s2member_profile'])) // Requesting Profile?
44 {
45 c_ws_plugin__s2member_no_cache::no_cache_constants(TRUE); // No caching.
46
47 $tabindex = apply_filters('ws_plugin__s2member_sc_profile_tabindex', 0, get_defined_vars());
48
49 if(($user = (is_user_logged_in()) ? wp_get_current_user() : FALSE) && ($user_id = $user->ID))
50 {
51 echo c_ws_plugin__s2member_utils_html::doctype_html_head('My Profile', 'ws_plugin__s2member_during_profile_head');
52
53 echo '<body style="'.esc_attr(apply_filters('ws_plugin__s2member_profile_body_styles', "background:#FFFFFF; color:#333333; font-family:'Verdana', sans-serif; font-size:13px;", get_defined_vars())).'">'."\n";
54
55 echo '<form method="post" name="ws_plugin__s2member_profile" id="ws-plugin--s2member-profile" action="'.esc_attr(home_url('/')).'" autocomplete="off">'."\n";
56
57 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
58 do_action('ws_plugin__s2member_during_profile_before_table', get_defined_vars());
59 unset($__refs, $__v);
60
61 echo '<table cellpadding="0" cellspacing="0">'."\n";
62 echo '<tbody>'."\n";
63
64 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
65 do_action('ws_plugin__s2member_during_profile_before_fields', get_defined_vars());
66 unset($__refs, $__v);
67
68 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_username', TRUE, get_defined_vars()))
69 {
70 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
71 do_action('ws_plugin__s2member_during_profile_during_fields_before_username', get_defined_vars());
72 unset($__refs, $__v);
73
74 echo '<tr>'."\n";
75 echo '<td>'."\n";
76 echo '<label for="ws-plugin--s2member-profile-login">'."\n";
77 echo '<strong>'._x('Username', 's2member-front', 's2member').' *</strong> <small>'._x('(cannot be changed)', 's2member-front', 's2member').'</small><br />'."\n";
78 echo '<input type="text" aria-required="true" maxlength="60" autocomplete="off" name="ws_plugin__s2member_profile_login" id="ws-plugin--s2member-profile-login" class="ws-plugin--s2member-profile-field form-control" value="'.format_to_edit($user->user_login).'" disabled="disabled" />'."\n";
79 echo '</label>'."\n";
80 echo '</td>'."\n";
81 echo '</tr>'."\n";
82
83 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
84 do_action('ws_plugin__s2member_during_profile_during_fields_after_username', get_defined_vars());
85 unset($__refs, $__v);
86 }
87 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_email', TRUE, get_defined_vars()))
88 {
89 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
90 do_action('ws_plugin__s2member_during_profile_during_fields_before_email', get_defined_vars());
91 unset($__refs, $__v);
92
93 echo '<tr>'."\n";
94 echo '<td>'."\n";
95 echo '<label for="ws-plugin--s2member-profile-email">'."\n";
96 echo '<strong>'._x('Email Address', 's2member-front', 's2member').' *</strong><br />'."\n";
97 echo '<input type="email" aria-required="true" data-expected="email" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_email" id="ws-plugin--s2member-profile-email" class="ws-plugin--s2member-profile-field form-control" value="'.format_to_edit($user->user_email).'" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
98 echo '</label>'."\n";
99 echo '</td>'."\n";
100 echo '</tr>'."\n";
101
102 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
103 do_action('ws_plugin__s2member_during_profile_during_fields_after_email', get_defined_vars());
104 unset($__refs, $__v);
105 }
106 if($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_names'])
107 {
108 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_first_name', TRUE, get_defined_vars()))
109 {
110 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
111 do_action('ws_plugin__s2member_during_profile_during_fields_before_first_name', get_defined_vars());
112 unset($__refs, $__v);
113
114 echo '<tr>'."\n";
115 echo '<td>'."\n";
116 echo '<label for="ws-plugin--s2member-profile-first-name">'."\n";
117 echo '<strong>'._x('First Name', 's2member-front', 's2member').' *</strong><br />'."\n";
118 echo '<input type="text" aria-required="true" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_first_name" id="ws-plugin--s2member-profile-first-name" class="ws-plugin--s2member-profile-field form-control" value="'.esc_attr($user->first_name).'" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
119 echo '</label>'."\n";
120 echo '</td>'."\n";
121 echo '</tr>'."\n";
122
123 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
124 do_action('ws_plugin__s2member_during_profile_during_fields_after_first_name', get_defined_vars());
125 unset($__refs, $__v);
126 }
127 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_last_name', TRUE, get_defined_vars()))
128 {
129 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
130 do_action('ws_plugin__s2member_during_profile_during_fields_before_last_name', get_defined_vars());
131 unset($__refs, $__v);
132
133 echo '<tr>'."\n";
134 echo '<td>'."\n";
135 echo '<label for="ws-plugin--s2member-profile-last-name">'."\n";
136 echo '<strong>'._x('Last Name', 's2member-front', 's2member').' *</strong><br />'."\n";
137 echo '<input type="text" aria-required="true" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_last_name" id="ws-plugin--s2member-profile-last-name" class="ws-plugin--s2member-profile-field form-control" value="'.esc_attr($user->last_name).'" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
138 echo '</label>'."\n";
139 echo '</td>'."\n";
140 echo '</tr>'."\n";
141
142 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
143 do_action('ws_plugin__s2member_during_profile_during_fields_after_last_name', get_defined_vars());
144 unset($__refs, $__v);
145 }
146 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_display_name', TRUE, get_defined_vars()))
147 {
148 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
149 do_action('ws_plugin__s2member_during_profile_during_fields_before_display_name', get_defined_vars());
150 unset($__refs, $__v);
151
152 echo '<tr>'."\n";
153 echo '<td>'."\n";
154 echo '<label for="ws-plugin--s2member-profile-display-name">'."\n";
155 echo '<strong>'._x('Display Name', 's2member-front', 's2member').' *</strong><br />'."\n";
156 echo '<input type="text" aria-required="true" maxlength="100" autocomplete="off" name="ws_plugin__s2member_profile_display_name" id="ws-plugin--s2member-profile-display-name" class="ws-plugin--s2member-profile-field form-control" value="'.esc_attr($user->display_name).'" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
157 echo '</label>'."\n";
158 echo '</td>'."\n";
159 echo '</tr>'."\n";
160
161 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
162 do_action('ws_plugin__s2member_during_profile_during_fields_after_display_name', get_defined_vars());
163 unset($__refs, $__v);
164 }
165 }
166 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_custom_fields', TRUE, get_defined_vars()))
167 {
168 if($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields']) // Now, do we have Custom Fields?
169 if($fields_applicable = c_ws_plugin__s2member_custom_reg_fields::custom_fields_configured_at_level('auto-detection', 'profile'))
170 {
171 $fields = get_user_option('s2member_custom_fields', $user_id);
172
173 $tabindex = $tabindex + 9; // Start tabindex at +9 ( +1 below ).
174
175 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
176 do_action('ws_plugin__s2member_during_profile_during_fields_before_custom_fields', get_defined_vars());
177 unset($__refs, $__v);
178
179 foreach(json_decode($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_fields'], TRUE) as $field)
180 {
181 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
182 do_action('ws_plugin__s2member_during_profile_during_fields_during_custom_fields_before', get_defined_vars());
183 unset($__refs, $__v);
184
185 if(in_array($field['id'], $fields_applicable)) // Field applicable?
186 {
187 $field_var = preg_replace('/[^a-z0-9]/i', '_', strtolower($field['id']));
188 $field_id_class = preg_replace('/_/', '-', $field_var);
189
190 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
191 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_during_custom_fields_display', TRUE, get_defined_vars()))
192 {
193 if(!empty($field['section']) && $field['section'] === 'yes') // Starts a new section?
194 echo '<tr><td><div class="ws-plugin--s2member-profile-field-divider-section'.((!empty($field['sectitle'])) ? '-title' : '').'">'.((!empty($field['sectitle'])) ? $field['sectitle'] : '').'</div></td></tr>';
195
196 echo '<tr>'."\n";
197 echo '<td>'."\n";
198 echo '<label for="ws-plugin--s2member-profile-'.esc_attr($field_id_class).'">'."\n";
199 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";
200 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 + 1), '', $fields, $fields[$field_var], 'profile');
201 echo '</td>'."\n";
202 echo '</tr>'."\n";
203 }
204 unset($__refs, $__v);
205 }
206 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
207 do_action('ws_plugin__s2member_during_profile_during_fields_during_custom_fields_after', get_defined_vars());
208 unset($__refs, $__v);
209 }
210 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
211 do_action('ws_plugin__s2member_during_profile_during_fields_after_custom_fields', get_defined_vars());
212 unset($__refs, $__v);
213 }
214 }
215 if(apply_filters('ws_plugin__s2member_during_profile_during_fields_display_password', TRUE, get_defined_vars()))
216 {
217 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
218 do_action('ws_plugin__s2member_during_profile_during_fields_before_password', get_defined_vars());
219 unset($__refs, $__v);
220
221 echo '<tr><td><div class="ws-plugin--s2member-profile-field-divider-section"></div></td></tr>';
222
223 echo '<tr>'."\n";
224 echo '<td>'."\n";
225
226 echo '<label for="ws-plugin--s2member-profile-password1" title="'.esc_attr(_x('Please type your Password twice to confirm.', 's2member-front', 's2member')).'">'."\n";
227 echo '<strong>'._x('New Password?', 's2member-front', 's2member').'</strong> <em>'._x('(please type it twice)', 's2member-front', 's2member').'</em><br />'."\n";
228 echo '<em>'._x('Only if changing password, otherwise leave blank.', 's2member-front', 's2member').'</em><br />'."\n";
229 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 form-control" value="" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'"'.(($user->user_login === 'demo') ? ' disabled="disabled"' : '').' />'."\n";
230 echo '</label>'."\n";
231
232 echo '<label for="ws-plugin--s2member-profile-password2" title="'.esc_attr(_x('Please type your Password twice to confirm.', 's2member-front', 's2member')).'">'."\n";
233 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 form-control" value="" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'"'.(($user->user_login === 'demo') ? ' disabled="disabled"' : '').' />'."\n";
234 echo '</label>'."\n";
235
236 echo '<div id="ws-plugin--s2member-profile-password-strength" class="ws-plugin--s2member-password-strength"><em>'._x('password strength indicator', 's2member-front', 's2member').'</em></div>'."\n";
237
238 echo '</td>'."\n";
239 echo '</tr>'."\n";
240
241 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
242 do_action('ws_plugin__s2member_during_profile_during_fields_after_password', get_defined_vars());
243 unset($__refs, $__v);
244 }
245 if($GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_opt_in'] && c_ws_plugin__s2member_list_servers::list_servers_integrated())
246 {
247 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
248 do_action('ws_plugin__s2member_during_profile_during_fields_before_opt_in', get_defined_vars());
249 unset($__refs, $__v);
250
251 echo '<tr><td><div class="ws-plugin--s2member-profile-field-divider-section"></div></td></tr>';
252
253 echo '<tr>'."\n";
254 echo '<td>'."\n";
255 echo '<label for="ws-plugin--s2member-profile-opt-in">'."\n";
256 echo '<input type="checkbox" name="ws_plugin__s2member_profile_opt_in" id="ws-plugin--s2member-profile-opt-in" class="ws-plugin--s2member-profile-field" value="1"'.((get_user_option('s2member_opt_in', $user_id)) ? ' checked="checked"' : '').' tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
257 echo $GLOBALS['WS_PLUGIN__']['s2member']['o']['custom_reg_opt_in_label']."\n";
258 echo '</label>'."\n";
259 echo '</td>'."\n";
260 echo '</tr>'."\n";
261
262 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
263 do_action('ws_plugin__s2member_during_profile_during_fields_after_opt_in', get_defined_vars());
264 unset($__refs, $__v);
265 }
266 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
267 do_action('ws_plugin__s2member_during_profile_after_fields', get_defined_vars());
268 unset($__refs, $__v);
269
270 echo '<tr>'."\n";
271 echo '<td>'."\n";
272 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";
273 echo '<input type="submit" id="ws-plugin--s2member-profile-submit" class="btn btn-primary" value="'.esc_attr(_x('Save All Changes', 's2member-front', 's2member')).'" tabindex="'.esc_attr(($tabindex = $tabindex + 10)).'" />'."\n";
274 echo '</td>'."\n";
275 echo '</tr>'."\n";
276
277 echo '</tbody>'."\n";
278 echo '</table>'."\n";
279
280 foreach(array_keys(get_defined_vars()) as $__v) $__refs[$__v] =& $$__v;
281 do_action('ws_plugin__s2member_during_profile_after_table', get_defined_vars());
282 unset($__refs, $__v);
283
284 echo '</form>'."\n";
285
286 echo '</body>'."\n";
287 echo '</html>';
288 }
289 exit();
290 }
291 do_action('ws_plugin__s2member_after_profile', get_defined_vars());
292 }
293 }
294 }
295