web-dev-qa-db-fra.com

Obtenir le rôle d'utilisateur par ID WordPress

Je dois en quelque sorte vérifier le rôle de quelqu'un avec uniquement son identifiant. J'ai trouvé la vérification current_user_can(). Mais cela ne fonctionne que pour les personnes connectées. Comment puis-je vérifier si cet utilisateur n'est pas l'utilisateur actuel? J'utilise un système de commande téléphonique mais utilise le compte administrateur/spécifique pour passer commande à d'autres personnes.

26
Tristan .L

Vous ne pouvez pas obtenir directement le rôle d'utilisateur. Tout d'abord, vous devez obtenir le user_meta_data, qui retournera un objet contenant les rôles de l'utilisateur.

Code:

$user_meta=get_userdata($user_id);

$user_roles=$user_meta->roles; //array of roles the user is part of.
45
Meathanjay

Les informations que vous devez savoir avant de procéder:

  • Vous ne pouvez pas obtenir directement le rôle d'utilisateur par ID.
  • Vous pouvez obtenir tous les rôles attribués à un utilisateur.

Nous allons avoir tous les rôles et vérifier si le rôle qui vous intéresse est là ou maintenant.

<?php

// Get the user object.
$user = get_userdata( $user_id );

// Get all the user roles as an array.
$user_roles = $user->roles;

// Check if the role you're interested in, is present in the array.
if ( in_array( 'subscriber', $user_roles, true ) ) {
    // Do something.
    echo 'YES, User is a subscriber';
}
8
Ahmad Awais
$user_meta = get_userdata($user_id);
$user_roles = $user_meta->roles;

if ( in_array( 'administrator', $user_roles, true ) ) {
    //echo User is a administrator';
}
1
Wessam Mohsen