WooCommerce: обновление статуса заказа не отправляет электронные письма - PullRequest
0 голосов
/ 12 января 2020

Итак, у меня есть небольшая проблема. У меня есть веб-сайт с пользовательскими статусами заказов и электронными письмами, которые должны отправляться с этими статусами. Когда я 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...