PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.0.23
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.0.23
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.23, at includes/class-templates.php

826 lines 29.4 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 * Redirects wp-login.php?action=register to UsersWP registration page.
279 *
280 * @since 1.0.0
281 * @package userswp
282 * @return void
283 */
284 public function wp_register_redirect() {
285
286 global $pagenow;
287 if ( 'wp-login.php' == $pagenow && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'register' ) {
288 $reg_page_id = uwp_get_page_id( 'register_page', false );
289 $block_wp_reg = uwp_get_option( 'wp_register_redirect' );
290 if ( $reg_page_id && $block_wp_reg == '1' ) {
291
292 $redirect = isset( $_REQUEST['redirect_to'] ) ? esc_url( $_REQUEST['redirect_to'] ) : '';
293 $redirect_to = get_permalink( $reg_page_id );
294
295 if ( $redirect ) {
296 $redirect_to = add_query_arg( 'redirect_to', $redirect, $redirect_to );
297 }
298 wp_redirect( $redirect_to );
299 exit();
300 }
301 }
302 }
303
304 /**
305 * Changes the login url to the UWP login page.
306 *
307 * @param $login_url string The URL for login.
308 * @param $redirect string The URL to redirect back to upon successful login.
309 * @param $force_reauth bool Whether to force reauthorization, even if a cookie is present.
310 * @since 1.0.12
311 * @package userswp
312 *
313 * @return string The login url.
314 */
315 public function wp_login_url($login_url, $redirect, $force_reauth) {
316 $login_page_id = uwp_get_page_id('login_page', false);
317 $redirect_page_id = uwp_get_option('login_redirect_to', -1);
318 if (!is_admin() && $login_page_id) {
319 $login_page = get_permalink($login_page_id);
320 if($redirect){
321 $login_url = add_query_arg( 'redirect_to', $redirect, $login_page );
322 }elseif(isset($redirect_page_id) && (int)$redirect_page_id == -1 && wp_get_referer()) {
323 $redirect_to = esc_url(wp_get_referer());
324 $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_page );
325 }elseif($redirect_page_id){
326 $redirect_to = get_permalink($redirect_page_id);
327 $login_url = add_query_arg( 'redirect_to', $redirect_to, $login_page );
328 }else{
329 $login_url = $login_page;
330 }
331 }
332
333 return $login_url;
334 }
335
336 /**
337 * Changes the register url with the UWP register page.
338 *
339 * @param $register_url string The URL for register.
340 * @since 1.0.22
341 *
342 * @return string The register url.
343 */
344 public function wp_register_url($register_url) {
345 $register_page_id = uwp_get_page_id('register_page', false);
346 $redirect_page_id = uwp_get_option('register_redirect_to', -1);
347 $redirect_registration = uwp_get_option('wp_register_redirect');
348
349 $redirect = isset($_REQUEST['redirect_to']) ? esc_url($_REQUEST['redirect_to']) : '';
350 if ($register_page_id && $redirect_registration) {
351 $register_page = get_permalink($register_page_id);
352 if($register_url && isset($redirect) && !empty($redirect)){
353 $register_url = add_query_arg( 'redirect_to', $redirect, $register_page );
354 }elseif((int)$redirect_page_id > 0){
355 $redirect_to = get_permalink($redirect_page_id);
356 $register_url = add_query_arg( 'redirect_to', $redirect_to, $register_page );
357 }else{
358 $register_url = $register_page;
359 }
360 }
361
362 return $register_url;
363 }
364
365 /**
366 * Prints html for form fields of that particular form.
367 *
368 * @since 1.0.0
369 * @package userswp
370 * @param string $form_type Form type.
371 * @return void
372 */
373 public function uwp_template_fields($form_type) {
374
375 global $wpdb;
376 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
377 $extras_table_name = uwp_get_table_prefix() . 'uwp_form_extras';
378
379 if ($form_type == 'register') {
380 $fields = get_register_form_fields();
381 } elseif ($form_type == 'account') {
382 $fields = get_account_form_fields();
383 } elseif ($form_type == 'change') {
384 $fields = get_change_form_fields();
385 } else {
386 $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)));
387 }
388
389 if (!empty($fields)) {
390 foreach ($fields as $field) {
391
392 if ($form_type == 'account') {
393 if ($field->htmlvar_name == 'uwp_account_display_name') {
394 if ($field->is_active != '1') {
395 continue;
396 }
397 }
398 if ($field->htmlvar_name == 'uwp_account_bio') {
399 if ($field->is_active != '1') {
400 continue;
401 }
402 }
403 }
404
405 if ($form_type == 'register') {
406 if ($field->is_active != '1') {
407 continue;
408 }
409 $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)));
410 if ($count == 1) {
411 $this->uwp_template_fields_html($field, $form_type);
412 }
413 } else {
414 $this->uwp_template_fields_html($field, $form_type);
415 }
416 }
417 }
418 }
419
420 /**
421 * Display redirect to input of that particular form.
422 *
423 * @since 1.0.21
424 * @package userswp
425 * @param string $form_type Form type.
426 * @return void
427 */
428 public function uwp_template_extra_fields($form_type){
429 if ($form_type == 'login') {
430 if (-1 == uwp_get_option('login_redirect_to', -1)) {
431 $referer = wp_get_referer();
432 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
433 $redirect_to = esc_url($_REQUEST['redirect_to']);
434 } else if(isset($referer) && !empty($referer)){
435 $redirect_to = $referer;
436 } else {
437 $redirect_to = home_url();
438 }
439 echo '<input type="hidden" name="redirect_to" value="'.$redirect_to.'"/>';
440 }
441 echo '<input type="hidden" name="uwp_login_nonce" value="'. wp_create_nonce( 'uwp-login-nonce' ) .'" />';
442 } elseif ($form_type == 'register') {
443 if (-1 == uwp_get_option('register_redirect_to', -1)) {
444 $referer = wp_get_referer();
445 if (isset($_REQUEST['redirect_to']) && !empty($_REQUEST['redirect_to'])) {
446 $redirect_to = esc_url($_REQUEST['redirect_to']);
447 } else if(isset($referer) && !empty($referer)){
448 $redirect_to = $referer;
449 } else {
450 $redirect_to = home_url();
451 }
452 echo '<input type="hidden" name="redirect_to" value="'.$redirect_to.'"/>';
453 }
454 echo '<input type="hidden" name="uwp_register_nonce" value="'. wp_create_nonce( 'uwp-register-nonce' ) .'" />';
455 } elseif ($form_type == 'change') {
456 echo '<input type="hidden" name="uwp_change_nonce" value="'. wp_create_nonce( 'uwp-change-nonce' ) .'" />';
457 } elseif ($form_type == 'forgot') {
458 echo '<input type="hidden" name="uwp_forgot_nonce" value="'. wp_create_nonce( 'uwp-forgot-nonce' ) .'" />';
459 } elseif ($form_type == 'reset') {
460 if (isset($_GET['key']) && isset($_GET['login'])) {
461 echo '<input type="hidden" name="uwp_reset_username" value="' . sanitize_text_field($_GET['login']) . '" />';
462 echo '<input type="hidden" name="uwp_reset_key" value="' . sanitize_text_field($_GET['key']) . '" />';
463 }
464 echo '<input type="hidden" name="uwp_reset_nonce" value="' . wp_create_nonce('uwp-reset-nonce') . '" />';
465 }
466 }
467
468 /**
469 * Adds "Edit Account" form on account page.
470 *
471 * @since 1.0.0
472 * @package userswp
473 * @param string $type Template type.
474 * @return void
475 */
476 public function uwp_account_edit_form_display($type) {
477 if ($type == 'account') {
478 ?>
479 <form class="uwp-account-form uwp_form" method="post" enctype="multipart/form-data">
480 <?php do_action('uwp_template_fields', 'account'); ?>
481 <input type="hidden" name="uwp_account_nonce" value="<?php echo wp_create_nonce( 'uwp-account-nonce' ); ?>" />
482 <input name="uwp_account_submit" value="<?php echo __( 'Update Account', 'userswp' ); ?>" type="submit">
483 </form>
484 <?php }
485 }
486
487 /**
488 * Prints field html based on field type.
489 *
490 * @since 1.0.0
491 * @package userswp
492 * @param object $field Field info.
493 * @param string $form_type Form type.
494 * @param int|bool $user_id User ID.
495 * @return void
496 */
497 public function uwp_template_fields_html($field, $form_type, $user_id = false) {
498 if (!$user_id) {
499 $user_id = get_current_user_id();
500 }
501
502 $value = $this->uwp_get_default_form_value($field);
503 if ($form_type == 'account') {
504 $user_data = get_userdata($user_id);
505
506 if ($field->htmlvar_name == 'uwp_account_email') {
507 $value = $user_data->user_email;
508 } elseif ($field->htmlvar_name == 'uwp_account_password') {
509 $value = '';
510 $field->is_required = 0;
511 } elseif ($field->htmlvar_name == 'uwp_account_confirm_password') {
512 $value = '';
513 $field->is_required = 0;
514 } else {
515 $value = uwp_get_usermeta($user_id, $field->htmlvar_name, false);
516 if ($value != '0' && !$value) {
517 $value = $this->uwp_get_default_form_value($field);
518 }
519 }
520
521 }
522
523 if (empty($value)) {
524 $value = "";
525 }
526
527 if (isset($_POST[$field->htmlvar_name]) && $field->field_type != 'password') {
528 $value = $_POST[$field->htmlvar_name];
529 }
530
531 $field = apply_filters("uwp_form_input_field_{$field->field_type}", $field, $value, $form_type);
532
533 $html = apply_filters("uwp_form_input_html_{$field->field_type}", "", $field, $value, $form_type);
534
535 if (empty($html)) {
536 $label = $site_title = uwp_get_form_label($field);
537 if (!is_admin()) { ?>
538 <label>
539 <?php echo (trim($label)) ? $label : '&nbsp;'; ?>
540 <?php if ($field->is_required == 1) echo '<span>*</span>';?>
541 </label>
542 <?php }
543 ?>
544 <input name="<?php echo $field->htmlvar_name; ?>"
545 class="<?php echo $field->css_class; ?>"
546 placeholder="<?php echo $label; ?>"
547 title="<?php echo $label; ?>"
548 <?php if ($field->for_admin_use == 1) { echo 'readonly="readonly"'; } ?>
549 <?php if ($field->is_required == 1) { echo 'required="required"'; } ?>
550 type="<?php echo $field->field_type; ?>"
551 value="<?php echo esc_html($value); ?>">
552 <?php
553 } else {
554 echo $html;
555 }
556 }
557
558 /**
559 * Returns default value based on field type.
560 *
561 * @since 1.0.0
562 * @package userswp
563 * @param object $field Field info.
564 * @return string Field default value.
565 */
566 public function uwp_get_default_form_value($field) {
567 if ($field->field_type == 'url') {
568 if (substr( $field->default_value, 0, 4 ) === "http") {
569 $value = $field->default_value;
570 } else {
571 $value = "";
572 }
573 } else {
574 $value = $field->default_value;
575 }
576
577 return $value;
578 }
579
580 /**
581 * Modifies the author page content with UsersWP profile content.
582 *
583 * @since 1.0.0
584 * @package userswp
585 * @param string $content Original page content.
586 * @return string Modified page content.
587 */
588 public function uwp_author_page_content($content) {
589 if (is_author() && apply_filters( 'uwp_use_author_page_content', true ) ) {
590 return do_shortcode('[uwp_profile]');
591 } else {
592 return $content;
593 }
594
595 }
596
597 /**
598 * Modifies the menu item visibility based on UsersWP page type.
599 *
600 * @since 1.0.0
601 * @package userswp
602 * @param object $menu_item Menu item info.
603 * @return object Modified menu item.
604 */
605 public function uwp_setup_nav_menu_item( $menu_item ) {
606
607 if ( is_admin() ) {
608 return $menu_item;
609 }
610
611 // Prevent a notice error when using the customizer
612 $menu_classes = $menu_item->classes;
613
614 if ( is_array( $menu_classes ) ) {
615 $menu_classes = implode( ' ', $menu_item->classes );
616 $str = 'users-wp-menu ';
617 if (strpos($menu_classes, 'users-wp-menu ') !== false) {
618 $menu_classes = str_replace($str, '', $menu_classes);
619 }
620 }
621
622 $register_slug = uwp_get_page_slug('register_page');
623 $login_slug = uwp_get_page_slug('login_page');
624 $change_slug = uwp_get_page_slug('change_page');
625 $account_slug = uwp_get_page_slug('account_page');
626 $profile_slug = uwp_get_page_slug('profile_page');
627 $forgot_slug = uwp_get_page_slug('forgot_page');
628 $logout_slug = "logout";
629
630 $register_class = "users-wp-{$register_slug}-nav";
631 $login_class = "users-wp-{$login_slug}-nav";
632 $change_class = "users-wp-{$change_slug}-nav";
633 $account_class = "users-wp-{$account_slug}-nav";
634 $profile_class = "users-wp-{$profile_slug}-nav";
635 $forgot_class = "users-wp-{$forgot_slug}-nav";
636 $logout_class = "users-wp-{$logout_slug}-nav";
637
638 switch ( $menu_classes ) {
639 case $register_class:
640 if ( is_user_logged_in() ) {
641 $menu_item->_invalid = true;
642 } else {
643 $menu_item->url = uwp_get_page_id('register_page', true);
644 }
645 break;
646 case $login_class:
647 if ( is_user_logged_in() ) {
648 $menu_item->_invalid = true;
649 } else {
650 $menu_item->url = uwp_get_page_id('login_page', true);
651 }
652 break;
653 case $account_class:
654 if ( ! is_user_logged_in() ) {
655 $menu_item->_invalid = true;
656 } else {
657 $menu_item->url = uwp_get_page_id('account_page', true);
658 }
659 break;
660 case $profile_class:
661 if ( ! is_user_logged_in() ) {
662 $menu_item->_invalid = true;
663 } else {
664 $menu_item->url = uwp_get_page_id('profile_page', true);
665 }
666 break;
667 case $change_class:
668 if ( ! is_user_logged_in() ) {
669 $menu_item->_invalid = true;
670 } else {
671 $menu_item->url = uwp_get_page_id('change_page', true);
672 }
673 break;
674 case $forgot_class:
675 if ( is_user_logged_in() ) {
676 $menu_item->_invalid = true;
677 } else {
678 $menu_item->url = uwp_get_page_id('forgot_page', true);
679 }
680 break;
681 case $logout_class:
682 if ( ! is_user_logged_in() ) {
683 $menu_item->_invalid = true;
684 } else {
685 $menu_item->url = $this->uwp_logout_url();
686 }
687 break;
688 }
689
690 $menu_item = apply_filters('uwp_setup_nav_menu_item', $menu_item, $menu_classes);
691
692 return $menu_item;
693
694 }
695
696 /**
697 * Returns the logout url by adding redirect page link.
698 *
699 * @since 1.0.0
700 * @package userswp
701 * @param null $custom_redirect Redirect page link.
702 * @return string Logout url.
703 */
704 public function uwp_logout_url( $custom_redirect = null ) {
705
706 $redirect = null;
707
708 if ( !empty( $custom_redirect ) ) {
709 $redirect = esc_url( $custom_redirect );
710 } else if ( uwp_get_option('logout_redirect_to', false) ) {
711 $redirect = esc_url( get_permalink( uwp_get_option('logout_redirect_to', 0) ) );
712 }
713
714 return wp_logout_url( apply_filters( 'uwp_logout_url', $redirect, $custom_redirect ) );
715
716 }
717
718 /**
719 * Redirects to UsersWP info page after plugin activation.
720 *
721 * @since 1.0.0
722 * @package userswp
723 * @return void
724 */
725 public function uwp_activation_redirect() {
726
727 if (get_option('uwp_activation_redirect', false)) {
728 delete_option('uwp_activation_redirect');
729 wp_redirect(admin_url('admin.php?page=userswp&tab=main&subtab=info'));
730 exit;
731
732 }
733
734 if ( ! empty( $_GET['force_sync_data'] ) ) {
735 $blog_id = get_current_blog_id();
736 do_action( 'wp_' . $blog_id . '_uwp_updater_cron' );
737 wp_safe_redirect( admin_url( 'admin.php?page=userswp' ) );
738 exit;
739 }
740
741 }
742
743 /**
744 * Prints UsersWP fields in WP-Admin Users Edit page.
745 *
746 * @since 1.0.0
747 * @package userswp
748 * @param object $user User Object.
749 */
750 public function get_profile_extra_admin_edit($user) {
751 echo $this->get_profile_extra_edit($user);
752 }
753
754 /**
755 * Gets UsersWP fields in WP-Admin Users Edit page.
756 *
757 * @since 1.0.0
758 * @package userswp
759 * @param object $user User Object.
760 * @return string HTML string.
761 */
762 public function get_profile_extra_edit($user) {
763 ob_start();
764 global $wpdb;
765 $table_name = uwp_get_table_prefix() . 'uwp_form_fields';
766 $excluded_fields = apply_filters('uwp_exclude_edit_profile_fields', array());
767 $query = "SELECT * FROM " . $table_name . " WHERE form_type = 'account' AND is_default = '0'";
768 if(is_array($excluded_fields) && count($excluded_fields) > 0){
769 $query .= 'AND htmlvar_name NOT IN ('.implode(',', $excluded_fields).')';
770 }
771 $query .= ' ORDER BY sort_order ASC';
772 $fields = $wpdb->get_results($query);
773 if ($fields) {
774 ?>
775 <div class="uwp-profile-extra">
776 <table class="uwp-profile-extra-table form-table">
777 <?php
778 foreach ($fields as $field) {
779
780 // Icon
781 $icon = uwp_get_field_icon( $field->field_icon );
782
783 if ($field->field_type == 'fieldset') {
784 ?>
785 <tr style="margin: 0; padding: 0">
786 <th class="uwp-profile-extra-key" style="margin: 0; padding: 0"><h3 style="margin: 10px 0;"><?php echo $icon.$field->site_title; ?></h3></th>
787 <td></td>
788 </tr>
789 <?php
790 } else { ?>
791 <tr>
792 <th class="uwp-profile-extra-key"><?php echo $icon.$field->site_title; ?></th>
793 <td class="uwp-profile-extra-value">
794 <?php $this->uwp_template_fields_html($field, 'account', $user->ID); ?>
795 </td>
796 </tr>
797 <?php
798 }
799 }
800 ?>
801 </table>
802 </div>
803 <?php
804 }
805 $output = ob_get_contents();
806 ob_end_clean();
807 return trim($output);
808 }
809
810 /**
811 * Adds the UsersWP body class to body tag.
812 *
813 * @since 1.0.0
814 * @package userswp
815 * @param array $classes Existing class array.
816 * @return array Modified class array.
817 */
818 public function uwp_add_body_class( $classes ) {
819
820 if ( is_uwp_page() ) {
821 $classes[] = 'uwp_page';
822 }
823
824 return $classes;
825 }
826 }