rico72
Una vez que un usuario está en su página Mi cuenta en WooCommerce, me gustaría que cierre sesión y sea redirigido a mi página de inicio en lugar de terminar en la página de inicio de sesión.
solo muju
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
-
He agregado esto en mi archivo function.php. Cuando hice clic para acceder a Mi cuenta, la página de inicio de sesión no se activó. Nada disparó de hecho. ¿No es tan simple como agregar este código en el archivo function.php?
– Rich72
26 de febrero de 2019 a las 11:26
-
Agregué el código en mi tema hijo. apexgray.co.uk/mi-cuenta
– Rich72
26 de febrero de 2019 a las 11:30
-
Volveré a agregar el código en el archivo function.php y te lo haré saber…
– Rich72
26 de febrero de 2019 a las 11:32
-
Tal vez mi pregunta no fue clara. Cuando el usuario haya iniciado sesión en su cuenta y haya terminado, cuando haga clic en cerrar sesión, idealmente me gustaría que vaya a la página de inicio.
– Rich72
26 de febrero de 2019 a las 11:37
-
¡Creo que mi pregunta original era confusa…!
– Rich72
26 de febrero de 2019 a las 11:38
Solo para agregar a la respuesta original, usar exit para terminar el script puede evitar que Woocommerce se ejecute después de cerrar sesión, como borrar las cookies (artículos del carrito en cookies). Así que tu mejor apuesta es usar logout_url
filtrar así.
function redirect_after_logout($logout_url, $redirect) {
return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);
Probado en Woocommerce Versión 5.4.1 ✅
Ahmet Kaptán
Si encuentra cómo omitir la confirmación de cierre de sesión de WooCommerce, puede tomar esto:
function wooHook_woocommerce_logout_bypass() {
global $wp;
if ( isset( $wp->query_vars['customer-logout'] ) ) {
wp_redirect( str_replace( '&', '&',
wp_logout_url( wc_get_page_permalink( 'hesabim' ) ) ) );
exit;
}
}
add_action( 'template_redirect', 'wooHook_woocommerce_logout_bypass' );