Intereting Posts
С границами слов (\ b) в RegEx мне нужно иметь его до И после слова или раньше? Защита доступа к веб-сайту по паролю Как работает mysqli :: commit и mysqli :: rollback? PHP & cron: проблемы безопасности Загрузка изображения Laravel AJAX Значение переменной PHP String to Int Conversion (с помощью simple_html_dom) Как связать аргументы mysqli bind_param динамически в PHP? создание нескольких кнопок с использованием цикла while, но только первая кнопка реагирует при использовании функции .onclick Доступ к экземпляру PDO из другого класса Получение «APINotAllowedError» при запросе медиа на частном профиле, даже с учетом всех областей jQuery ajax неограниченный динамический selectbox на основе родительских категорий Результаты группы MySQL (или PHP?) По данным поля Выведите значение настраиваемого поля в отдельных страницах продукта и корзины WooCommerce Правила корзины покупок с пользовательским условием? Как выводить в реальном времени, когда число меняется?

Отправлять уведомление по электронной почте при изменении статуса заказа от ожидающего до отмены

В предыдущих версиях Woocommerce уведомление по электронной почте было отправлено автоматически, когда заказ был изменен с ожидающего статуса на отмененный статус (в моем случае это происходит после отведенного времени, установленного в разделе инвентаризации администратора).

В WooCommerce 3.0.8 они удалили эту автоматизацию и помечены как исправление: https://github.com/woocommerce/woocommerce/blob/master/CHANGELOG.txt

И запрос на перенос находится здесь: https://github.com/woocommerce/woocommerce/pull/15170/files

Я хочу восстановить эту функциональность, но, очевидно, копирование / вставка этой строки обратно в основные файлы Woocommerce не является хорошей идеей, так как она будет перезаписана при обновлении платформы.

Я знаю, что лучшим способом было бы создать функцию и подключиться к отмененному действию заказа через функции.php, но после того, как я посмотрю, я немного потерялся о том, как это сделать. Вот строка, которая была заменена:

add_action( 'woocommerce_order_status_pending_to_cancelled_notification', array( $this, 'trigger' ), 10, 2 ); 

Как восстановить эту старую автоматическую функциональность?

Solutions Collecting From Web of "Отправлять уведомление по электронной почте при изменении статуса заказа от ожидающего до отмены"

Хорошее новое: используя woocommerce_order_status_pending_to_cancelled action hook с настраиваемой функцией в нем, решите свою проблему окончательно:

 add_action('woocommerce_order_status_pending_to_cancelled', 'cancelled_send_an_email_notification', 10, 2 ); function cancelled_send_an_email_notification( $order_id, $order ){ // Getting all WC_emails objects $email_notifications = WC()->mailer()->get_emails(); // Sending the email $email_notifications['WC_Email_Cancelled_Order']->trigger( $order_id ); } 

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Протестировано и отлично работает в WooCommerce 3+ (и 3.1+)

Я не могу комментировать из-за меньшей репутации, поэтому я добавляю эту информацию здесь для дальнейшего использования.

Начиная с версии 3.0.9 эта проблема была исправлена Woocommerce, где уведомление отправляется администратору. Ссылка

 * Fix - Updated `woocommerce_email_actions` to send email when order status changes from processing to cancelled. 

Вам больше не нужен этот код.