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

WooCommerce登录后基于用户元数据自定义跳转功能异常排查

问题原因分析
  • woocommerce_login_redirect 过滤器的回调函数缺少必要的$user参数,登录触发的瞬间get_current_user_id()可能无法正确获取刚完成登录的用户ID,导致用户元数据查询异常,逻辑判断失效。
  • get_permalink() 传入的页面ID为字符串格式'123',该函数要求传入整数类型的页面ID,会导致指定跳转页的链接获取失败。
  • empty() 对全角空格、换行等空白字符判断不严谨,若用户元数据仅存储空白内容会被误判为非空。
修正后可运行代码
add_filter('woocommerce_login_redirect', 'ac_my_acct_login_redirect', 10, 2);
function ac_my_acct_login_redirect($redirect_to, $user) {
    // 过滤登录失败的无效用户对象
    if (is_wp_error($user)) {
        return $redirect_to;
    }
    // 直接通过回调传入的用户对象获取ID
    $father = get_user_meta( $user->ID, 'fath_name', true ); 
    // 传入整数类型的目标页面ID
    $update_pro = esc_url(get_permalink(123));
    $my_acct = esc_url(get_permalink( wc_get_page_id( 'myaccount' ) ));

    // 先去除首尾空白字符再判断,避免空白内容误判
    if(empty(trim($father))){
        $redirect_to = $update_pro;
    } else {
        $redirect_to = $my_acct;
    }
    return $redirect_to;
}
注意事项
  • 请确认ID为123的页面对应站点内真实存在、状态为已发布的公开页面,否则跳转链接会默认 fallback 到站点首页。
  • 若不需要过滤空白内容,可将判断条件改回empty($father)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:42:03