Come posso rimuovere l'accesso al dashboard da ruoli utente specifici?


11

Vorrei impedire a determinati ruoli utente di accedere alla dashboard http://www.openeye.net/wp-admin/ . Ho spostato e rinnovato i profili utente in una nuova pagina visualizzabile sul sito. Come potrei fare per fare questo?


Ho richiesto a WooCommerce di modificare la loro configurazione, quindi è possibile gestire le autorizzazioni per la loro parte del menu. L'idea ha bisogno di voti su: https://ideas.woocommerce.com Per favore dai il tuo massimo 3 punti, grazie!
Stefan,

Risposte:


22

Per bloccare abbonati e collaboratori fuori dall'amministratore:

function wpse23007_redirect(){
  if( is_admin() && !defined('DOING_AJAX') && ( current_user_can('subscriber') || current_user_can('contributor') ) ){
    wp_redirect(home_url());
    exit;
  }
}
add_action('init','wpse23007_redirect');

Spero che aiuti. Tutti i ruoli offrono all'utente una funzionalità che è il nome di quel ruolo, in modo da poter utilizzare qualsiasi nome di ruolo come funzionalità.


Eccellente, tuttavia sto ricevendo un errore di sintassi sulla seconda riga.
Zach Shallbetter,

Oh ok è legato al extra (dopo ('DOING_AJAX')
Zach Shallbetter,

Oh scusa; era intenzionale. Avrebbe dovuto essercene un altro alla fine. L'ho aggiunto alla risposta.
John P Bloch,

C'è un motivo per cui questo non funziona con il tema 2011 e il plug-in dei membri?
Zach Shallbetter,

1
Questo non sembra funzionare su siti di rete, hai idea del perché?
Zach Shallbetter,

1
//If User Roll is Subscriber, It can not login in Dashboard 
function wpse23007_redirect()
{
    if( is_admin() && !defined('DOING_AJAX') && current_user_can('subscriber') )
    {
        wp_logout();
        wp_redirect(home_url());
        exit;
    }
}
add_action('init','wpse23007_redirect');


0
 add_action('init', function(){

      $redirect = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : home_url( '/' );
      $user = wp_get_current_user();
      if ( !defined('DOING_AJAX') && in_array( 'subscriber', (array) $user->roles ) ) {

          wp_redirect($redirect);
          exit();
      }
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.