Автозаполнение заказов при успешном продлении платежа по подписке в WooCommerce

Я использую плагин WooCommerce Subscriptions для подписок, и он повторяет заказ на продление подписки, и мне нужно, чтобы при создании повторяющегося заказа после успешной оплаты продления подписки статус заказа должен был измениться на завершенный.

Я безуспешно пытался использовать следующие хуки:

  • woocommerce_renewal_order_payment_complete
  • woocommerce_order_status_changed
  • woocommerce_payment_complete

person Varun Malhotra    schedule 29.04.2019    source источник


Ответы (2)


Для подписок WooCommerce вам необходимо использовать хук действия woocommerce_subscription_payment_complete, который запускается, когда производится оплата за продление подписки.

Вы можете попробовать следующее, чтобы обновить текущий статус заказа до завершенного:

add_action('woocommerce_subscription_payment_complete', 'subscription_payment_complete_hook_callback', 10, 1);
function subscription_payment_complete_hook_callback( $subscription ) {
    // Get the current order
    $current_order = $subscription->get_last_order( 'all', 'any' );

    // For Paypal recurring orders
    if( $current_order->get_payment_method() === 'paypal' ) {

        // Update status to completed
        $current_order->update_status('completed');
    }
}

Связанная документация: хуки действий WooCommerce Subscriptions

person LoicTheAztec    schedule 30.04.2019
comment
этот хук вызывается каждый раз, когда создается новый заказ или продление подписки? - person Varun Malhotra; 30.04.2019

Я считаю, что для продления следует использовать ловушку: woocommerce_subscription_renewal_payment_complete

Это также принимает параметр $ subscription

person ryuken    schedule 22.06.2021
comment
Как видно здесь: docs.woocommerce.com/document/subscriptions/develop / - person ryuken; 23.06.2021