Jak usunąć dostęp do pulpitu nawigacyjnego z określonych ról użytkowników?


11

Chciałbym w ogóle uniemożliwić niektórym rolom użytkownika dostęp do pulpitu nawigacyjnego http://www.openeye.net/wp-admin/ . Przeniesiłem profile użytkowników i zmieniłem ich styl na nową stronę, która jest widoczna w witrynie. Jak miałbym to zrobić?


Poprosiłem WooCommerce o zmianę konfiguracji, aby można było zarządzać autoryzacjami dla ich części menu. Pomysł wymaga głosów na: https://ideas.woocommerce.com Podaj maksymalnie 3 punkty, dziękuję!
Stefan

Odpowiedzi:


22

Aby zablokować subskrybentów i współpracowników przed administratorem:

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

Mam nadzieję, że to pomaga. Wszystkie role dają użytkownikowi możliwość, która jest nazwą tej roli, dzięki czemu można użyć dowolnej nazwy roli jako możliwości.


Doskonale, jednak w drugiej linii pojawia się błąd składniowy.
Zach Shallbetter

Och ok, to jest związane z dodatkowym (po ('DOING_AJAX')
Zach Shallbetter

Przepraszam; to było zamierzone. Na końcu miało być kolejne. Dodałem to do odpowiedzi.
John P Bloch,

Czy istnieje powód, dla którego nie działa to w przypadku motywu 2011 i wtyczki członków?
Zach Shallbetter,

1
Wydaje się, że to nie działa w witrynach sieciowych, jakiś pomysł, dlaczego?
Zach Shallbetter

2
//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();
      }
});
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.