Wie entferne ich den Dashboard-Zugriff von bestimmten Benutzerrollen?


11

Ich möchte verhindern, dass bestimmte Benutzerrollen überhaupt auf das Dashboard http://www.openeye.net/wp-admin/ zugreifen . Ich habe Benutzerprofile auf eine neue Seite verschoben und neu gestaltet, die auf der Website angezeigt werden kann. Wie würde ich das machen?


Ich habe WooCommerce gebeten, das Setup zu ändern, damit Berechtigungen für ihren Teil des Menüs verwaltet werden können. Die Idee muss abgestimmt werden auf: https://ideas.woocommerce.com Bitte geben Sie maximal 3 Punkte, danke!
Stefan

Antworten:


23

So sperren Sie Abonnenten und Mitwirkende aus dem Administrator:

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');

Ich hoffe, das hilft. Alle Rollen geben dem Benutzer eine Funktion, die der Name dieser Rolle ist, sodass Sie einen beliebigen Rollennamen als Funktion verwenden können.


Hervorragend, aber in der zweiten Zeile wird ein Syntaxfehler angezeigt.
Zach Shallbetter

Oh ok, es hängt mit dem Extra zusammen (nach ('DOING_AJAX')
Zach Shallbetter

Oh, Entschuldigung; das war beabsichtigt. Am Ende sollte noch einer schließen. Ich habe es der Antwort hinzugefügt.
John P Bloch

Gibt es einen Grund, warum dies mit dem Thema 2011 und dem Mitglieder-Plugin nicht funktioniert?
Zach Shallbetter

Dies scheint auf Netzwerkseiten nicht zu funktionieren. Irgendeine Idee warum?
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();
      }
});
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.