web-dev-qa-db-fra.com

Supprimer un élément de menu du plugin Wordpress pour un utilisateur spécifique

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

2
DextrousDave

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.

3
user23654