J'ai besoin de classer l'utilisateur en fonction de son rôle. Je dois donc trouver le rôle d'utilisateur en utilisant uniquement le paramètre user_id (non seulement pour les utilisateurs connectés, mais pour tous les utilisateurs BP).
Quelque chose comme ça $user_role=role($user_id);
Essayez cette fonction:
function get_user_role($user_id){
global $wpdb;
$user = get_userdata( $user_id );
$capabilities = $user->{$wpdb->prefix . 'capabilities'};
if ( !isset( $wp_roles ) ){
$wp_roles = new WP_Roles();
}
foreach ( $wp_roles->role_names as $role => $name ) {
if ( array_key_exists( $role, $capabilities ) ) {
return $role;
}
}
return false;
}
Je n'ai pas inclus de traitement d'exception, par exemple si l'utilisateur existe ou non, vous pouvez donc le faire vous-même ou si vous obtenez la liste d'identifiants d'utilisateurs, elle ne sera même pas nécessaire.
J'ai créé une fonction pour obtenir le rôle d'utilisateur à partir de l'ID utilisateur.
function get_user_role( $user_id ){
$user_data = get_userdata( $user_id );
if(!empty( $user_data->roles ))
return $user_data->roles[0];
return false;
}
appelez la fonction get_user_role () pour obtenir le rôle de l'utilisateur et transmettez l'ID utilisateur en tant que paramètre. Il retournera le rôle d'utilisateur, sinon retournera false.