商品详情页写着下单送小样,结算页只有主商品,赠品没有自动加入,客服只能手动补发。订单备注里也没有赠品。日志里能对上时间点,这种反而好排。

赠品是在商品页模板里写的文案,购物车和结算没有对应的加购逻辑。主题换了结算模块后,原来的赠品钩子没有挂上。这一点先确认清楚,后面就不用反复试。

add_action('woocommerce_add_to_cart', function ($key) {
  $gift = 12345;
  WC()->cart->add_to_cart($gift, 1, 0, [], ['gift' => true]);
}, 10, 1);

「赠品结算页丢失」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。

处理上按这个顺序:在加购时用购物车项或优惠钩子把赠品加进去,别只改文案;结算页读取赠品项并单独展示,价格标零;赠品库存不足时给出提示,别让主商品下单失败。

结果对不对很好判断,加购主商品后结算页多出一行零元赠品,下单后订单明细里能看到它。

作者 9823189