Redirecciona a los usuarios según el nivel de acceso que tengan

Hay veces que tenemos la necesidad de tener varios perfiles de usuarios en nuestro WordPress por defecto, por ejemplo (administrador, autor, editor o suscriptor). Lo que vamos a hacer es decirte como puedes hacer para hacer una redirección personalizada para cada tipo de usuario tras hacer login en la plataforma y enviar a cada uno a un sitio distinto dependiendo del perfil que tenga.

para ello deberemos de añadir éste código en el archivo functions.php de nuestra plantilla activa, y automáticamente se aplicaran las redirecciones para cada usuario.

function redirect_based_on_role()
{
    //comprueba informacion usuario actual
    global $current_user;
    get_currentuserinfo();

    if ($current_user->user_level == 0)
    {
     // Usuario es sucriptor
     // Redirección a la respectiva página.
    }
    else if ($current_user->user_level > 1)
    {
      // Usuario es colaborador
      // Redirección a la respectiva página.
    }
    else if ($current_user->user_level >8)
    {
      // Usuario es un editor
      // Redirección a la respectiva página.
    }
    else
    {
      // No se encontró el perfil de usaurio
      // Salir de aquí
    }
}
// Utiliza esta acción para hacerlo posible.
add_action("admin_init","redirect_based_on_role");
Para hacer la redirección dentro de los condicionales, puedes utilizar la funcion wp_redirect
Comentarios
  1. Buenas,

    ¿ese código funciona bien? ¿Un usuario editor entrará como editor o colaborador?

    Un saludo.

    Escrito el18/05/2012
  2. Correcto David, un usuario editor entraria como colaborador, con lo que el condicional del colaborador es erroneo. Para que la condición fuera correcta debería de ser

    if ($current_user->user_level > 1 && $current_user->user_level < 9 )

    Un saludo

    Escrito el18/05/2012

DEJA TU COMENTARIO