Obtenga la identificación de suscripción de la identificación de pedido

1 minuto de lectura

avatar de usuario
Shlomi

estoy tratando de conseguir el subscription id del gancho de acción woocommerce_order_status_changed.

me da la order id que se cambia cada cambio que hace el cliente.

Por ejemplo: Si el subscription id es 10el original order id es 9.

Ahora, cada cambio que hizo el cliente genera una nueva identificación de pedido, que le brinda la acción anterior. En este punto tengo la $customer_id, $order_idy el original post id cual es 9,

como puedo conseguir el subscription id del orden actual?

Gracias

avatar de usuario
LoicTheAztec

Puede utilizar la función dedicada wcs_get_subscriptions_for_order() que recuperará $ ID de suscripción.

Así que este podría ser tu código:

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

  • Una nota para cualquiera que lea esto: tuve que configurar los parámetros para la función como wcs_get_subscriptions_for_order( $order_id, array( 'order_type' => 'any' ) ) para que esto funcione. Sin el segundo parámetro no me funcionaba (ver función add_subscriptions_to_view_order_templates() en el archivo class-wc-subscriptions-order.php en el complemento woocommerce-subscriptions que hace lo mismo). Estoy usando WC 3.3.5 y WordPress 4.9.4

    – Sara

    3 de mayo de 2018 a las 9:59


  • @Sarah Gracias por tu nota…

    – LoicTheAztec

    3 de mayo de 2018 a las 11:03

  • @Sarah gracias por tu nota, realmente ayuda mucho. muchas gracias 🙂

    – dev_ramiz_1707

    4 de marzo de 2021 a las 15:12

¿Ha sido útil esta solución?