php - 以编程方式从订阅/订单中删除优惠券

标签 php woocommerce

如何以编程方式从订阅/订单中删除优惠券?

这是我尝试过的,但运行时,它似乎没有删除优惠券,我哪里出错了?

    $subscription = new WC_Subscription( $_REQUEST['sub_id'] );
    $coupon_code = $_REQUEST['voucher_code'];
    $coupon = new WC_Coupon( $coupon_code );
    $subscription->remove_coupon( $coupon );

另一方面是添加一张优惠券,效果很好:

      $subscription->add_coupon( $coupon_code,$coupon_amount,'0' );
      $subscription->set_total( $subscription->get_total() - $coupon_amount );
      $subscription->save();

最佳答案

remove_coupon方法参数是优惠券代码,而不是对象。

试试这个:

$subscription->remove_coupon( 'coupon_code' );

其中coupon_code是客户应用于购物车或结帐的优惠券的名称。

在这里您可以找到文档:https://woocommerce.github.io/code-reference/files/woocommerce-includes-abstracts-abstract-wc-order.html#source-view.1187

关于php - 以编程方式从订阅/订单中删除优惠券,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66031516/

相关文章:

php - CloudFlare Flexible SSL with Wordpress(模板 URL)

php - 在 PHP 中向 REST API 发送 JSON POST 请求

php - 将 pdf 附件添加到 WooCommerce 已完成订单电子邮件通知

wordpress - 显示woocommerce中每位作者的总销售额

php - 浏览器检测给我一个 fatal error

php - 是否有任何配置或 INNODB 原则导致以下 MYSQL 更新不一定执行所有更新?

php - 如何将许多(超过 100 个)变量传递给 PHP

wordpress - 问题仅允许 WooCommerce 购物车中的一种产品

php - 从 WooCommerce 电子邮件中删除货到付款说明

php - WooCommerce 2.6 自定义端点 404 未找到错误