¿Cómo elimino el acceso al tablero de roles de usuario específicos?


11

Me gustaría evitar que ciertos roles de usuario accedan al panel de control http://www.openeye.net/wp-admin/ en absoluto. He movido y rediseñado los perfiles de usuario a una nueva página que se puede ver en el sitio. ¿Cómo haría para hacer esto?


Solicité a WooCommerce que cambiara su configuración, por lo que es posible administrar autorizaciones para su parte del menú. La idea necesita votos en: https://ideas.woocommerce.com Por favor, dale tu máximo de 3 puntos, ¡gracias!
Stefan

Respuestas:


23

Para bloquear a los suscriptores y contribuyentes fuera del 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 ayude. Todos los roles le dan al usuario una capacidad que es el nombre de ese rol, por lo que puede usar cualquier nombre de rol como una capacidad.


Excelente, sin embargo, obtengo un error de sintaxis en la segunda línea.
Zach Shallbetter

Oh ok, está relacionado con el extra (después ('DOING_AJAX')
Zach Shallbetter

Oh, lo siento; Eso fue intencional. Se suponía que habría otro que se cerraría al final. Lo agregué a la respuesta.
John P Bloch

¿Hay alguna razón por la que esto no funciona con el tema de 2011 y el complemento de miembros?
Zach Shallbetter

Esto no parece funcionar en sitios de red, ¿alguna idea de por qué?
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();
      }
});
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.