-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathacf-user-functions.php
115 lines (98 loc) · 2.31 KB
/
acf-user-functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
/**
* acf_get_users
*
* Similar to the get_users() function but with extra functionality.
*
* @date 9/1/19
* @since ACF 5.7.10
*
* @param array $args The query args.
* @return array
*/
function acf_get_users( $args = array() ) {
// Get users.
$users = get_users( $args );
// Maintain order.
if ( $users && $args['include'] ) {
// Generate order array.
$order = array();
foreach ( $users as $i => $user ) {
$order[ $i ] = array_search( $user->ID, $args['include'] );
}
// Sort results.
array_multisort( $order, $users );
}
// Return
return $users;
}
/**
* acf_get_user_result
*
* Returns a result containing "id" and "text" for the given user.
*
* @date 21/5/19
* @since ACF 5.8.1
*
* @param WP_User $user The user object.
* @return array
*/
function acf_get_user_result( $user ) {
// Vars.
$id = $user->ID;
$text = $user->user_login;
// Add name.
if ( $user->first_name && $user->last_name ) {
$text .= " ({$user->first_name} {$user->last_name})";
} elseif ( $user->first_name ) {
$text .= " ({$user->first_name})";
}
return compact( 'id', 'text' );
}
/**
* acf_get_user_role_labels
*
* Returns an array of user roles in the format "name => label".
*
* @date 20/5/19
* @since ACF 5.8.1
*
* @param array $roles A specific array of roles.
* @return array
*/
function acf_get_user_role_labels( $roles = array() ) {
$all_roles = wp_roles()->get_names();
// Load all roles if none provided.
if ( empty( $roles ) ) {
$roles = array_keys( $all_roles );
}
// Loop over roles and populate labels.
$lables = array();
foreach ( $roles as $role ) {
if ( isset( $all_roles[ $role ] ) ) {
$lables[ $role ] = translate_user_role( $all_roles[ $role ] );
}
}
// Return labels.
return $lables;
}
/**
* Returns true if the current user is allowed to save unfiltered HTML.
*
* @since ACF 5.7.10
*
* @return boolean
*/
function acf_allow_unfiltered_html() {
// Check capability.
$allow_unfiltered_html = current_user_can( 'unfiltered_html' );
/**
* Filters whether the current user is allowed to save unfiltered HTML.
*
* @date 9/1/19
* @since ACF 5.7.10
*
* @param bool $allow_unfiltered_html Can the current user save unfiltered HTML.
*/
return apply_filters( 'acf/allow_unfiltered_html', $allow_unfiltered_html );
}