$role, 'fields' => 'ID', ) ); if ( is_array( $role_users ) ) { $ids = array_merge( $ids, array_map( 'intval', $role_users ) ); } } $ids = array_values( array_unique( array_filter( $ids ) ) ); sort( $ids, SORT_NUMERIC ); return $ids; } /** * Users grouped by primary role for the admin recipient UI. * * @return array */ public static function get_users_by_role() { $users_by_role = array(); foreach ( get_users( array( 'orderby' => 'display_name' ) ) as $user ) { if ( ! $user instanceof WP_User ) { continue; } $roles = $user->roles; $role = ! empty( $roles ) ? (string) $roles[0] : 'subscriber'; if ( ! isset( $users_by_role[ $role ] ) ) { $users_by_role[ $role ] = array(); } $users_by_role[ $role ][] = $user; } ksort( $users_by_role ); return $users_by_role; } }