WooCommerce - 我的帐户 - 注销并重定向到主页
WooCommerce - My Account - logout and redirect to Homepage
一旦用户进入 WooCommerce 上的“我的帐户”页面,我希望他们点击注销并被重定向到我的主页,而不是最终进入登录页面。
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
如果你找到了绕过 WooCommerce 注销确认的方法,你可以采取这个:
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' );
只是添加到原始答案中,使用 exit 终止脚本可以阻止 Woocommerce 在注销后执行必要的操作,例如清除 cookie(cookie 中的购物车项目)。所以你最好的选择是像这样使用 logout_url
filter。
function redirect_after_logout($logout_url, $redirect) {
return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);
在 Woocommerce 版本 5.4.1 中测试 ✅
一旦用户进入 WooCommerce 上的“我的帐户”页面,我希望他们点击注销并被重定向到我的主页,而不是最终进入登录页面。
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
如果你找到了绕过 WooCommerce 注销确认的方法,你可以采取这个:
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' );
只是添加到原始答案中,使用 exit 终止脚本可以阻止 Woocommerce 在注销后执行必要的操作,例如清除 cookie(cookie 中的购物车项目)。所以你最好的选择是像这样使用 logout_url
filter。
function redirect_after_logout($logout_url, $redirect) {
return $logout_url . '&redirect_to=' . home_url();
}
add_filter('logout_url', 'redirect_after_logout', 10, 2);
在 Woocommerce 版本 5.4.1 中测试 ✅