WooCommerce: статус заказа на основе способов оплаты

В Woocommerce у нас есть возможность оплаты BACS. Некоторые заказы поступают как оплаченные, а некоторые - нет. Я не могу понять, почему, поскольку они используют один и тот же способ оплаты. Два изображения ниже покажут вам это:

Платный:  введите здесь описание изображения Не оплачивается: введите описание изображения здесь

Мы используем функцию для автоматического изменения этих платежей с «В ожидании» на «Обработка» на случай, если это может иметь какое-то отношение к проблеме. Код ниже:

add_action( 'woocommerce_thankyou', 'bacs_order_payment_processing_order_status', 10, 1 );

function bacs_order_payment_processing_order_status( $order_id ) {
if ( ! $order_id ) {
    return;
}

// Get an instance of the WC_Order object
$order = new WC_Order( $order_id );

if ( ( get_post_meta($order->id, '_payment_method', true) == 'bacs' || 'cod'  ) && ('on-hold' == $order->status || 'pending' == $order->status) ) {
    $order->update_status('processing');
}

else {
    return;
}
}

// change COD payment method order status from processing to on-hold
add_action('woocommerce_thankyou_cod', 'action_woocommerce_thankyou_cod', 10, 1);
function action_woocommerce_thankyou_cod($order_id)
{
    $order = wc_get_order($order_id);
    $order->update_status('processing');
}

Любая помощь будет принята с благодарностью!


person Eagle Agency    schedule 16.03.2021    source источник


Ответы (1)


Ваш код сильно устарел, в нем есть ошибки ...

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

  1. Наложенный платеж cod используйте (статус по умолчанию - обработка):
  1. Оплата по чеку cheque использовать * (статус по умолчанию отложен):
  1. банковский перевод bacs использовать * (статус по умолчанию приостановлен):
  1. Для использования других платежных шлюзов (статус заказа по умолчанию связан с каждым платежным шлюзом, а также с наличием товаров, подлежащих отправке, или нет):
person LoicTheAztec    schedule 16.03.2021