Enviar a una página al iniciar sesión

Tiempo estimado de lectura: 4 minutos

 

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

¿Te ha servido este artículo?, DALE AMOR. 0


¿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. *