120 lines
2.3 KiB
PHP
120 lines
2.3 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* acf_get_users
|
||
|
*
|
||
|
* Similar to the get_users() function but with extra functionality.
|
||
|
*
|
||
|
* @date 9/1/19
|
||
|
* @since 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 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 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 populare labels.
|
||
|
$lables = array();
|
||
|
foreach ( $roles as $role ) {
|
||
|
if ( isset( $all_roles[ $role ] ) ) {
|
||
|
$lables[ $role ] = translate_user_role( $all_roles[ $role ] );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Return labels.
|
||
|
return $lables;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* acf_allow_unfiltered_html
|
||
|
*
|
||
|
* Returns true if the current user is allowed to save unfiltered HTML.
|
||
|
*
|
||
|
* @date 9/1/19
|
||
|
* @since 5.7.10
|
||
|
*
|
||
|
* @param void
|
||
|
* @return bool
|
||
|
*/
|
||
|
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 5.7.10
|
||
|
*
|
||
|
* @param bool allow_unfiltered_html The result.
|
||
|
*/
|
||
|
return apply_filters( 'acf/allow_unfiltered_html', $allow_unfiltered_html );
|
||
|
}
|