PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.21
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.21
1.2.73 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 All 173 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.21, at includes/class-templates.php

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