Cómo cerrar sesión (Logout) en WordPress sin confirmar

No es la primera vez, ni será la última, que seguramente has tenido que añadir un enlace de Cerrar sesión (Logout) en tu web WordPress.

Cerrar sesión en WordPress es una opción que, normalmente, ya viene integrada en las herramientas de membresía, e-commerce y demás que utilizamos en nuestra web, pero, ¿qué ocurre si en algún momento queremos añadir un enlace de cierre de sesión manualmente en el menú -u otro lugar- de nuestra web?

Pues ocurre que, a veces, nos encontramos con un problemilla.

Este:

Y es que, cuando añadimos un enlace de cierre de sesión manual, WordPress, que es muy cachondo él, nos pregunta si estamos seguros…

Y no solo eso, una vez confirmamos que queremos salir, se nos redirige a la pantalla de login del propio WordPress, algo que no queda muy bien cuando no queremos que los usuarios de nuestra plataforma aterricen en esa pantalla; lo normal es redirigirlos a la página de inicio.

Bien.

Dicho esto, ¿cómo podemos añadir un enlace de cierre de sesión o logout -que es lo mismo- manualmente y que redirija a los usuarios a donde nosotros queremos?

¡Pues vamos a verlo, yeah!

Enlace de cierre de sesión (Logout) en WordPress

Para ver cuál es el enlace de cierre de sesión de tu web, solo tienes que dirigir el cursor de tu ratón al menú de gestión de la sesión de WordPress, arriba a la derecha.

Cuando se despliegue la persianita, pones el ratón sobre la opción ‘Salir’ y, abajo a la izquierda, verás el enlace que te llevará a salir de tu sesión.

El enlace que ves ahí tiene este formato:

https://tudominio.com/wp-login.php?action=logout&_wpnonce=(aquí va un código aleatorio*).

 

* El código alfanumérico que va después de ‘wpnonce=’ es un código aleatorio (llamado nonce) que añade WordPress como medida de seguridad para proteger URL’s y formularios y que no se puedan utilizar con malas intenciones.

Ese enlace, tal cual, no nos vale para utilizarlo de manera genérica como cierre de sesión, pues incluye el wpnonce, así que vamos a editarlo y dejarlo así:

https://tudominio.com/wp-login.php?action=logout

 

Ahora, una vez tenemos la URL de logout, podremos utilizarla allá donde queramos: en el menú principal, en el menú del pie de página, en un enlace personalizado, en un botón… Wherever you want¡

Yo te voy a mostrar cómo añadirlo a un menú genérico de WordPress y luego tú ya si eso pruebas en otras ubicaciones.

Cómo añadir un enlace de cierre de sesión (Logout) en un menú de WordPress

Añadir un link para cerrar sesión en un menú de WordPress, es muy sencillo. Los pasos son:

  1. Ve a Apariencia > Menús, y crea un menú nuevo o abre uno existente.
  2. Desde la columna izquierda -llamada ‘Añadir elementos al menú’- haz clic en ‘Enlaces personalizados’. En ‘URL’, pega la URL de logout y, en ‘Texto del enlace’ (o ‘Etiqueta de navegación’), pon el texto con el que quieres que se muestre en el menú (‘Salir’, ‘Cerrar’, ‘A tomar viento’…; lo que te guste más.) Haz clic en ‘Añadir al menú’.
  3. Guardar menú.

De esta forma, teóricamente, tendríamos que poder salir de WordPress (Logout) y redirigir a nuestros usuarios a donde nosotros queramos, ¿verdad?

Pues no. Al menos todavía.

Ahora viene la solución…

Cómo cerrar sesión (Logout) en WordPress sin que nos pregunte si estamos seguros

La solución al problema que te vengo contando, pasa por añadir un fragmento de código al archivo functions.php del tema hijo de tu página web (no lo hagas sobre el tema padre, por los clavos de Cristo), el cual se va a encargar de cerrar sesión sin preguntarnos si tenemos dudas existenciales y redirigirnos a una URL que nosotros determinemos.

Para abrir el archivo functions.php, tienes que ir a Apariencia > Editor de archivos de temas, seleccionar el tema hijo (en mi caso Astra Child) y hacer clic en el archivo functions.php para abrirlo.

Pegas el código que te dejo debajo de estas imágenes, y guardas cambios (‘Actualizar archivo’):

El código es este:

				
					add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
{
/**
* PERMITIR LOGOUT WP SIN CONFIRMACIÓN
*/
if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'https://tudominio.com';
$location = str_replace('&', '&', wp_logout_url($redirect_to));
header("Location: $location");
die;
}
}
				
			

Cópialo y pégalo, pero recuerda…

Una vez pegues el código en tu archivo functions.php, tienes que cambiar la URL «https://tudominio.com» por la que tú quieras utilizar para redirigir a tus usuarios de tu web, y Guardar cambios.

IMPORTANTE: aunque he probado este método y funciona, antes de hacer nada, haz una copia de seguridad de tu web, por Dior!!!

Y listo. ¡Rico y con fundamento!!!

 

¿Qué te ha parecido la solución? ¿Te ha servido?

¡Cuéntame tus impresiones o dudas en comentarios y vamos hablando!

Bye, bye!!!!

¡Haz clic para puntuar esta entrada!
(Votos: 4 Promedio: 5)

Deja un comentario

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

  • Responsable: Eduardo Rubianes.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a FastComet INC que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.
Scroll al inicio

Las 9 fases cruciales para diseñar una web atractiva y efectiva.

pasos para diseñar una página web

Guía GRATUITA por entregas con la que aprenderás a diseñar una web profesional y a conseguir resultados reales para vivir de ella.