WooCommerce: автоматическое заполнение оплаченных заказов (в зависимости от способов оплаты)

Обычно wooCommerce должен автоматически завершать заказы на виртуальные продукты. Но это не так, и это реальная проблема, даже как ошибка.

Так что на данный момент вы можете найти некоторые полезные вещи (но не очень удобно):

1) фрагмент кода (что вы можете найти в документации по wooCommerce):

/**
 * Auto Complete all WooCommerce orders.
 */
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}

Но этот фрагмент не работает дляBACS *, Оплата при доставке а такжеПроверять Способы оплаты. Это нормально для способов оплаты шлюзов Paypal и кредитных карт.

* BACSпрямой платеж банковским переводом

А также …

2) Плагин: WooCommerce Автозаполнение заказов

Этот плагин работает для всех способов оплаты,но не для ДругойСпособы оплаты шлюзами кредитных карт.

Мой вопрос:

Используя (в качестве основы) фрагмент wooCommerce в пункте 1:

Как я могу реализовать условный код на основе методов оплаты woocommerce?

Я имею в виду что-то вроде: если методы оплаты не «BACS», «Оплата при доставке» и «Чек», тогда примените код фрагмента (обновите статус до «выполнено» для оплаченных заказов, касающихся виртуальных продуктов).

Я не мега-эксперт WooCommerce, поэтому я пока не нашел, как настроить методы оплаты в заказах WooCommerce.

Некоторая помощь будет очень милой.

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос