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 );
 | |
| }
 |