Nat*_*ade 0 php wordpress subscription stripe-payments woocommerce
我有 Woocommerce 订阅,并且 Stripe Gateway 设置并正常工作。每次我手动测试计划的续订时,它都会保存续订的新订单 ID,但我找不到访问它的方法。我设置了scheduled_subscription_payment()
打印对象$order
,但由于订阅引用了初始订单,order_id 始终相同。有没有办法在订阅续订触发后立即获取新订单 ID?
我引用的函数位于 Stripe WC Gateway 插件中:
public function scheduled_subscription_payment( $amount_to_charge, $order, $product_id )
Run Code Online (Sandbox Code Playgroud)
似乎在 WooCommerce Subscriptions 的最新版本 (2.0.0) 中,他们弃用了旧的 Scheduled_subscription_ payment 挂钩,并替换为新的 woocommerce_scheduled_subscription_ payment 挂钩。
旧参数为:$amount、$original_order、$product_id。
新的有:$amount、$renewal_order。
因此,使用最新版本的 WC Subscriptions,您可以直接访问新的续订订单数据。要从续订中检索父订单,您可以使用:
if ( wcs_order_contains_renewal( $renewal_order->id ) ) {
$parent_order_id = WC_Subscriptions_Renewal_Order::get_parent_order_id( $renewal_order->id );
}
Run Code Online (Sandbox Code Playgroud)
如果您无法获取最后一个 WC Subscriptions 插件,则从父级获取续订订单会很棘手:您可能可以从给定父级订单获取所有续订订单并获取最后一个,但您不能 100% 确定这是正确的顺序。
不管怎样,如果你能得到最新的 WC Subscriptions 版本肯定是一个更好的主意。