Измените статус заказа наложенного платежа по умолчанию на «В ожидании» вместо «Обработка» в Woocommerce - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужна помощь с проблемой, связанной с плагином "WooCommerce Pay for Payment", который учитывает некоторую дополнительную плату за доставку. Проблема в том, что этот плагин автоматически устанавливает статус «обработки» в порядке, который вызывает благодарность по электронной почте за оплату (в случае локального платежа) и не отправляет уведомление по электронной почте о новом заказе, поэтому клиент смущен (я не отправлял деньги и я получил письмо "спасибо за ваш платеж").

Я попробовал это решение: Установить статус заказа WooCommerce при создании заказа от обработки до ожидающего

Но он только меняет статус заказа обратно на "в ожидании", но все равно отправляет электронное письмо с благодарностью за оплату.

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

Спасибо за помощь, я не знаю, как решить, потому что я не смог найти файл PHP, вызывающий изменение статуса в плагине.

РЕДАКТИРОВАТЬ: Извините всех. Это была проблема ХПК в плагине woocommerce. Не платите за платеж, как я уже говорил. Woocommerce COD автоматически устанавливает статус «обработки».

Я нашел решение для этого на github: здесь

Это первый код.

Исходя из ответа на этот вопрос, этот код работал отлично для меня:

function sv_wc_cod_order_status( $status ) {
    return 'on-hold';
}
add_filter( 'woocommerce_cod_process_payment_order_status', 'sv_wc_cod_order_status', 15 ); 

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

два решения выше одинаковы, кроме:

  • решение от @LoicTheAztek имеет 2 аргумента в основной функции и имеет приоритет «10» -
  • решение от @ Jiří-Prek имеет аргументы в базовой функции и имеет приоритет «15» для хука

но для моих WP5.1.1 и WC3.5.7

function change_cod_payment_order_status( $order_status, $order ) {
return 'on-hold';

}

выдает ошибку

Неустранимая ошибка PHP: Uncaught ArgumentCountError: слишком мало аргументов для функция change_cod_payment_order_status ()

поэтому я предпочитаю использовать код только с одним аргументом в основной функции

0 голосов
/ 14 ноября 2018

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

add_filter( 'woocommerce_cod_process_payment_order_status', 'change_cod_payment_order_status', 10 );
function change_cod_payment_order_status( $order_status, $order ) {
    return 'on-hold';
}

Код помещается в файл function.php вашей активной дочерней темы (активной темы).Протестировано и работает.

enter image description here

Таким образом, статус заказа по умолчанию, установленный платежным шлюзом, теперь "На удержании"вместо «Обработка»

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