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

WooCommerce结账无限加载与登录重定向冲突问题求助

解决WooCommerce结账无限加载问题并保留登录重定向功能

你的问题根源在于:代码绑定的wp动作会在**所有请求(包括Ajax异步请求)**中触发。WooCommerce结账页面的核心操作(比如更新购物车、计算税费/运费)都依赖Ajax请求,当这些请求触发你的重定向逻辑时,会打断Ajax的正常响应,导致页面出现无限加载的异常。

只需要给代码加上两个关键判断,排除Ajax请求和后台页面的干扰即可:

function add_login_check() {
    // 跳过Ajax请求和后台操作,避免干扰正常功能
    if (wp_doing_ajax() || is_admin()) {
        return;
    }

    if (is_user_logged_in() && is_page(416)) {
        // 用wp_safe_redirect更安全,会自动验证URL合法性
        wp_safe_redirect('https://mywebsite.com/abcd/');
        exit;
    }
}
add_action('wp', 'add_login_check');

关键细节说明:

  • wp_doing_ajax():WordPress内置函数,专门用来检测当前是否是Ajax请求。如果是Ajax请求,直接跳过重定向逻辑,确保结账页面的异步操作能正常完成。
  • is_admin():保证这段逻辑只在网站前端执行,不会影响后台的正常操作流程。
  • wp_safe_redirect():替代原代码的wp_redirect(),它会自动验证目标URL是否合法,避免潜在的安全风险,是更推荐的用法。

这样修改后,既完整保留了已登录用户访问登录页时自动跳转到会员区的需求,又彻底解决了结账页面无限加载的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 17:17:39