You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress WooCommerce取消登出确认并重定向至当前页面

解决WooCommerce登出后重定向到当前页面的问题

我来帮你搞定这个登出重定向的问题!你之前用get_permalink()没生效,核心原因是:当WordPress处理customer-logout这个查询参数时,当前的页面链接其实是登出动作的处理页面,而非用户实际浏览的那个页面,自然没法跳转到正确位置。

这里有个更可靠的方案,用wp_get_referer()获取用户登出前的来源页面,精准跳回他们原来所在的页面:

function iconic_bypass_logout_confirmation() {
    global $wp;

    if ( isset( $wp->query_vars['customer-logout'] ) ) {
        // 获取登出前的来源页面,若为空则 fallback 到首页
        $redirect_url = wp_get_referer() ?: wc_get_page_permalink( 'home' );
        // 清理URL中的转义字符
        $redirect_url = str_replace( '&', '&', $redirect_url );
        
        wp_redirect( $redirect_url );
        exit;
    }
}
add_action( 'template_redirect', 'iconic_bypass_logout_confirmation' );

方案优势说明

  • wp_get_referer()会从HTTP请求头里读取用户的上一个页面地址,也就是点击登出按钮前所在的页面,完美匹配你的需求。
  • 加上?: wc_get_page_permalink( 'home' )做降级处理,防止直接访问登出链接导致referer为空的场景,保证页面不会出错。

如果是通过自定义模板输出登出按钮,也可以直接在生成链接时指定重定向地址,比如:

echo wp_logout_url( get_permalink() );

不过结合你要绕过登出确认页面的需求,上面的函数方案更适配你的现有代码逻辑。

内容的提问来源于stack exchange,提问作者JeremyWegen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:59:13