PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 4.6.1
Admin Columns v4.6.1
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Helper / User.php
codepress-admin-columns / classes / Helper Last commit date
Select 3 years ago Arrays.php 3 years ago Date.php 3 years ago File.php 3 years ago Html.php 3 years ago Icon.php 3 years ago Image.php 3 years ago Media.php 3 years ago Menu.php 3 years ago Network.php 3 years ago Post.php 3 years ago Strings.php 3 years ago Taxonomy.php 3 years ago User.php 3 years ago
User.php
211 lines
1 <?php
2
3 namespace AC\Helper;
4
5 use WP_User;
6
7 class User {
8
9 /**
10 * @param string $field
11 * @param int $user_id
12 *
13 * @return bool|string|array
14 */
15 public function get_user_field( $field, $user_id ) {
16 $user = get_user_by( 'id', $user_id );
17
18 return isset( $user->{$field} ) ? $user->{$field} : false;
19 }
20
21 /**
22 * @param mixed $user
23 *
24 * @return false|WP_User
25 */
26 public function get_user( $user ) {
27 if ( is_numeric( $user ) ) {
28 return get_userdata( $user );
29 }
30
31 return $user instanceof WP_User
32 ? $user
33 : false;
34 }
35
36 /**
37 * @param array $role_names
38 *
39 * @return array
40 */
41 public function translate_roles( $role_names ) {
42 $roles = [];
43
44 $wp_roles = wp_roles()->roles;
45
46 foreach ( (array) $role_names as $role ) {
47 if ( isset( $wp_roles[ $role ] ) ) {
48 $roles[ $role ] = translate_user_role( $wp_roles[ $role ]['name'] );
49 }
50 }
51
52 return $roles;
53 }
54
55 /**
56 * @param int|WP_User $user
57 * @param false|string $format WP_user var, 'first_last_name' or 'roles'
58 *
59 * @return false|string
60 */
61 public function get_display_name( $user, $format = false ) {
62 $user = $this->get_user( $user );
63
64 if ( ! $user ) {
65 return false;
66 }
67
68 if ( false === $format ) {
69 return $user->display_name;
70 }
71
72 switch ( $format ) {
73
74 case 'first_last_name' :
75 case 'full_name' :
76 $name_parts = [];
77
78 if ( $user->first_name ) {
79 $name_parts[] = $user->first_name;
80 }
81 if ( $user->last_name ) {
82 $name_parts[] = $user->last_name;
83 }
84
85 return $name_parts
86 ? implode( ' ', $name_parts )
87 : false;
88 case 'roles' :
89 return ac_helper()->string->enumeration_list( $this->get_roles_names( $user->roles ), 'and' );
90 default :
91 return isset( $user->{$format} )
92 ? $user->{$format}
93 : $user->display_name;
94 }
95 }
96
97 /**
98 * @param array $roles Role keys
99 *
100 * @return array Role nice names
101 */
102 public function get_roles_names( $roles ) {
103 $role_names = [];
104
105 foreach ( $roles as $role ) {
106 $name = $this->get_role_name( $role );
107
108 if ( $name ) {
109 $role_names[ $role ] = $name;
110 }
111 }
112
113 return $role_names;
114 }
115
116 /**
117 * @param string $role
118 *
119 * @return string
120 */
121 public function get_role_name( $role ) {
122 $roles = $this->get_roles();
123
124 if ( ! array_key_exists( $role, $roles ) ) {
125 return false;
126 }
127
128 return $roles[ $role ];
129 }
130
131 /**
132 * @param int $user_id
133 * @param string $post_type
134 *
135 * @return string
136 * @since 3.4.4
137 */
138 public function get_postcount( $user_id, $post_type ) {
139 global $wpdb;
140 $sql = "
141 SELECT COUNT(ID)
142 FROM {$wpdb->posts}
143 WHERE post_status = 'publish'
144 AND post_author = %d
145 AND post_type = %s
146 ";
147
148 return $wpdb->get_var( $wpdb->prepare( $sql, $user_id, $post_type ) );
149 }
150
151 /**
152 * @return array Translatable roles
153 */
154 public function get_roles() {
155 $roles = [];
156 foreach ( wp_roles()->roles as $k => $role ) {
157 $roles[ $k ] = translate_user_role( $role['name'] );
158 }
159
160 return $roles;
161 }
162
163 /**
164 * @param array $roles
165 *
166 * @return array Role Names
167 */
168 public function get_role_names( $roles ) {
169 $role_names = [];
170
171 $labels = $this->get_roles();
172
173 foreach ( $roles as $role ) {
174 if ( isset( $labels[ $role ] ) ) {
175 $role_names[ $role ] = $labels[ $role ];
176 }
177 }
178
179 return $role_names;
180 }
181
182 /**
183 * @return array
184 */
185 public function get_ids() {
186 global $wpdb;
187
188 return $wpdb->get_col( "SELECT {$wpdb->users}.ID FROM {$wpdb->users}" );
189 }
190
191 /**
192 * Fetches remote translations. Expires in 7 days.
193 * @return array[]
194 */
195 public function get_translations_remote() {
196 $translations = get_site_transient( 'ac_available_translations' );
197
198 if ( false !== $translations ) {
199 return $translations;
200 }
201
202 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
203
204 $translations = wp_get_available_translations();
205
206 set_site_transient( 'ac_available_translations', wp_get_available_translations(), WEEK_IN_SECONDS );
207
208 return $translations;
209 }
210
211 }