Si tienes una tienda online con WooCommerce o un sitio de membresías en WordPress, es común que quieras controlar a dónde van los usuarios después de cerrar sesión. Por defecto, WordPress los redirige al formulario de login, pero en muchos casos es mejor enviarlos a la página principal u otra URL específica.
En este artículo, te mostraré cómo redirigir a los clientes (o cualquier rol de usuario) después del cierre de sesión usando un filtro de WordPress sencillo pero efectivo.
Código para Redirigir Usuarios después del Logout
El siguiente fragmento de PHP redirige a los usuarios con el rol ‘customer’ (típico en WooCommerce) a la página principal al cerrar sesión:
function redireccionar_despues_cierre_sesion($redirect_to, $requested_redirect_to, $user) {
if (isset($user->roles) && is_array($user->roles) && in_array('customer', $user->roles)) {
$redirect_to = home_url('/'); // Redirige a la página principal
}
return $redirect_to;
}
add_filter('logout_redirect', 'redireccionar_despues_cierre_sesion', 10, 3);
¿Cómo Funciona?
logout_redirect
es el filtro de WordPress que modifica la URL de redirección después del logout.- Verifica el rol del usuario (
customer
en este caso) antes de aplicar la redirección. home_url('/')
define la URL de destino (la página principal).
Personalizaciones Avanzadas
1. Redirigir a Otra Página (No la Principal)
Si quieres enviar a los usuarios a una página específica (como «/gracias»), modifica el código así:
$redirect_to = home_url('/gracias/');
2. Aplicar a Otros Roles de Usuario
Puedes cambiar 'customer'
por cualquier otro rol, como 'subscriber'
o 'contributor'
:
if (in_array('subscriber', $user->roles)) {
$redirect_to = home_url('/miembros/');
}
3. Redirigir a Todos los Usuarios (Sin Filtro de Rol)
Si quieres que todos los usuarios sean redirigidos después del logout, elimina la condición:
function redireccionar_todos_despues_logout() {
return home_url('/');
}
add_filter('logout_redirect', 'redireccionar_todos_despues_logout');
¿Dónde Colocar el Código?
Puedes añadir este código en:
- El archivo
functions.php
de tu tema hijo (recomendado). - Un plugin de snippets (como Code Snippets).
⚠️ Evita editarlo directamente en el tema padre, ya que los cambios se perderán al actualizar.