PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 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 / UserRoles.php
codepress-admin-columns / classes / Helper Last commit date
Image 2 days ago Select 2 days ago Arrays.php 2 days ago AvailableTranslations.php 2 days ago Creatable.php 2 days ago Dashicon.php 2 days ago Date.php 2 days ago Html.php 2 days ago Icon.php 2 days ago Image.php 2 days ago LocalFile.php 2 days ago Mbstring.php 2 days ago MediaIdResolver.php 2 days ago Menu.php 2 days ago Network.php 2 days ago Post.php 2 days ago Strings.php 2 days ago Taxonomy.php 2 days ago User.php 2 days ago UserRoles.php 2 days ago WpDateFormat.php 2 days ago
UserRoles.php
64 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Helper;
6
7 use AC\Type;
8 use WP_User;
9
10 final class UserRoles extends Creatable
11 {
12 /**
13 * WordPress documents WP_User::$roles as string[], but WP_User::get_role_caps() fills it with the
14 * raw array keys of the capabilities meta. A purely numeric role slug (e.g. '8888') is therefore
15 * returned as an integer. Always read a user's roles through this method.
16 *
17 * @return string[]
18 */
19 public function find_role_names(WP_User $user): array
20 {
21 return array_map('strval', $user->roles);
22 }
23
24 public function find_all(bool $allow_non_editable_roles = false): Type\UserRoles
25 {
26 return $allow_non_editable_roles
27 ? $this->find_all_roles()
28 : $this->find_all_editable_roles();
29 }
30
31 public function find_all_roles(): Type\UserRoles
32 {
33 return function_exists('wp_roles')
34 ? $this->create_roles(wp_roles()->roles)
35 : new Type\UserRoles();
36 }
37
38 public function find_all_editable_roles(): Type\UserRoles
39 {
40 return function_exists('get_editable_roles')
41 ? $this->create_roles(get_editable_roles())
42 : new Type\UserRoles();
43 }
44
45 private function create_roles(array $roles_data): Type\UserRoles
46 {
47 $roles = new Type\UserRoles();
48
49 foreach ($roles_data as $role_name => $role) {
50 $label = is_array($role) ? ($role['name'] ?? $role_name) : $role_name;
51
52 $roles->add(
53 new Type\UserRole(
54 (string)$role_name,
55 (string)$label
56 )
57 );
58 }
59
60 return $roles;
61 }
62
63 }
64