Gösterge tablosu erişimini belirli kullanıcı rollerinden nasıl kaldırabilirim?


11

Belirli kullanıcı rollerinin http://www.openeye.net/wp-admin/ kontrol paneline erişmesini önlemek istiyorum . Kullanıcı profillerini sitede görüntülenebilen yeni bir sayfaya taşıdım ve yeniden biçimlendirdim. Bunu nasıl yapabilirim?


WooCommerce'ın kurulumlarını değiştirmesini istedim, bu nedenle menünün bir kısmı için yetkileri yönetmek mümkündür. Fikir için oy gerekiyor: https://ideas.woocommerce.com Lütfen en fazla 3 puan verin, teşekkürler!
Stefan

Yanıtlar:


22

Aboneleri ve katkıda bulunanları yönetici dışında tutmak için:

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

Umarım yardımcı olur. Tüm roller kullanıcıya bu rolün adı olan bir yetenek verir, böylece herhangi bir rol adını yetenek olarak kullanabilirsiniz.


Mükemmel, ancak ikinci satırda bir sözdizimi hatası alıyorum.
Zach Shallbetter

Oh tamam bu ekstra ile ilgili (('DOING_AJAX' sonra)
Zach Shallbetter

Ay pardon; bu kasıtlıydı. Sonunda bir tane daha olması gerekiyordu. Cevaba ekledim.
John P Bloch

Bunun 2011 teması ve üye eklentisi ile çalışmadığının bir nedeni var mı?
Zach Shallbetter

1
Bu ağ sitelerinde çalışmıyor gibi görünüyor, neden herhangi bir fikir?
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();
      }
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.