2015-09-02 154 views
0

我有條形碼網關設置和工作的Woocommerce訂閱。 每次我手動測試計劃續訂時,它都會保存續訂的新訂單ID,但是我無法找到訪問該計劃的方式。我將scheduled_subscription_payment()設置爲打印我們的$order對象,但由於訂閱引用了初始訂單,因此order_id始終相同。是否有辦法在觸發後立即獲得訂單續訂的新訂單ID?Woocommerce在訂閱續訂時獲得新的訂單ID

我引用的功能是在條紋WC網關插件:

public function scheduled_subscription_payment($amount_to_charge, $order, $product_id) 

回答

2

看來,在WooCommerce訂閱的最後一個版本(2.0.0)他們棄用老scheduled_subscription_payment掛鉤,並與更換新的woocommerce_scheduled_subscription_payment掛鉤。

舊的參數是:$ amount,$ original_order,$ product_id。

雖然新的是:金額,$ renewal_order。

因此,使用WC訂閱的最新版本,您可以直接訪問新的更新訂單數據。爲了取回續約母訂單,你可以使用:

 if (wcs_order_contains_renewal($renewal_order->id)) { 
      $parent_order_id = WC_Subscriptions_Renewal_Order::get_parent_order_id($renewal_order->id); 
     } 

如果你不能得到最後的WC訂閱插件,它是棘手的,從父母獲得續訂訂單:你也許可以得到所有的從給定的父母訂單更新訂單並拿走最後一個訂單,但您不能100%確定這是正確的訂單。

無論如何,如果你能得到最後的WC訂閱版本肯定是一個更好的主意。

+1

上帝保佑你。不知道爲什麼主題作者從來沒有將您的答案標記爲解決方案,但它是! –