paudún
Tengo problemas para usar el gancho de filtro ‘woocommerce_login_redirect’. Quiero que el usuario sea redirigido a la página principal al iniciar sesión, excepto cuando inicie sesión en la página de pago. No importa lo que intente, el usuario aún es redirigido a la página principal cuando inicia sesión en la página de pago. Aquí está mi código:
add_filter('woocommerce_login_redirect', 'wc_login_redirect');
function wc_login_redirect( $redirect_to ) {
if ( ! is_checkout()){
$redirect_to = 'https://seiltau.no';
return $redirect_to;
}
}
Probé (is_checkout()==false) y (! is_page(‘checkout’)) también, pero todavía me redirigen a la página principal cuando inicio sesión en la página de pago.
¿Algunas ideas?
itzmekhokan
Simplemente reemplace el código de su función con lo siguiente:
if ( $redirect_to == wc_get_page_permalink( 'checkout' ) ){
return $redirect_to;
}else{
$redirect_to = 'https://seiltau.no';
return $redirect_to;
}
-
Agregar $redirect_to fuera de la declaración if aún redirige a la página principal 🙁
– Paudún
1 de abril de 2019 a las 9:27
-
¿Es posible que el código dentro del filtro se ejecute después de salir de la página actual?
– Paudún
1 de abril de 2019 a las 9:35
-
entonces creo que su función is_checkout () devuelve falso, verifíquelo.
– itzmekhokan
1 de abril de 2019 a las 9:52
-
@Paudun simplemente reemplace su código de función con mi código modificado anterior
– itzmekhokan
1 de abril de 2019 a las 9:57
Si alguien está buscando una solución para redirigir en función del rol del usuario:
/**
* WooCommerce function for redirecting users on login based on user role
*/
add_filter( 'woocommerce_login_redirect', 'wc_my_login_redirect', 10, 2 );
function wc_my_login_redirect( $url, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'administrator', $user->roles ) ) {
$url = admin_url();
}
else if ( in_array( 'seller', $user->roles ) ) {
$url = site_url( '/dashboard/settings/store/' );
}
}
return $url;
}
cuando el usuario inicia sesión desde el pago, ¿a qué página desea redirigir?
– Dhruv
1 de abril de 2019 a las 9:32
No quiero redirigir si el usuario inicia sesión en la página de pago.
– Paudún
1 de abril de 2019 a las 9:33