Como faço para remover o acesso ao painel de funções de usuário específicas?


11

Gostaria de impedir que determinadas funções de usuário acessem o painel http://www.openeye.net/wp-admin/ . Mudei e reestilizei os perfis de usuário para uma nova página visível no site. Como eu faria isso?


Solicitei ao WooCommerce para alterar sua configuração, para que seja possível gerenciar autorizações para sua parte do menu. A idéia precisa de votos em: https://ideas.woocommerce.com Por favor, dê seu máximo de 3 pontos, obrigado!
Stefan

Respostas:


22

Para bloquear assinantes e colaboradores fora do administrador:

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

Espero que ajude. Todas as funções fornecem ao usuário um recurso que é o nome dessa função, para que você possa usar qualquer nome de função como um recurso.


Excelente, no entanto, estou recebendo um erro de sintaxe na segunda linha.
Zach Shallbetter

Ah, ok, isso está relacionado ao extra (depois de ('DOING_AJAX')) #
214 Zach Shallbetter

Oh, desculpe; isso foi intencional. Deveria haver outro fechando no final. Eu adicionei à resposta.
John P Bloch

Existe uma razão para isso não funcionar com o tema 2011 e o plug-in de membros?
Zach Shallbetter

11
Isso não parece funcionar em sites de rede, alguma ideia do porquê?
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();
      }
});
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.