我正在开发一个直接创建订单(无购物车)并应用优惠券的插件。在 woo API 的 3.0 版中,该函数add_coupon()已被弃用,取而代之的是WC_Order_Item_Coupon您添加到订单中的对象。
创建优惠券
$coupon = new WC_Order_Item_Coupon();
$coupon->set_props(array('code' => $coupon, 'discount' => $discount_total,
'discount_tax' => 0));
$coupon->save();
Run Code Online (Sandbox Code Playgroud)
这是成功的。我可以通过调用来验证$coupon->get_discount()。
然后我将优惠券添加到订单并重新计算总数:
$order->add_item($item);
$order->calculate_totals($discount_total);
$order->save();
Run Code Online (Sandbox Code Playgroud)
登录 wp-admin 我可以看到带有优惠券代码的订单。但是,优惠券对行项目或总计没有影响。
是否误解了 api v3.0 打算如何处理优惠券?