Come nascondere il menu di amministrazione per un ID utente specifico con ruolo amministratore

25 nov 2017, 11:41:49
Visualizzazioni: 14.5K
Voti: 6

Sto cercando di nascondere quasi tutti i menu di amministrazione dalla dashboard di WordPress per un ID utente specifico che ha il ruolo di amministratore. Voglio dare a quell'utente solo la possibilità di modificare un certo tipo di post personalizzato chiamato "lessons" e un altro tipo di post personalizzato "Events".

Sto usando un tema LMS per WordPress da Themeforest di DesignThemes. Non sono sicuro del perché questo tema non dia accesso a WP-admin per altri ruoli oltre all'amministratore, come Editor, Collaboratore, ecc. Quindi ho deciso di dare a quell'utente specifico il ruolo di amministratore in modo che possa accedere alla dashboard di WordPress. Poi il mio piano è semplicemente nascondere gli altri menu di amministrazione per questo utente.

Ho usato il plugin chiamato User Role Editor Pro e altri plugin gratuiti, ma nulla sembra funzionare. Poi ho provato con il codice qui sotto. Ma questo codice rimuove questi menu di amministrazione anche dalla dashboard di altri amministratori, mentre voglio che questi menu vengano rimossi solo per questo ID utente che è 279 in questo caso. Qualsiasi aiuto è apprezzato. Questo è il link del sito https://impactmarketingsystems.com/

<?php
function nascondi_menu(){
 global $current_user;
 $user_id = get_current_user_id();
 // echo "user:".$user_id;   // Usa questo per trovare rapidamente il tuo ID utente

    if($user_id != '279'){

        // Per rimuovere l'intero menu di amministrazione Aspetto useresti:

        remove_menu_page( 'themes.php' );

        // Per rimuovere i sottomenu editor del tema e opzioni del tema dal
        // menu di amministrazione Aspetto, così come il principale sottomenu 'Temi'
        // useresti 

        remove_menu_page( 'index.php' );
        remove_submenu_page( 'index.php', 'update-core.php' );

        remove_submenu_page( 'themes.php', 'themes.php' );
        remove_submenu_page( 'themes.php', 'theme-editor.php' );
        remove_submenu_page( 'themes.php', 'theme_options' );

        remove_menu_page( 'users.php' );
        remove_submenu_page( 'users.php', 'user-new.php' );
        remove_submenu_page( 'users.php', 'profile.php' );

        remove_menu_page( 'upload.php' );
        remove_submenu_page( 'upload.php', 'media-new.php' );
        remove_submenu_page( 'upload.php', 'upload.php?page=wp-smush-bulk' );

        remove_menu_page( 'admin.php?page=Wordfence' );
        remove_submenu_page( 'admin.php?page=Wordfence', 'media-new.php' );


        remove_menu_page( 'edit.php?post_type=dt_teachers' );
        remove_submenu_page( 'edit.php?post_type=dt_teachers', 'post-new.php?post_type=dt_teachers' );

        remove_menu_page( 'edit.php?post_type=dt_portfolios' );
        remove_submenu_page( 'edit.php?post_type=dt_portfolios', 'post-new.php?post_type=dt_portfolios' );
        remove_submenu_page( 'edit-tags.php?taxonomy=portfolio_entries', 'edit-tags.php?taxonomy=portfolio_entries&post_type=dt_portfolios' );

        remove_menu_page( 'edit.php' );
        remove_submenu_page( 'edit.php', 'post-new.php' );
        remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
        remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );


        // Rimuovi voci del menu Pagine
        remove_menu_page( 'edit.php?post_type=page' );
        remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' );


        // Rimuovi menu Commenti

        remove_menu_page( 'edit-comments.php' );

        //// Rimuovi menu LMS
        remove_menu_page( 'admin.php?page=parent' );

         remove_menu_page( 'tools.php' );                  //Strumenti
         remove_menu_page( 'options-general.php' );        //Impostazioni

          remove_menu_page( 'plugins.php' );        //Plugin

          remove_menu_page( 'edit.php?post_type=product' );
0
Tutte le risposte alla domanda 1
2

Il problema è con la tua istruzione logica. Adesso stai cercando di rimuovere il personale dalla dashboard dove l'ID utente non è '279', il che significa che solo l'utente con ID 279 può vedere la dashboard. Puoi provare questo nell'istruzione if

if(is_admin() && $user_id == '279'){ // i tuoi codici }
25 nov 2017 12:06:53
Commenti

Grazie fratello. Ero così stupido da non riuscire a trovare questa semplice logica. In precedenza ho provato usando ! e senza ! ma non ha funzionato. Quindi ero confuso. Ma grazie per il tuo aiuto. Ha funzionato

Md. Amanur Rahman Md. Amanur Rahman
25 nov 2017 12:54:17

È stato un piacere fratello!

Shamsur Rahman Shamsur Rahman
25 nov 2017 20:11:43