Deshabilitar la consola wp-admin para suscriptores
29 mar 2013, 13:08:24
Vistas: 14.5K
Votos: 6
No quiero que los usuarios (rol: suscriptor) puedan iniciar sesión a través de wp-admin.
¿Cómo sugieres que lo haga?

Prakash Raman
609
Todas las respuestas a la pregunta
1
3
Puedes eliminar la capacidad Read
. Esto evitará todo acceso a wp-admin.
function remove_read_wpse_93843(){
$role = get_role( 'subscriber' );
$role->remove_cap( 'read' );
}
add_action( 'admin_init', 'remove_read_wpse_93843' );
Consulta la nota en el Codex sobre solo necesitar ejecutar esto una vez.
Luego necesitas ocultar la barra de administración.
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');
Y probablemente quieras redirigir los inicios de sesión de suscriptores:
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 );
Otros intentos de acceder a wp-admin
resultarán en la pantalla casi blanca con el mensaje "No tienes permisos suficientes...".
Esto es algo básico pero creo que te lleva al resultado deseado.

s_ha_dum
65.5K
29 mar 2013 16:11:12
Comentarios
Gracias, justo lo que estaba buscando. Voy a probarlo ahora mismo.

29 mar 2013 23:22:14
remove_cap()
funciona diferente actualmente. Refactoriza tu código usando uno de los ejemplos de esta página.

22 mar 2018 10:44:12
Preguntas relacionadas
1
respuestas