web-dev-qa-db-fra.com

Obtenir le rôle d'utilisateur à l'aide de user_id dans buddypress

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

3
user1460692

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.

4
Gagan

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.

4
umesh.nevase