Итак, у меня есть небольшая проблема. У меня есть веб-сайт с пользовательскими статусами заказов и электронными письмами, которые должны отправляться с этими статусами. Когда я go к заказу в бэкэнде и использую выпадающий список, чтобы изменить статус заказа, эти электронные письма отправляются (у меня есть регистрация электронной почты, и они отображаются как отправленные, все хорошо).
Сейчас У меня есть пользовательское действие плагина, которое в зависимости от некоторых вещей, оно вручную обновляет статус заказа. Однако единственными электронными письмами, которые отправляются при оформлении заказа, являются новый заказ и счет клиента (как и ожидалось). Я не обновляю статус заказа во время оформления заказа, я жду, пока не отобразится страница показа заказа (подробности заказа), а затем перехватываю действие, чтобы фактически изменить статус заказа.
<?php
public function delayed_order_status_update($order) {
$opt = get_option('delayed_order_statuses',[]);
if ( !empty($opt) ) {
$new_opt = [];
foreach ( $opt as $up ) {
if ( $up[0] == $order->get_id() ) {
$order->update_status($up[1]);
} else {
$new_opt[] = $up;
}
}
$opt = $new_opt;
update_option('delayed_order_statuses',$opt);
}
}
Это приводит к правильной установке статуса, однако, никакое электронное письмо не вызвано. Как получить электронное письмо для запуска этого пользовательского статуса, без жесткого кодирования (почти невозможно, существует множество пользовательских статусов и пользовательских электронных писем, и все это настраивается заранее).
Любая помощь будет с благодарностью. Я ищу решение только для кода.
Best, Jason