从订单ID获取订阅ID

时间:2017-03-31 22:52:17

标签: php wordpress woocommerce orders woocommerce-subscriptions

我试图从操作挂钩 subscription id 中获取 woocommerce_order_status_changed

它为我提供了 order id ,它改变了客户的每一个开关。

例如:如果 subscription id 10 ,则原始 order id 9

现在,客户制作的每个开关都会生成一个新的订单ID,上面的操作会为您提供。此时,我有 $customer_id $order_id ,以及原来的 post id 9 下,

如何获得当前订单的 subscription id

由于

1 个答案:

答案 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 
    // ...
}