web-dev-qa-db-fra.com

Différents champs dans la page Mon profil en fonction du rôle de l'utilisateur

Je comprends donc que je peux utiliser current_user_can pour vérifier le rôle de l’utilisateur actuellement connecté. Mais ce que je voudrais faire, c’est montrer ces différents champs à l’administrateur du site.

Ainsi, par exemple, le rôle de contributeur peut avoir des champs personnalisés différents de ceux de l'abonné. Chaque rôle verrait ses champs relatifs, mais l'administrateur verrait une liste complète de tous les champs d'une page de profil contributeur et d'une page de profil abonné.

Est-il possible d'autoriser l'administrateur à ne voir que certains champs d'une page de profil utilisateur?

J'espère que cela a du sens pour vous là-bas!

Merci d'avance.

3
Fraggy

Je posterai tout le code qui doit se trouver dans functions.php. C'est légitime WP code valide, comment procéder :) Cela devrait fonctionner, bien sûr, vous devez mettre votre nom de rôle dans switch.

MIS À JOUR POUR LA PERFORMANCE:

add_action( 'show_user_profile', 'user_fields_for_admin', 10);

add_action( 'edit_user_profile', 'user_fields_for_admin', 10);

function user_fields_for_admin( $user ){

 switch ($user->roles[0]) {
  case 'SOME ROLE':
    echo '<b>This is the role specific fields</b>';
    echo 'fields....';
    break;
  case 'SOME ANOTHER ROLE':
    echo '<b>This is the role specific fields</b>';
    echo 'fields....';
    break;

 }

 } 
4
Tommixoft