Enviar a una página al iniciar sesión

AVISO IMPORTANTE

Este artículo tiene más de dos años, así que su contenido podría no funcionar con tu versión de WordPress o con la versión actual.
Por favor, haz una copia de seguridad y comprueba que todo funciona correctamente antes de hacer los cambios definitivos en tu web.

Cómo enviar a una página al iniciar sesión

Hace unas cuantas semanas que he visto esta opción para enviar a una página al iniciar sesión, y hoy voy a contarte cómo se hace. La idea es que cuando un usuario vaya a iniciar sesión en tu WordPress, tú le muestres un desplegable con varias páginas a las que puede ser redirigido, en lugar de ir directamente al Escritorio.

Parece interesante, ¿verdad?. ¡Vamos a ver cómo se hace!.

Código que vamos a utilizar

Este código es un tanto complejo si no sabemos php, pero aún así, vamos a intentar explicarlo de forma rápida y sencilla:

  1. Creamos un menú desplegable con el nombre de las páginas a las que vamos a redirigir al usuario.
  2. Creamos la función que se encargará de realizar la redirección.
  3. Añadimos el menú desplegable con las funciones a la página de login.
  4. No aseguramos de que la redirección solo se lleva a cabo si se ha elegido una opción del menú desplegable.

El código sería algo parecido a este:

// Crear  las opciones del menú desplegable del login
function custom_login_fields() {
?>
<p>
<label>
<strong>Llévame a esta página: </strong>
<select name="login_location">
<option value="">Elige &hellip;</option>
<option value="<?php bloginfo('url'); ?>">Inicio</option>
<option value="<?php bloginfo('url'); ?>/blog/">Blog</option>
<option value="<?php bloginfo('url'); ?>/contacto/">Contacto</option>
</select>
</label>
</p><br/>
<?php
}
// Función para redirigir al usuario a la página elegida
function location_redirect() {
$location = $_POST['login_location'];
wp_safe_redirect($location);
exit();
}
// Añadir el desplegable al login
add_action('login_form','custom_login_fields');
// La redirección sólo ocurre cuando se selecciona una de las opciones
if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) )
add_filter('login_redirect', 'location_redirect', 10, 3);

Ni que decir tiene que puedes cambiar las páginas a las que quieres enviar al iniciar sesión, lo único que debes tener en cuenta es que esas páginas debes ponerlas, al menos, con un slash ( / ) antes del nombre de la página o sección. Por defecto el parámetro bloginfo toma la url de la página web.

También puedes añadir más secciones a las que redirigir, tan solo debes duplicar una de las líneas que redirige y cambiar la página a la que quieres redirigir, por ejemplo, puedes duplicar la línea

<option value="<?php bloginfo('url'); ?>/contacto/">Contacto</option>

y enviar por ejemplo a la sección quienes somos de esta forma:

<option value="<?php bloginfo('url'); ?>/quienes-somos/">Quienes somos</option>

Evidentemente, el slug (el nombre) de la sección Quienes somos de tu página web debe ser https://tupaginaweb.com/quienes-somos.

Así quedaría el login con esta opción incorporada

Como has visto, este código no es demasiado sencillo de entender si no tenemos unos mínimos conocimientos de programación php y de la estructura y funcionamiento de WordPress, pero aún así, puedes copiarlo y pegarlo en tu plugin de funciones sin ningún problema.

Resultado de cómo enviar a una página al iniciar sesión
Resultado de cómo enviar a una página al iniciar sesión

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.

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