Настройка статуса подписки WooCommerce при продлении на основе способа оплаты - PullRequest
1 голос
/ 20 октября 2019

С помощью подписок WooCommerce я хочу, чтобы при продлении заказа и подписки с наложенным платежом (подписка) статус подписки изменялся на удержание до завершения заказа. До того, как заказ на продление подписки будет оплачен, его статус находится в состоянии ожидания, а когда он оплачен, «обработан»

Текущий код, который у меня есть для «woocommerce_thankyou», работает только для новых подписок, но не для продленных. Я пробовал woocommerce_order_status_changed, как показано ниже, но не работает.

add_action( 'woocommerce_order_status_changed', 'change_order_status_conditionally', 10, 4 );
function change_order_status_conditionally( $order_id, $status_from, $status_to, $order ) {
    if( $order->get_payment_method() === 'stripe' ) {
      $order->update_status( 'completed' );
    } else if($order->get_payment_method() === 'cod' && $status_to === 'processing') {
      if( wcs_order_contains_subscription( $order )) {
        // Get an array of WC_Subscription objects
        $subscriptions = wcs_get_subscriptions_for_order( $order_id );
        foreach( $subscriptions as $subscription_id => $subscription ){
            // Change the status of the WC_Subscription object
            $subscription->update_status( 'on-hold' );
        }
      }
    }
}

Есть идеи, как это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...