I'm trying to get the subscription id
from the action hook woocommerce_order_status_changed
.
It gives me the order id
which is changed every switch the customer makes.
For example: If the subscription id
is 10
, the original order id
is 9
.
Now every switch the customer made generates a new order id, which the action above gives you. At this point I have the $customer_id
, $order_id
, and the original post id
which is 9
,
How I can get the subscription id
of the current order ?
Thanks
You can use dedicated function wcs_get_subscriptions_for_order()
which will retrieve $subscription IDs.
So this could be your code:
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, array( 'order_type' => 'any' ) );
// We get all related subscriptions 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
// ...
}