WooCommerce: redirección de inicio de sesión por rol de usuario en mi cuenta

Hay momentos en los que no desea que los clientes inicien sesión y sean redirigidos al panel predeterminado "Mi cuenta". Tal vez porque tiene un sitio de membresía y desea que vayan a una página personalizada de "Bienvenida", o tal vez desea enviarlos directamente a su subsección "Mi cuenta"> "Descargas".

No importa el motivo, seguro que descubrir cómo lograr una redirección personalizada una vez que un usuario inicia sesión desde la página "Mi cuenta" es bastante sencillo. El enlace que usaremos se llama "woocommerce_login_redirect" y nos permite activar una redirección segura cada vez que un cliente hace clic en el botón INICIAR SESIÓN. ¡Disfrutar!

Nuestro objetivo es redirigir a un cliente a una URL diferente a la página "Mi cuenta". El fragmento a continuación solo hará lo que dice en la lata.

Fragmento de PHP: en el inicio de sesión del cliente, redirigir a una URL personalizada (a diferencia de "Mi cuenta")

De forma predeterminada, la función process_login() de WooCommerce redirige a wc_get_page_permalink('myaccount') , que es la URL de la página del panel de Mi cuenta. En los ejemplos a continuación, intentaremos redirigir a los clientes (y NO a los administradores u otros roles de usuario) a una URL personalizada.

Le daré diferentes opciones de redirección dentro del fragmento, asegúrese de elegir solo una y elimine/comente las demás.

/**
 * @snippet       Custom Redirect @ WooCommerce My Account Login
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 4.0
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
add_filter( 'woocommerce_login_redirect', 'bbloomer_customer_login_redirect', 9999, 2 );
 
function bbloomer_customer_login_redirect( $redirect, $user ) {
     
    if ( wc_user_has_role( $user, 'customer' ) ) {
        $redirect = get_home_url(); // homepage
        //$redirect = wc_get_page_permalink( 'shop' ); // shop page
        //$redirect = '/custom_url'; // custom URL same site
        //$redirect = 'https://custom.url'; // custom URL other site
        //$redirect = add_query_arg( 'password-reset', 'true', wc_get_page_permalink( 'myaccount' ) ); // custom My Account tab
    }
  
    return $redirect;
}

Deja una respuesta

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

Subir