Je souhaite supprimer certaines heures de menu du tableau de bord pour un utilisateur spécifique. Maintenant, ce menu comprend également des éléments de menu de plug-in. Un plugin particulier que je veux masquer à l'utilisateur est le formulaire de contact 7.
Voici le code ajouté au fichier functions.php pour masquer les éléments de menu:
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'brian')
{
$restricted = array(__('Media'),
__('Links'),
__('Pages'),
__('Comments'),
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings'),
__('WPCF7') //this does not work
);
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}// end while
}// end if
}
add_action('admin_menu', 'remove_menus');
Désormais, tout ce qui est répertorié dans le code ci-dessus est masqué, à l'exception du menu Plug-in du formulaire de contact 7. Comment appeler le bon nom de plugin?
Merci
Voici le code dont vous avez besoin:
global $current_user;
get_currentuserinfo();
if ( $current_user->user_login === 'brian' )
remove_action( 'admin_menu', 'wpcf7_admin_menu', 9 );
Ou si vous voulez conserver votre propre code, utilisez ceci:
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'brian')
{
$restricted = array(__('Media'),
__('Links'),
__('Pages'),
__('Comments'),
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings'),
__('Contact') //this does not work
);
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}// end while
}// end if
}
add_action('admin_menu', 'remove_menus');
J'ai changé WPCF7 en Contact dans le tableau.