Desativar o console do wp-admin para assinantes

2

Eu não quero que os usuários (role: subscriber) consigam fazer o login através do wp-admin.

Como você sugere que eu faça isso?

    
por Prakash Raman 29.03.2013 / 12:08

1 resposta

8

Você pode remover o recurso Read . Isso impedirá todo o acesso ao wp-admin.

function remove_read_wpse_93843(){   
  remove_cap( 'subscriber', 'read' );
}
add_action( 'admin_init', 'remove_read_wpse_93843' );

Veja a nota no Codex sobre a necessidade de executar apenas uma vez.

Então você precisa esconder a barra de administração.

function hide_admin_wpse_93843() {
  if (current_user_can('subscriber')) {
    add_filter('show_admin_bar','__return_false');
  }
}
add_action('wp_head','hide_admin_wpse_93843');

E provavelmente deseja redirecionar logins de assinantes:

function redirect_sub_to_home_wpse_93843( $redirect_to, $request, $user ) {
    if ( isset($user->roles) && is_array( $user->roles ) ) {
      if ( in_array( 'subscriber', $user->roles ) ) {
          return home_url( );
      }   
    }
    return $redirect_to;
}
add_filter( 'login_redirect', 'redirect_sub_to_home_wpse_93843', 10, 3 );

Outras tentativas de acessar wp-admin resultarão na tela quase "branca". "Você não tem permissões suficientes ...".

Isso é um pouco básico, mas acho que você chega lá.

    
por s_ha_dum 29.03.2013 / 15:11

Tags