PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.66
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.66
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 / helpers / tabs.php

tabs.php in UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP 1.2.66, at includes/helpers/tabs.php

202 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Checks the current page is a UsersWP profile tab page.
4 *
5 * @since 1.0.0
6 * @package userswp
7 * @param string|bool $tab Tab slug.
8 * @return bool True when success. False when failure.
9 */
10 function is_uwp_profile_tab($tab = false) {
11 global $wp_query;
12 if (is_uwp_profile_page()) {
13 if (isset($wp_query->query_vars['uwp_tab']) && !empty($wp_query->query_vars['uwp_tab'])) {
14 if ($wp_query->query_vars['uwp_tab'] == $tab) {
15 return true;
16 } else {
17 return false;
18 }
19 } else {
20 return false;
21 }
22 } else {
23 return false;
24 }
25 }
26
27 /**
28 * Checks the current page is a UsersWP profile subtab page.
29 *
30 * @since 1.0.0
31 * @package userswp
32 * @param string|bool $subtab Subtab slug.
33 * @return bool True when success. False when failure.
34 */
35 function is_uwp_profile_subtab($subtab = false) {
36 global $wp_query;
37 if (is_uwp_profile_page()) {
38 if (isset($wp_query->query_vars['uwp_subtab']) && !empty($wp_query->query_vars['uwp_subtab'])) {
39 if ($wp_query->query_vars['uwp_subtab'] == $subtab) {
40 return true;
41 } else {
42 return false;
43 }
44 } else {
45 return false;
46 }
47 } else {
48 return false;
49 }
50 }
51
52 /**
53 * Prints the tab content based on post type.
54 *
55 * @since 1.0.0
56 * @package userswp
57 *
58 * @param object $user User object.
59 * @param bool $post_type Post type.
60 * @param string $title Tab title
61 * @param array|bool $post_ids Post ids for post__in. Optional
62 *
63 * @return void
64 */
65 function uwp_generic_tab_content($user, $post_type = false, $title = '', $post_ids = false) {
66
67 $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
68
69 $query_args = array(
70 'post_status' => 'publish',
71 'posts_per_page' => uwp_get_option('profile_no_of_items', 10),
72 'author' => $user->ID,
73 'paged' => $paged,
74 );
75
76 if ($post_type) {
77 $query_args['post_type'] = $post_type;
78 }
79
80 if (is_array($post_ids)) {
81 if (!empty($post_ids)) {
82 $query_args['post__in'] = $post_ids;
83 } else {
84 // no posts found
85 echo aui()->alert( array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
86 'type'=>'info',
87 'content'=> esc_html( wp_sprintf( __( 'No %s found', 'userswp' ), strtolower( $title ) ) )
88 ) );
89
90 return;
91 }
92 }
93
94 // The Query
95 $the_query = new WP_Query($query_args);
96
97 $args = array();
98 $args['template_args']= array(
99 'the_query' => $the_query,
100 'user' => $user,
101 'post_type' => $post_type,
102 'title' => $title,
103 'post_ids' => $post_ids,
104 );
105
106 $design_style = !empty($args['design_style']) ? esc_attr($args['design_style']) : uwp_get_option("design_style",'bootstrap');
107 $template = $design_style ? $design_style."/loop-posts.php" : "loop-posts.php";
108 uwp_get_template($template, $args);
109
110 }
111
112
113 /**
114 * Adds Privacy tab to available account tabs if privacy enabled.
115 *
116 * @since 1.0.0
117 * @package userswp
118 *
119 * @return array Account Tabs.
120 */
121 function uwp_account_get_available_tabs() {
122
123 $tabs = array(
124 'account' => array(
125 'title' => __( 'Edit Account', 'userswp' ),
126 'icon' => 'fas fa-user',
127 ),
128 'change-password' => array(
129 'title' => __( 'Change Password', 'userswp' ),
130 'icon' => 'fas fa-asterisk',
131 ),
132 'notifications' => array(
133 'title' => __( 'Notifications', 'userswp' ),
134 'icon' => 'fas fa-envelope',
135 ),
136 'privacy' => array(
137 'title' => __('Privacy', 'userswp'),
138 'icon' => 'fas fa-lock',
139 ),
140 );
141
142 $tabs = apply_filters( 'uwp_account_available_tabs', $tabs );
143
144 if(class_exists('\WP2FA\WP2FA')){
145 if(1 != uwp_get_option('disable_wp_2fa')) {
146 $tabs['wp2fa'] = array(
147 'title' => __( 'WP - 2FA', 'userswp' ),
148 'icon' => 'fas fa-user-lock',
149 );
150 }
151 }
152
153 // Keep delete account and logout last
154 if(1 != uwp_get_option('disable_account_delete') && !current_user_can('administrator')){
155 $tabs['delete-account'] = array(
156 'title' => __('Delete Account', 'userswp'),
157 'icon' => 'fas fa-user-times',
158 );
159 }
160
161 $template = new UsersWP_Templates();
162 $logout_url = $template->uwp_logout_url();
163
164 $tabs['logout'] = array(
165 'title' => __('Logout', 'userswp'),
166 'icon' => 'fas fa-sign-out-alt',
167 'link' => $logout_url,
168 );
169
170 return apply_filters( 'uwp_account_all_tabs', $tabs );
171 }
172
173 function uwp_profile_add_tabs($tab_data){
174
175 $obj = new UsersWP_Settings_Profile_Tabs();
176 $obj->tabs_field_save($tab_data);
177
178 }
179
180 function uwp_get_tabs_privacy_by_user($user){
181 global $wpdb;
182
183 if(is_integer($user)){
184 $user = get_userdata($user);
185 }
186
187 $tabs_privacy = array();
188 $meta_table = get_usermeta_table_prefix() . 'uwp_usermeta';
189 $obj_key = $user->ID.'_tabs_privacy';
190 $user_meta_info = wp_cache_get( $obj_key, 'uwp_usermeta_tabs_privacy' );
191
192 if ( ! $user_meta_info ) {
193 $user_meta_info = $wpdb->get_row($wpdb->prepare("SELECT tabs_privacy FROM {$meta_table} WHERE user_id = %d", $user->ID), ARRAY_A); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
194 wp_cache_set( $obj_key, $user_meta_info, 'uwp_usermeta_tabs_privacy' );
195 }
196
197 if(isset($user_meta_info['tabs_privacy']) && !empty($user_meta_info['tabs_privacy'])){
198 $tabs_privacy = maybe_unserialize($user_meta_info['tabs_privacy']);
199 }
200
201 return $tabs_privacy;
202 }