
[Código] Cómo redirigir usuarios después de iniciar sesión en WordPress y WooCommerce
¿Por qué es importante redirigir usuarios después de iniciar sesión?
La experiencia del usuario en WooCommerce es clave para que tus clientes vuelvan a comprar. Por defecto, WordPress envía a los usuarios al escritorio tras iniciar sesión, lo cual no siempre es lo ideal, sobre todo en tiendas online.
Si lo que quieres es que, al iniciar sesión, el cliente sea redirigido a una página personalizada, como su área de cliente, el catálogo o incluso la página anterior, este tutorial te mostrará cómo hacerlo fácilmente desde el archivo functions.php.
Dónde colocar el código para redirigir usuarios en WordPress
Para cambiar el comportamiento por defecto de WordPress tras el login, debes acceder al archivo functions.php de tu tema hijo. Ahí podrás pegar el código que personalizará la redirección de tus usuarios al iniciar sesión.
[!TIP]
Usa siempre un tema hijo para hacer cambios en WordPress, de lo contrario perderás la personalización al actualizar el tema principal.
Código básico para redireccionar usuarios después del login
Aquí tienes el snippet más sencillo para que cualquier usuario que inicie sesión en tu sitio sea redirigido a la página que elijas:
// Redirigir usuarios a una página personalizada después de iniciar sesión
function my_custom_login_redirect( $redirect_to, $request, $user ) {
// Evitar errores si el usuario no existe
if ( ! $user || is_wp_error( $user ) ) {
return $redirect_to;
}
// Sustituye 'mi-pagina-personalizada' por el slug de tu página
return home_url( 'mi-pagina-personalizada' );
}
add_filter( 'login_redirect', 'my_custom_login_redirect', 10, 3 );Con este código, tras iniciar sesión, todos los usuarios serán enviados automáticamente a la página que indiques.
Variantes avanzadas para redireccionar en WordPress y WooCommerce
1. Redirección según el rol del usuario
¿Quieres que cada tipo de usuario vaya a un sitio diferente? Por ejemplo, que los administradores accedan al escritorio, pero los clientes a su cuenta. Con este código puedes hacerlo:
// Redirección basada en roles de usuario
function my_custom_login_redirect_role_based( $redirect_to, $request, $user ) {
if ( !is_wp_error( $user ) ) {
if ( user_can( $user, 'administrator' ) ) {
$redirect_to = admin_url();
} elseif ( user_can( $user, 'editor' ) ) {
$redirect_to = admin_url( 'edit.php' );
} else {
$redirect_to = home_url( '/mi-pagina-de-cliente' );
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'my_custom_login_redirect_role_based', 10, 3 );
Esto es muy útil en WooCommerce si quieres enviar a los clientes a su área personal o a una página de bienvenida.
2. Redirigir a la página anterior
Otra opción práctica es enviar al usuario a la página desde la que inició sesión. Así no rompe la navegación y mejora la experiencia en tu tienda online:
// Redirigir a los usuarios a la página anterior tras iniciar sesión
function my_custom_login_redirect_previous_page( $redirect_to, $request, $user ) {
if ( !is_wp_error( $user ) && $_SERVER['HTTP_REFERER'] ) {
$redirect_to = $_SERVER['HTTP_REFERER'];
}
return $redirect_to;
}
add_filter( 'login_redirect', 'my_custom_login_redirect_previous_page', 10, 3 );Conclusión
Personalizar la redirección tras el login en WordPress y WooCommerce mejora la usabilidad y refuerza la estrategia de tu web. Con un simple snippet en functions.php puedes controlar la experiencia y decidir si tus usuarios ven el escritorio, su perfil, la tienda o cualquier otra página estratégica.
Recuerda: menos plugins significa más seguridad y mejor rendimiento en tu WordPress.