Je développe un plugin avec une page d'options en utilisant l'API Settings.
J'aimerais disposer d'un tableau d'options stocké pour mon plugin, mais sur la page des paramètres, j'aimerais que certains paramètres ne soient visibles que par les utilisateurs administrateurs, mais la liste complète des paramètres soit disponible pour le super administrateur.
Est-ce possible?
Testez le rôle de l’utilisateur actuel avec current_user_can( 'administrator' )
:
if ( current_user_can( 'administrator' ) )
{
add_settings_field( /* arguments */ );
// or
add_settings_section( /* arguments */ );
}
Veillez à utiliser la même vérification lorsque vous enregistrez les options. Sinon, vos utilisateurs habituels pourraient supprimer les valeurs.
Sinon, vous pouvez incorporer current_user_can()
dans le rappel add_settings_field()
pour chaque option réservée à l'administrateur:
function somesetting_add_settings_field( $option ) {
// This is an admin-only option
if ( current_user_can( 'administrator' ) {
// If current user is admin,
// output the form field
} else {
// Otherwise, output a message,
// or display a static value of the option,
// etc.
}
}
Avec cette méthode, vous ne devriez pas avoir à vous soucier de votre balisage de page de paramètres réels.
Si votre rappel de désinfection est écrit correctement, de telle sorte que vous vérifiiez la définition des données et les valeurs array_merge () validées/désinfectées avec les valeurs d'options existantes, vous ne devriez pas avoir à vous soucier des paramètres réservés à l'administrateur qui sont supprimés ou remplacés de manière incorrecte.