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

Woocommerce自定义跟踪像素无法正确获取订单ID和订单金额求助

问题根因
  • 你代码里直接把$order(WC_Order对象)传入URL参数,对象无法直接序列化为你需要的订单ID字符串,是参数输出异常的核心原因
  • 另外原代码还存在单引号不匹配、URL参数未做转义的问题,会触发额外解析错误
修正后的可用代码
//Tracking pixel for Funker360
add_action( 'woocommerce_thankyou', 'funker360_pixel' );
function funker360_pixel($order_id) {
    // 先判断订单对象是否有效,避免无效访问时抛出报错
    if (!$order = wc_get_order($order_id)) {
        return;
    }
    $order_total = $order->get_total();
    // 用WordPress原生方法拼接URL,自动处理转义,避免手动拼接的格式错误
    $pixel_url = add_query_arg([
        'Order_Id' => $order_id,
        'total' => $order_total
    ], 'https://urlinfoforpixel');
    echo '<img style="display:none;" src="'.esc_url($pixel_url).'">';
}
改动说明
  • 直接用回调自带的$order_id参数作为订单ID即可,也可以调用$order->get_id()从订单对象中获取ID,效果一致,完全解决对象转字符串的错误
  • 用WordPress原生的add_query_arg方法拼接URL参数,自动处理参数转义和符号拼接,不需要手动拼接&符号,避免格式错误
  • 增加了订单有效性判断,避免用户访问无效感谢页时抛出PHP错误
  • 统一了引号格式,修复了原代码中style属性后单引号不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:45:02