PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.22
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.22
1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 All 172 releases
userswp / includes / class-templates.php

class-templates.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.0.22, at includes/class-templates.php

799 lines 28.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Template related functions
4 *
5 * This class defines all code necessary for UsersWP templates like login. register etc.
6 *
7 * @since 1.0.0
8 * @author GeoDirectory Team <info@wpgeodirectory.com>
9 */
10 class UsersWP_Templates {
11
12 /**
13 * Locates UsersWP templates based on template type.
14 *
15 * @since 1.0.0
16 * @package userswp
17 * @param string $template Template type.
18 * @return string The template filename if one is located.
19 */
20 public function uwp_locate_template( $template ) {
21
22 switch ($template) {
23 case 'register':
24 return $this->uwp_generic_locate_template('register');
25 break;
26
27 case 'login':
28 return $this->uwp_generic_locate_template('login');
29 break;
30
31 case 'forgot':
32 return $this->uwp_generic_locate_template('forgot');
33 break;
34
35 case 'change':
36 return $this->uwp_generic_locate_template('change');
37 break;
38
39 case 'reset':
40 return $this->uwp_generic_locate_template('reset');
41 break;
42
43 case 'account':
44 return $this->uwp_generic_locate_template('account');
45 break;
46
47 case 'profile':
48 return $this->uwp_generic_locate_template('profile');
49 break;
50
51 case 'users':
52 return $this->uwp_generic_locate_template('users');
53 break;
54
55 case 'dashboard':
56 return $this->uwp_generic_locate_template('dashboard');
57 break;
58 }
59
60 return apply_filters('uwp_locate_template', false, $template);
61 }
62
63 /**
64 * Locates UsersWP templates based on template type.
65 * Fallback to core templates when no custom templates found.
66 *
67 * @since 1.0.0
68 * @package userswp
69 * @param string $type Template type.
70 * @return string The template filename if one is located.
71 */
72 public function uwp_generic_locate_template($type = 'register') {
73
74 $plugin_path = dirname( dirname( __FILE__ ) );
75
76 $template = locate_template(array("userswp/".$type.".php"));
77 if (!$template) {
78 $template = $plugin_path . '/templates/'.$type.'.php';
79 }
80 $template = apply_filters('uwp_template_'.$type, $template);
81 return $template;
82 }
83
84 /**
85 * Doing some access checks for UsersWP related pages.
86 *
87 * @since 1.0.0
88 * @package userswp
89 * @return bool
90 */
91 public function access_checks() {
92 global $post;
93
94 if (!is_page()) {
95 return false;
96 }
97
98 if(uwp_is_page_builder()){
99 return false;
100 }
101
102 $current_page_id = $post->ID;
103
104 $register_page = uwp_get_page_id('register_page', false);
105 $login_page = uwp_get_page_id('login_page', false);
106 $forgot_page = uwp_get_page_id('forgot_page', false);
107 $reset_page = uwp_get_page_id('reset_page', false);
108
109 $change_page = uwp_get_page_id('change_page', false);
110 $account_page = uwp_get_page_id('account_page', false);
111
112 if (( $register_page && ((int) $register_page == $current_page_id )) ||
113 ( $login_page && ((int) $login_page == $current_page_id ) ) ||
114 ( $forgot_page && ((int) $forgot_page == $current_page_id ) ) ||
115 ( $reset_page && ((int) $reset_page == $current_page_id ) )) {
116 if (is_user_logged_in()) {
117 $redirect_page_id = uwp_get_page_id('account_page', false);
118 if (empty($redirect_page_id)) {
119 $redirect_to = home_url('/');
120 } else {
121 $redirect_to = get_permalink($redirect_page_id);
122 }
123 $redirect_to = apply_filters('uwp_logged_in_redirect', $redirect_to);
124 wp_redirect($redirect_to);
125 exit();
126 }
127 } elseif ( $account_page && ((int) $account_page == $current_page_id ) ||
128 ( $change_page && ((int) $change_page == $current_page_id ) )) {
129 if (!is_user_logged_in()) {
130 wp_redirect(get_permalink($login_page));
131 exit();
132 } else {
133 $can_user_can_edit_account = apply_filters('uwp_user_can_edit_own_profile', true, get_current_user_id());
134 if (!$can_user_can_edit_account && ((int) $account_page == $current_page_id )) {
135 wp_redirect(home_url('/'));
136 exit();
137 }
138 }
139 } else {
140 return false;
141 }
142
143 return false;
144 }
145
146 /**
147 * If auto generated password, redirects to change password page.
148 *
149 * @since 1.0.0
150 * @package userswp
151 * @return void
152 */
153 public function change_default_password_redirect() {
154 if (!is_user_logged_in()) {
155 return;
156 }
157 if(1 == uwp_get_option('change_disable_password_nag')) {
158 return;
159 }
160
161 if(uwp_is_page_builder()){
162 return;
163 }
164
165 $change_page = uwp_get_page_id('change_page', false);
166 $password_nag = get_user_option('default_password_nag', get_current_user_id());
167
168 if ($password_nag) {
169 if (is_page()) {
170 global $post;
171 $current_page_id = $post->ID;
172 if ( $change_page && ((int) $change_page == $current_page_id ) ) {
173 return;
174 }
175 }
176 if ($change_page) {
177 wp_redirect( get_permalink($change_page) );
178 exit();
179 }
180 }
181 }
182
183 /**
184 * Redirects /profile to /profile/{username} for loggedin users.
185 *
186 * @since 1.0.0
187 * @package userswp
188 * @return void
189 */
190 public function profile_redirect() {
191 if(uwp_is_page_builder()){
192 return;
193 }
194
195 if (is_page()) {
196 global $wp_query, $post;
197 $current_page_id = $post->ID;
198 $profile_page = uwp_get_page_id('profile_page', false);
199 if ( $profile_page && ((int) $profile_page == $current_page_id ) ) {
200
201 if (isset($wp_query->query_vars['uwp_profile'])) {
202 //must be profile page
203 $url_type = apply_filters('uwp_profile_url_type', 'slug');
204 $author_slug = $wp_query->query_vars['uwp_profile'];
205 if ($url_type == 'id') {
206 $user = get_user_by('id', $author_slug);
207 } else {
208 $user = get_user_by('slug', $author_slug);
209 }
210
211 if (!isset($user->ID)) {
212 global $wp_query;
213 $wp_query->set_404();
214 status_header( 404 );
215 get_template_part( 404 ); exit();
216 }
217
218 } else {
219 if (is_user_logged_in()) {
220 $user_id = get_current_user_id();
221 $profile_url = uwp_build_profile_tab_url($user_id);
222 wp_redirect( $profile_url );
223 exit();
224 } else {
225 wp_redirect( home_url('/') );
226 exit();
227 }
228
229 }
230
231 }
232 }
233 }
234
235 /**
236 * Redirects user to a predefined page after logging out.
237 *
238 * @since 1.0.0
239 * @package userswp
240 * @return void
241 */
242 public function logout_redirect() {
243 $redirect_page_id = uwp_get_option('logout_redirect_to', '');
244 if(isset( $_REQUEST['redirect_to'] )){
245 $redirect_to = esc_url($_REQUEST['redirect_to']);
246 } elseif ( isset($redirect_page_id) && (int)$redirect_page_id > 0) {
247 $redirect_to = get_permalink($redirect_page_id);
248 } else {
249 $redirect_to = home_url('/');
250 }
251 $redirect_to = apply_filters('uwp_logout_redirect', $redirect_to);
252 wp_redirect( $redirect_to );
253 exit();
254 }
255
256
257 /**
258 * Redirects wp-login.php to UsersWP login page.
259 *
260 * @since 1.0.0
261 * @package userswp
262 * @return void
263 */
264 public function wp_login_redirect() {
265 $login_page_id = uwp_get_page_id('login_page', false);
266 $block_wp_login = uwp_get_option('block_wp_login', '');
267 if ($login_page_id && $block_wp_login == '1') {
268 global $pagenow;
269 if( 'wp-login.php' == $pagenow && !isset($_REQUEST['action']) ) {
270 $redirect_to = get_permalink($login_page_id);
271 wp_redirect( $redirect_to );
272 exit();
273 }
274 }
275 }
276
277 /**
278 * Changes the login url to the UWP login page.
279 *
280 * @param $login_url string The URL for login.
281 * @param $redirect string The URL to redirect back to upon successful login.
282 * @param $force_reauth bool Whether to force reauthorization, even if a cookie is present.
283 * @since 1.0.12
284 * @package userswp
285 *
286 * @return string The login url.
287 */
288 public function wp_login_url($login_url, $redirect, $force_reauth) {
289 $login_page_id = uwp_get_page_id('login_page', false);
290 $redirect_page_id = uwp_get_option('login_redirect_to', -1);
291 if (!is_admin() && $login_page_id) {
292 $login_page = get_permalink($login_page_id);
293 if($redirect){
294 $login_url = add_query_arg( 'redirect_to', $redirect, $login_page );
295 }elseif(isset($redirect_page_id) && (int)$redirect_page_id == -1 && wp_get_referer()) {
296 $redirect_to = esc_url(wp_get_referer());
297 $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_page );
298 }elseif($redirect_page_id){
299 $redirect_to = get_permalink($redirect_page_id);
300 $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_page );
301 }else{
302 $login_url = $login_page;
303 }
304 }
305
306 return $login_url;
307 }
308
309 /**
310 * Changes the register url with the UWP register page.
311 *
312 * @param $register_url string The URL for register.
313 * @since 1.0.22
314 *
315 * @return string The register url.
316 */
317 public function wp_register_url($register_url) {
318 $register_page_id = uwp_get_page_id('register_page', false);
319 $redirect_page_id = uwp_get_option('register_redirect_to', -1);
320 $redirect_disabled = uwp_get_option('wp_register_redirect');
321
322 $redirect = isset($_REQUEST['redirect_to']) ? esc_url($_REQUEST['redirect_to']) : '';
323 if ($register_page_id && 1 != $redirect_disabled) {
324 $register_page = get_permalink($register_page_id);
325 if($register_url && isset($redirect) && !empty($redirect)){
326 $register_url = add_query_arg( 'redirect_to', $redirect, $register_page );
327 }elseif((int)$redirect_page_id > 0){
328 $redirect_to = get_permalink($redirect_page_id);
329 $register_url = add_query_arg( 'redirect_to', $redirect_to, $register_page );
330 }else{
331 $register_url = $register_page;
332 }
333 }
334
335 return $register_url;
336 }
337
338 /**
339 * Prints html for form fields of that particular form.
340 *
341 * @since 1.0.0
342 * @package userswp
343 * @param string $form_type Form type.
344 * @return void
345 */
346 public function uwp_template_fields($form_type) {
347
348 global $wpdb;
349 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
350 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
351
352 if ($form_type == 'register') {
353 $fields = get_register_form_fields();
354 } elseif ($form_type == 'account') {
355 $fields = get_account_form_fields();
356 } elseif ($form_type == 'change') {
357 $fields = get_change_form_fields();
358 } else {
359 $fields = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $table_name . " WHERE form_type = %s AND is_active = '1' AND for_admin_use != '1' ORDER BY sort_order ASC", array($form_type)));
360 }
361
362 if (!empty($fields)) {
363 foreach ($fields as $field) {
364
365 if ($form_type == 'account') {
366 if ($field->htmlvar_name == 'uwp_account_display_name') {
367 if ($field->is_active != '1') {
368 continue;
369 }
370 }
371 if ($field->htmlvar_name == 'uwp_account_bio') {
372 if ($field->is_active != '1') {
373 continue;
374 }
375 }
376 }
377
378 if ($form_type == 'register') {
379 if ($field->is_active != '1') {
380 continue;
381 }
382 $count = $wpdb->get_var($wpdb->prepare("select count(*) from ".$extras_table_name." where site_htmlvar_name=%s AND form_type = %s", array($field->htmlvar_name, $form_type)));
383 if ($count == 1) {
384 $this->uwp_template_fields_html($field, $form_type);
385 }
386 } else {
387 $this->uwp_template_fields_html($field, $form_type);
388 }
389 }
390 }
391 }
392
393 /**
394 * Display redirect to input of that particular form.
395 *
396 * @since 1.0.21
397 * @package userswp
398 * @param string $form_type Form type.
399 * @return void
400 */
401 public function uwp_template_extra_fields($form_type){
402 if ($form_type == 'login') {
403 if (-1 == uwp_get_option('login_redirect_to', -1)) {
404 $referer = wp_get_referer();
405 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
406 $redirect_to = esc_url($_REQUEST['redirect_to']);
407 } else if(isset($referer) && !empty($referer)){
408 $redirect_to = $referer;
409 } else {
410 $redirect_to = home_url();
411 }
412 echo '<input type="hidden" name="redirect_to" value="'.$redirect_to.'"/>';
413 }
414 echo '<input type="hidden" name="uwp_login_nonce" value="'. wp_create_nonce( 'uwp-login-nonce' ) .'" />';
415 } elseif ($form_type == 'register') {
416 if (-1 == uwp_get_option('register_redirect_to', -1)) {
417 $referer = wp_get_referer();
418 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
419 $redirect_to = esc_url($_REQUEST['redirect_to']);
420 } else if(isset($referer) && !empty($referer)){
421 $redirect_to = $referer;
422 } else {
423 $redirect_to = home_url();
424 }
425 echo '<input type="hidden" name="redirect_to" value="'.$redirect_to.'"/>';
426 }
427 echo '<input type="hidden" name="uwp_register_nonce" value="'. wp_create_nonce( 'uwp-register-nonce' ) .'" />';
428 } elseif ($form_type == 'change') {
429 echo '<input type="hidden" name="uwp_change_nonce" value="'. wp_create_nonce( 'uwp-change-nonce' ) .'" />';
430 } elseif ($form_type == 'forgot') {
431 echo '<input type="hidden" name="uwp_forgot_nonce" value="'. wp_create_nonce( 'uwp-forgot-nonce' ) .'" />';
432 } elseif ($form_type == 'reset') {
433 if (isset($_GET['key']) && isset($_GET['login'])) {
434 echo '<input type="hidden" name="uwp_reset_username" value="' . sanitize_text_field($_GET['login']) . '" />';
435 echo '<input type="hidden" name="uwp_reset_key" value="' . sanitize_text_field($_GET['key']) . '" />';
436 }
437 echo '<input type="hidden" name="uwp_reset_nonce" value="' . wp_create_nonce('uwp-reset-nonce') . '" />';
438 }
439 }
440
441 /**
442 * Adds "Edit Account" form on account page.
443 *
444 * @since 1.0.0
445 * @package userswp
446 * @param string $type Template type.
447 * @return void
448 */
449 public function uwp_account_edit_form_display($type) {
450 if ($type == 'account') {
451 ?>
452 <form class="uwp-account-form uwp_form" method="post" enctype="multipart/form-data">
453 <?php do_action('uwp_template_fields', 'account'); ?>
454 <input type="hidden" name="uwp_account_nonce" value="<?php echo wp_create_nonce( 'uwp-account-nonce' ); ?>" />
455 <input name="uwp_account_submit" value="<?php echo __( 'Update Account', 'userswp' ); ?>" type="submit">
456 </form>
457 <?php }
458 }
459
460 /**
461 * Prints field html based on field type.
462 *
463 * @since 1.0.0
464 * @package userswp
465 * @param object $field Field info.
466 * @param string $form_type Form type.
467 * @param int|bool $user_id User ID.
468 * @return void
469 */
470 public function uwp_template_fields_html($field, $form_type, $user_id = false) {
471 if (!$user_id) {
472 $user_id = get_current_user_id();
473 }
474
475 $value = $this->uwp_get_default_form_value($field);
476 if ($form_type == 'account') {
477 $user_data = get_userdata($user_id);
478
479 if ($field->htmlvar_name == 'uwp_account_email') {
480 $value = $user_data->user_email;
481 } elseif ($field->htmlvar_name == 'uwp_account_password') {
482 $value = '';
483 $field->is_required = 0;
484 } elseif ($field->htmlvar_name == 'uwp_account_confirm_password') {
485 $value = '';
486 $field->is_required = 0;
487 } else {
488 $value = uwp_get_usermeta($user_id, $field->htmlvar_name, false);
489 if ($value != '0' && !$value) {
490 $value = $this->uwp_get_default_form_value($field);
491 }
492 }
493
494 }
495
496 if (empty($value)) {
497 $value = "";
498 }
499
500 if (isset($_POST[$field->htmlvar_name]) && $field->field_type != 'password') {
501 $value = $_POST[$field->htmlvar_name];
502 }
503
504 $field = apply_filters("uwp_form_input_field_{$field->field_type}", $field, $value, $form_type);
505
506 $html = apply_filters("uwp_form_input_html_{$field->field_type}", "", $field, $value, $form_type);
507
508 if (empty($html)) {
509 $label = $site_title = uwp_get_form_label($field);
510 if (!is_admin()) { ?>
511 <label>
512 <?php echo (trim($label)) ? $label : '&nbsp;'; ?>
513 <?php if ($field->is_required == 1) echo '<span>*</span>';?>
514 </label>
515 <?php }
516 ?>
517 <input name="<?php echo $field->htmlvar_name; ?>"
518 class="<?php echo $field->css_class; ?>"
519 placeholder="<?php echo $label; ?>"
520 title="<?php echo $label; ?>"
521 <?php if ($field->for_admin_use == 1) { echo 'readonly="readonly"'; } ?>
522 <?php if ($field->is_required == 1) { echo 'required="required"'; } ?>
523 type="<?php echo $field->field_type; ?>"
524 value="<?php echo esc_html($value); ?>">
525 <?php
526 } else {
527 echo $html;
528 }
529 }
530
531 /**
532 * Returns default value based on field type.
533 *
534 * @since 1.0.0
535 * @package userswp
536 * @param object $field Field info.
537 * @return string Field default value.
538 */
539 public function uwp_get_default_form_value($field) {
540 if ($field->field_type == 'url') {
541 if (substr( $field->default_value, 0, 4 ) === "http") {
542 $value = $field->default_value;
543 } else {
544 $value = "";
545 }
546 } else {
547 $value = $field->default_value;
548 }
549
550 return $value;
551 }
552
553 /**
554 * Modifies the author page content with UsersWP profile content.
555 *
556 * @since 1.0.0
557 * @package userswp
558 * @param string $content Original page content.
559 * @return string Modified page content.
560 */
561 public function uwp_author_page_content($content) {
562 if (is_author() && apply_filters( 'uwp_use_author_page_content', true ) ) {
563 return do_shortcode('[uwp_profile]');
564 } else {
565 return $content;
566 }
567
568 }
569
570 /**
571 * Modifies the menu item visibility based on UsersWP page type.
572 *
573 * @since 1.0.0
574 * @package userswp
575 * @param object $menu_item Menu item info.
576 * @return object Modified menu item.
577 */
578 public function uwp_setup_nav_menu_item( $menu_item ) {
579
580 if ( is_admin() ) {
581 return $menu_item;
582 }
583
584 // Prevent a notice error when using the customizer
585 $menu_classes = $menu_item->classes;
586
587 if ( is_array( $menu_classes ) ) {
588 $menu_classes = implode( ' ', $menu_item->classes );
589 $str = 'users-wp-menu ';
590 if (strpos($menu_classes, 'users-wp-menu ') !== false) {
591 $menu_classes = str_replace($str, '', $menu_classes);
592 }
593 }
594
595 $register_slug = uwp_get_page_slug('register_page');
596 $login_slug = uwp_get_page_slug('login_page');
597 $change_slug = uwp_get_page_slug('change_page');
598 $account_slug = uwp_get_page_slug('account_page');
599 $profile_slug = uwp_get_page_slug('profile_page');
600 $forgot_slug = uwp_get_page_slug('forgot_page');
601 $logout_slug = "logout";
602
603 $register_class = "users-wp-{$register_slug}-nav";
604 $login_class = "users-wp-{$login_slug}-nav";
605 $change_class = "users-wp-{$change_slug}-nav";
606 $account_class = "users-wp-{$account_slug}-nav";
607 $profile_class = "users-wp-{$profile_slug}-nav";
608 $forgot_class = "users-wp-{$forgot_slug}-nav";
609 $logout_class = "users-wp-{$logout_slug}-nav";
610
611 switch ( $menu_classes ) {
612 case $register_class:
613 if ( is_user_logged_in() ) {
614 $menu_item->_invalid = true;
615 } else {
616 $menu_item->url = uwp_get_page_id('register_page', true);
617 }
618 break;
619 case $login_class:
620 if ( is_user_logged_in() ) {
621 $menu_item->_invalid = true;
622 } else {
623 $menu_item->url = uwp_get_page_id('login_page', true);
624 }
625 break;
626 case $account_class:
627 if ( ! is_user_logged_in() ) {
628 $menu_item->_invalid = true;
629 } else {
630 $menu_item->url = uwp_get_page_id('account_page', true);
631 }
632 break;
633 case $profile_class:
634 if ( ! is_user_logged_in() ) {
635 $menu_item->_invalid = true;
636 } else {
637 $menu_item->url = uwp_get_page_id('profile_page', true);
638 }
639 break;
640 case $change_class:
641 if ( ! is_user_logged_in() ) {
642 $menu_item->_invalid = true;
643 } else {
644 $menu_item->url = uwp_get_page_id('change_page', true);
645 }
646 break;
647 case $forgot_class:
648 if ( is_user_logged_in() ) {
649 $menu_item->_invalid = true;
650 } else {
651 $menu_item->url = uwp_get_page_id('forgot_page', true);
652 }
653 break;
654 case $logout_class:
655 if ( ! is_user_logged_in() ) {
656 $menu_item->_invalid = true;
657 } else {
658 $menu_item->url = $this->uwp_logout_url();
659 }
660 break;
661 }
662
663 $menu_item = apply_filters('uwp_setup_nav_menu_item', $menu_item, $menu_classes);
664
665 return $menu_item;
666
667 }
668
669 /**
670 * Returns the logout url by adding redirect page link.
671 *
672 * @since 1.0.0
673 * @package userswp
674 * @param null $custom_redirect Redirect page link.
675 * @return string Logout url.
676 */
677 public function uwp_logout_url( $custom_redirect = null ) {
678
679 $redirect = null;
680
681 if ( !empty( $custom_redirect ) ) {
682 $redirect = esc_url( $custom_redirect );
683 } else if ( uwp_get_option('logout_redirect_to', false) ) {
684 $redirect = esc_url( get_permalink( uwp_get_option('logout_redirect_to', 0) ) );
685 }
686
687 return wp_logout_url( apply_filters( 'uwp_logout_url', $redirect, $custom_redirect ) );
688
689 }
690
691 /**
692 * Redirects to UsersWP info page after plugin activation.
693 *
694 * @since 1.0.0
695 * @package userswp
696 * @return void
697 */
698 public function uwp_activation_redirect() {
699
700 if (get_option('uwp_activation_redirect', false)) {
701 delete_option('uwp_activation_redirect');
702 wp_redirect(admin_url('admin.php?page=userswp&tab=main&subtab=info'));
703 exit;
704
705 }
706
707 if ( ! empty( $_GET['force_sync_data'] ) ) {
708 $blog_id = get_current_blog_id();
709 do_action( 'wp_' . $blog_id . '_uwp_updater_cron' );
710 wp_safe_redirect( admin_url( 'admin.php?page=userswp' ) );
711 exit;
712 }
713
714 }
715
716 /**
717 * Prints UsersWP fields in WP-Admin Users Edit page.
718 *
719 * @since 1.0.0
720 * @package userswp
721 * @param object $user User Object.
722 */
723 public function get_profile_extra_admin_edit($user) {
724 echo $this->get_profile_extra_edit($user);
725 }
726
727 /**
728 * Gets UsersWP fields in WP-Admin Users Edit page.
729 *
730 * @since 1.0.0
731 * @package userswp
732 * @param object $user User Object.
733 * @return string HTML string.
734 */
735 public function get_profile_extra_edit($user) {
736 ob_start();
737 global $wpdb;
738 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
739 $excluded_fields = apply_filters('uwp_exclude_edit_profile_fields', array());
740 $query = "SELECT * FROM " . $table_name . " WHERE form_type = 'account' AND is_default = '0'";
741 if(is_array($excluded_fields) && count($excluded_fields) > 0){
742 $query .= 'AND htmlvar_name NOT IN ('.implode(',', $excluded_fields).')';
743 }
744 $query .= ' ORDER BY sort_order ASC';
745 $fields = $wpdb->get_results($query);
746 if ($fields) {
747 ?>
748 <div class="uwp-profile-extra">
749 <table class="uwp-profile-extra-table form-table">
750 <?php
751 foreach ($fields as $field) {
752
753 // Icon
754 $icon = uwp_get_field_icon( $field->field_icon );
755
756 if ($field->field_type == 'fieldset') {
757 ?>
758 <tr style="margin: 0; padding: 0">
759 <th class="uwp-profile-extra-key" style="margin: 0; padding: 0"><h3 style="margin: 10px 0;"><?php echo $icon.$field->site_title; ?></h3></th>
760 <td></td>
761 </tr>
762 <?php
763 } else { ?>
764 <tr>
765 <th class="uwp-profile-extra-key"><?php echo $icon.$field->site_title; ?></th>
766 <td class="uwp-profile-extra-value">
767 <?php $this->uwp_template_fields_html($field, 'account', $user->ID); ?>
768 </td>
769 </tr>
770 <?php
771 }
772 }
773 ?>
774 </table>
775 </div>
776 <?php
777 }
778 $output = ob_get_contents();
779 ob_end_clean();
780 return trim($output);
781 }
782
783 /**
784 * Adds the UsersWP body class to body tag.
785 *
786 * @since 1.0.0
787 * @package userswp
788 * @param array $classes Existing class array.
789 * @return array Modified class array.
790 */
791 public function uwp_add_body_class( $classes ) {
792
793 if ( is_uwp_page() ) {
794 $classes[] = 'uwp_page';
795 }
796
797 return $classes;
798 }
799 }