Obtenir le rôle d’un utilisateur WordPress

6 commentaires
Obtenir le rôle d’un utilisateur WordPress
Un utilisateur WordPress est toujours associé à un rôle (abonné, contributeur, auteur, éditeur et administrateur) auquel sont associées des capacités (publier un contenu, modifier les réglages, etc.).

Si vous souhaitez afficher sur votre site le rôle d’un utilisateur, quelques lignes de code seront nécessaires.

Pour obtenir le rôle de l’utilisateur connecté, insérez ces quelques lignes là où l’information doit être affiché. Vous pouvez également passer par une fonction PHP si vous comptez réutiliser ce code plusieurs fois.

Le code fait la chose suivante : on récupère l’ID de l’utilisateur puis on parcourt ses données le concernant et on récupère ainsi le rôle. La fonction echo permet l’affichage du nom de l’utilisateur et de son rôle.

<?php 
$user_id = get_current_user_id();
$user_info = get_userdata($user_id);

if($user_info) {
echo 'Username: '.$user_info->user_login.'<br />';
echo 'User roles: '.implode(', ', $user_info->roles).'<br />';
// Attention : $user_info->roles retourne un tableau
}
?>

Libre à vous d’adapter ce code afin de remonter d’autres informations sur l’utilisateur connecté.

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

6 commentaires
  1. Jean-Thierry

    Bonjour

    Moi je cherche comment changer le role directement dans la base de données.
    Merci

  2. WaZeR

    D’accord, je vais essayer ^^
    Bah c’est vrai que niveau php, c’est pas encore tout à fait ça 😀

  3. WaZeR

    Bonjour, merci pour le tuto 🙂

    Je vais paraître un peu chiant ^^ mais je ne sais pas où mettre le code pour afficher le role à côté du pseudo, dans mon “comments.php”
    Si vous savez, merci de m’aider 😀
    Je peux voir partager mon fichier si ça peut aider.

    1. Aurélien Denis auteur de l’article

      Hello,

      il faut identifier la fonction qui modifie l’affichage de tes commentaires. Généralement, un callback dans comments.php est défini et renvoie au fichier functions.php de ton thème. En faisant une recherche sur les avatars, tu devrais parvenir à identifier cette boucle et donc à placer le code au bon endroit. Pas évident je te l’accorde…

    1. Mickaël Gris

      Hello,

      Effectivement, j’ai testé en front ça marche et c’est plus court 🙂 .

      Par contre, il me semble que dans certains cas la variable “$current_user” n’est pas définie, et donc ne retourne rien ! C’est notamment le cas dans les mu-plugins.
      Du coup, en partant de la fonction get_userdata(); on est sûr que ça fonctionne dans tous les cas !