我试图从操作挂钩 subscription id
中获取 woocommerce_order_status_changed
。
它为我提供了 order id
,它改变了客户的每一个开关。
例如:如果 subscription id
为 10
,则原始 order id
为 9
现在,客户制作的每个开关都会生成一个新的订单ID,上面的操作会为您提供。此时,我有 $customer_id
, $order_id
,以及原来的 post id
9
下,
如何获得当前订单的 subscription id
?
由于
答案 0 :(得分:4)
您可以使用专用函数wcs_get_subscriptions_for_order()
来检索$订阅ID。
所以这可能是你的代码:
add_action('woocommerce_order_status_changed', 'action_order_status_changed');
function action_order_status_changed( $order_id ){
$subscriptions_ids = wcs_get_subscriptions_for_order( $order_id );
// We get the related subscription for this order
foreach( $subscriptions_ids as $subscription_id => $subscription_obj )
if($subscription_obj->order->id == $order_id) break; // Stop the loop
// The subscription ID: $subscription_id
// The An instance of the Subscription object: $subscription_obj
// ...
}