Bagaimana cara menghapus akses dasbor dari peran pengguna tertentu?


11

Saya ingin mencegah peran pengguna tertentu dari mengakses http://www.openeye.net/wp-admin/ dasbor sama sekali. Saya telah memindahkan dan mengatur ulang profil pengguna ke halaman baru yang dapat dilihat di situs. Bagaimana saya bisa melakukan ini?


Saya meminta WooCommerce untuk mengubah pengaturan mereka, sehingga dimungkinkan untuk mengelola otorisasi untuk bagian menu mereka. Idenya membutuhkan suara di: https://ideas.woocommerce.com Tolong beri maksimal 3 poin, terima kasih!
Stefan

Jawaban:


22

Untuk mengunci pelanggan dan kontributor dari admin:

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

Semoga itu bisa membantu. Semua peran memberi pengguna kemampuan yang merupakan nama peran itu, sehingga Anda dapat menggunakan nama peran apa pun sebagai kemampuan.


Luar biasa, namun saya mendapatkan kesalahan sintaks pada baris kedua.
Zach Shallbetter

Oh ok itu terkait dengan ekstra (setelah ('DOING_AJAX')
Zach Shallbetter

Oh maaf; itu disengaja. Seharusnya ada satu lagi yang ditutup di akhir. Saya menambahkannya ke jawabannya.
John P Bloch

Apakah ada alasan mengapa ini tidak berfungsi dengan tema 2011 dan plugin anggota?
Zach Shallbetter

1
Tampaknya ini tidak berfungsi di situs jaringan, ada ide mengapa?
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();
      }
});
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.