Woocommerce 订阅:为续订订单应用优惠券

1 woocommerce woocommerce-subscriptions

我想在创建订阅续订订单时应用优惠券。我使用 stripe 作为 woocommerce 订阅的支付网关。

我从文档中找到了过滤器“wcs_renewal_order_created”:https://docs.woocommerce.com/document/subscriptions/develop/filter-reference/

我设法应用它,它很好触发,我可以将优惠券应用于此订单。订单金额减去优惠券金额。

问题:Stripe 收取订单全额费用,没有折扣。就好像我改变的顺序没有被Stripe使用一样。

以下是代码示例,它将任何续订订单减少 5:

function gens_renewal_order_created($order, $subscription){         
    $order = new WC_Order( $order->id );                
    $order->set_total($order->get_total() - 5);     
    return $order;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

这有点晚了,但还没有回复。

如果你看一下“wcs_create_order_from_subscription()”

这是创建新订单的函数。这里还有一个文档“wcs_new_order_created”中未提及的不同过滤器。

所以这就是你的代码应该是什么。

function gens_renewal_order_created($order, $subscription){         
    $order = new WC_Order( $order->id );                
    $order->set_total($order->get_total() - 5);     
    return $order;
}
add_filter('wcs_new_order_created','gens_renewal_order_created', 10, 2 );
Run Code Online (Sandbox Code Playgroud)