Разрешить редактирование заказа при статусе «Обработка» и других в WordPress WooCommerce
Столкнулся с проблемой, что заказы, у которых стоит статус «Обработка» невозможно отредактировать. Видим надпись «Этот заказ был оплачен и не может быть отредактирован». Но что делать, если оплата по факту и нужно обновить заказ?
Я смотрел два варианта — разрешить редактировать при статусе «Обработка» или при заказе чтобы выставлялся статус в «Ожидание оплаты». Второй способ мне показался менее удобным и не нашел техническую реализацию.
Разрешить редактировать можно через хуки, добавив в файл functions.php в вашей теме следующий код:
1 2 3 4 5 6 7 | add_filter('wc_order_is_editable', 'my_wc_order_is_editable', 10, 2); function my_wc_order_is_editable($res, $order) { if(in_array($order->get_status(), array('processing', 'cancelled'))) { return true; } return $res; } |
В данном коде мы проверяем статус заказа и для статусов «Обработка» и «Отменен» мы возвращаем true для хука wc_order_is_editable, который и отвечает за разрешение на редактирование.
Список статусов и их системных наименований:
pending | В ожидании оплаты |
processing | Обработка |
on-hold | На удержании |
completed | Выполнен |
cancelled | Отменен |
refunded | Возращен |
failed | Не удался |
Комментарии к Разрешить редактирование заказа при статусе «Обработка» и других в WordPress WooCommerce (2)
Игорь Копаков
Почему-то не сработало
Олеся
Сработало! Спасибище!)) добавила в файл functions.php своей темы в конце, перед блоком Recommend plugins и все заработало, заказы теперь можно редактировать)