手动设置优惠券 used_by 客户 ID

Set Coupon used_by Customer ID manually

我正在寻找有关在 Woocommerce 上设置优惠券的 used_by 特定客户 user_id 的文档,如果要通过 REST API 手动添加优惠券代码或从管理员创建新订单端点。但我找不到正确的方法。希望有人能指点我。下面是我到目前为止开发的代码,但它返回了 NULL。

$WC_Coupon = new WC_Coupon($request['code']);
$WC_Coupon->set_used_by( $request['customer_id'] );

您确定您的 $WC_Coupon 已正确实例化吗?无论优惠券是如何添加到系统中的,一旦添加到系统中,它就应该像其他优惠券一样起作用。

建议您使用 $WC_Coupon 的 var_dump 并查看它是否输出正确的值,否则,您可能没有为构造函数提供正确的代码参数。

找到答案...正确使用的函数是increase_usage_count而不是直接使用优惠券对象来设置used_by元键。

$WC_Coupon = new WC_Coupon($request['code']);
$used_by = $request['customer_id'];
$WC_Coupon->increase_usage_count( $used_by );

希望此代码段可以帮助那些通过 REST 创建订单的人 API 并且需要一种方法来跟踪谁使用了优惠券代码。