Используйте следующий код, который сбросит (пустую) оплаченную дату, поэтому он удалит оплаченное сообщение.
Таким образом, каждый раз, когда заказ, имеющий статус «обработка», «завершен» или «На удержании», возвращается в статус «Ожидание», оплаченная дата будет освобождена.
Код:
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