Diseñador Web y Asesor

Cómo Redirigir Clientes a la Página Principal tras Cerrar Sesión en WordPress – Guía Práctica

Cómo Redirigir Clientes a la Página Principal tras Cerrar Sesión en WordPress

Tabla de Contenido

https://www.youtube.com/watch?v=o3O-59NDqyM

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?

  1. logout_redirect es el filtro de WordPress que modifica la URL de redirección después del logout.
  2. Verifica el rol del usuario (customer en este caso) antes de aplicar la redirección.
  3. 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.