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

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

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

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

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

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

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

Как я могу восстановить эту старую автоматизированную функцию?


person Adam Norris    schedule 17.08.2017    source источник


Ответы (1)


Новое хорошее: использование woocommerce_order_status_pending_to_cancelled обработчик действий с настраиваемой функцией, решите вашу проблему окончательно:

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+ (все еще работает в версии 4.8+)

person LoicTheAztec    schedule 17.08.2017
comment
он работает до настоящего времени с woocommerce v 4.8.0. Спасибо! - person noobnicks; 10.01.2021