Измените статус оплаты администратора обратно на неоплаченный для статуса отложенного заказа в Woocommerce - PullRequest
0 голосов
/ 17 сентября 2018

Когда статус заказа в Woocommerce изменяется на Обрабатывается статус платежа устанавливается на оплачен :

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

Детали заказа № 1234
Оплата через заказ на покупку.Оплачено 17 сентября 2018 года @ 9:18

Есть идеи, как изменить этот текст на тот, который был до изменения статуса?

1 Ответ

0 голосов
/ 17 сентября 2018

Используйте следующий код, который сбросит (пустую) оплаченную дату, поэтому он удалит оплаченное сообщение.

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

Код:

add_action( 'woocommerce_order_status_changed', 'reset_order_paid_date', 20, 4 );
function reset_order_paid_date( $order_id, $old_status, $new_status, $order ){
    if ( in_array( $old_status, array('on-hold', 'processing', 'completed') ) && $new_status == 'pending' ) {
        $order->set_date_paid(null);
        $order->save();
    }
}

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

Чтобы сделать его эффективным для вашего проблемного заказа, выполните следующий код только один раз , вставив его в function.php файл дочерней темы. Затем просмотрите любую страницу своего веб-сайта и удалите ее ...
(где 123 - идентификатор заказа, который необходимо заменить идентификатором заказа)

$order = wc_get_order( 123 ); // <== HERE set your order number
$order->set_date_paid(null);
$order->save();

Связанные: Установить дату оплаченного при изменении статуса оплаченного заказа в WooCommerce

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