J'essaie de créer une page verrouillée sur wordpress (via un plugin) qui affiche des données différentes, en fonction de la personne qui se connecte. Il comporte essentiellement trois écrans, à savoir:
La façon dont je le fais est avec une déclaration if elseif else
; comme si if (current_user_can( 'manage_options' )): 1, elseif ( 2 == $current_user->ID ): 2, else: 3, endif;
.
Ce que je me demande, c'est si j'appelle la deuxième fonction une pratique exemplaire ou s'il existe un moyen plus efficace d'économiser de l'argent. Merci pour toute aide! ;)
Pour vérifier si un utilisateur est un utilisateur spécifique , vous avez 4 options:
Tous ces 4 champs sont uniques pour chaque utilisateur.
Donc, vérifier que l’ID est une option, mais est la pire: lorsque créer cet utilisateur, l’administrateur ne connaît pas l’ID, il a regardé l’ID après , il a créé l’utilisateur, afin que vous puissiez écrire votre code une fois que l'utilisateur est créé ... c'est mauvais.
Les 3 autres options sont un peu (juste un peu) meilleures: vous pouvez lire le code avant l'utilisateur est créé, par exemple:
if ( 'standard_user' === $current_user->user_nicename ) {
// do something
}
Et après cela, l’administrateur doit créer l’utilisateur, mais il ne faut pas oublier d’utiliser 'standard_user'
en tant qu’utilisateur nicename.
Cependant, une fois que vous posez des questions sur les meilleures pratiques, je ne peux pas dire que c’est une bonne pratique, car elle nécessite un codage en dur: vous écrivez dans le code quelque chose qui, pour fonctionner, nécessite que l’administrateur crée un utilisateur spécifique chaîne ... et si une faute de frappe se produit? si l'administrateur ne rappelle pas exactement quelle est la chaîne à utiliser?
Si vous écrivez le code pour vous-même, cela peut être utilisé sans trop de peine, mais si vous écrivez cela pour quelqu'un d'autre (un client?) Ou si vous envisagez de distribuer votre code, vous devriez sûrement le faire d'une autre manière.
Il y a différentes possibilités, en voici une:
Tout d’abord, vous devez penser au rôle que vous avez normalement ajouté à cet utilisateur standard particulier.
En supposant que cet utilisateur devrait être un contributeur.
Lors de l’activation du plug-in, créez un contributeur de rôle personnalisé .
function myplugin_install() {
$contributor = get_role('contributor');
$standard = add_role( 'standard', 'Standard User', $contributor->capabilities );
}
register_activation_hook( __FILE__, 'myplugin_install' );
Après cela, écrivez votre condamnation comme ceci:
$user = wp_get_current_user();
if ( user_can($user, 'manage_options') ) {
// code for admin
} elseif ( in_array( 'standard', $user->roles ) ) {
// code for your standard user
} else {
// code for others
}
Désormais, lorsque l'administrateur crée l'utilisateur standard, il suffit de choisir "Utilisateur standard" dans la liste déroulante des rôles d'utilisateur.
PS: n'oubliez pas de supprimer votre rôle personnalisé lors de la désactivation du plug-in:
function myplugin_unistall() {
remove_role( 'standard' );
}
register_deactivation_hook( __FILE__, 'myplugin_unistall' );