Redireccionar a los usuarios al iniciar y cerrar sesión

Tiempo estimado de lectura: 10 minutos

 

Cómo redireccionar a los usuarios al iniciar y cerrar sesión

Ho veremos cómo podemos redireccionar a los usuarios al iniciar y cerrar sesión, es decir, podemos establecer por defecto a qué página les enviamos una vez que se han logueado y cuando han salido de nuestro WordPress.

Veamos cómo.

Enviar a los usuarios a una página después del login

Si tienes una web donde tienes distintos usuarios, ya sea un blog o una web de membresía, seguramente necesitas enviar a los usuarios a una página específica cuando inician sesión en el sistema.

Lo más utilizado es que cuando inicien sesión vayan a una página concreta. Si en tu WordPress tienes una página de login donde tienes el formulario para iniciar sesión, lo más cómodo es enviarles a la página en la que se encontraban antes de ir a ese login. Es decir, si están en la página de Quienes somos (por ejemplo), y hacen clic en la opción del menú Iniciar sesión (que a su vez les lleva a una página con el formulario para loguearse), una vez que hayan entrado en el sistema, se les redireccionará de forma automáticamente a la página Quienes somos (es decir, la última página que habían visitado antes de iniciar sesión).

No sé si me he explicado bien…

Para hacer esto, utilizamos el siguiente código:

// Redireccionar a los usuarios a la página anterior al login
if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
add_filter('login_redirect', 'my_login_redirect', 10, 3);
function my_login_redirect() {
$location = $_SERVER['HTTP_REFERER'];
wp_safe_redirect($location);
exit();
}
}

Este código es muy sencillo, crea una función llamada my_login_redirect la cual almacena el valor de location y envía al usuario con login_location.

Enviar a los usuarios a la página de inicio después del logout

Cuando alguien cierra sesión en la web, lo normal es que se le envíe a una página concreta, lo normal es no complicarse la vida y enviar al usuario a la página de inicio.

Vamos a ver el código que necesitamos para hacer esto:

// Redireccionar a la home después de salir del sistema
add_action('wp_logout',create_function('','wp_redirect(home_url());exit();'));

Como puedes ver, este código tiene poco que explicar 🙂

Alternativa

Si no quieres estar metiendo código en tu sistema y prefieres utilizar un plugin, Login and Logout Redirect es uno de los mejores, y quizás el más utilizado.

Su funcionamiento es muy sencillo y redirige a los usuarios al instante al iniciar y cerrar sesión.

Plugin Login and Logout Redirect
Funcionamiento del plugin Login and Logout Redirect.

Añadir las opciones de login y logout al menú principal

Y para terminar este artículo, creo que lo único que faltaba es saber añadir al menú de navegación principal las opciones de entrar y salir (login y logout). Con esto tendrás tu sistema de entrada a tu WordPress completo.

Tan solo tienes que utilizar este código:

// Añadir las opciones de login/logout al menú principal
//add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
$loginoutlink = wp_loginout('index.php', false);
$items .= '<li>'. $loginoutlink .'</li>';
return $items;
}

De este código no tenemos nada que decir, hace lo que tiene que hacer, sin más…


¿Qué te ha parecido el artículo?. Házmelo saber en los comentarios que tienes más abajo. Estoy deseando leerte.

Por último, si crees que este artículo puede ser interesante para algún amigo tuyo, te agradecería enormemente que lo compartieras con él y con todo el mundo a través de las Redes Sociales.

Puntúa este artículo:
[Total: 0 - Promedio: 0]

Puede que también te interese...

Deja una respuesta

Información básica sobre protección de datos
Responsable: Jose González Bueno.
Finalidad: Moderación y publicación de comentarios.
Destinatarios: No se comunican datos a terceros, salvo por imperativo legal.
Derechos: Tienes derecho a acceder, rectificar, exportar y suprimir tus datos.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad de este sitio. *