Як видалити доступ до інформаційної панелі з певних ролей користувача?


11

Я хотів би взагалі не допустити доступу певних ролей користувачів до інформаційної панелі http://www.openeye.net/wp-admin/ . Я перемістив і перевпорядкував профілі користувачів на нову сторінку, яку можна переглянути на сайті. Як би я пішов робити це?


Я попросив WooCommerce змінити їх налаштування, тому можна керувати авторизаціями для їх частини меню. Ідея потребує голосів: https://ideas.woocommerce.com Будь ласка, дайте їй свої максимальні 3 бали, дякую!
Стефан

Відповіді:


22

Щоб заблокувати передплатників та дописувачів від адміністратора:

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

Сподіваюся, що це допомагає. Усі ролі надають користувачеві можливість, яка є ім'ям цієї ролі, тому ви можете використовувати будь-яке ім'я ролі як можливість.


Чудово, проте я отримую синтаксичну помилку у другому рядку.
Zach Shallbetter

Ну добре, це пов’язано з додатковим (після ('DOING_AJAX')
Zach Shallbetter

Ой, вибачте; це було навмисно. Передбачалося ще одне закриття в кінці. Я додав це у відповідь.
Джон П Блох

Чи є причина, що це не працює з темою 2011 та плагіном для членів?
Zach Shallbetter

1
Здається, це не працює на мережевих сайтах, будь-яка ідея чому?
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();
      }
});
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.