Отправка нового электронного письма вручную в Woocommerce - PullRequest
0 голосов
/ 16 января 2019

Я хотел бы программно запустить новое письмо с заказом, чтобы оно выглядело так же, как и стандартный шаблон письма Woo Commerce.

Я использую класс WC_Email_New_Order, поэтому я могу выполнить настройку объекта заказа до того, какэлектронное письмо построено из него.

Здесь, в некотором тестовом коде, я сейчас запускаю его с помощью ловушки wp_head, только для целей тестирования.

add_action('wp_head', function() {
    include('wp-content/plugins/woocommerce/includes/emails/class-wc-email.php');
    include('wp-content/plugins/woocommerce/includes/emails/class-wc-email-new-order.php');

    $adminEmail = new WC_Email_New_Order();

    $id = 1564; // order
    $order = new WC_Order($id);

    $adminEmail->trigger( null, $order );

}); 

Это работает частично ... Iполучите письмо с правильной строкой темы, однако в тексте письма просто говорится ...

You’ve received the following order from Dave Peterson:

Как получить остальную часть шаблона письма для запуска?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Вам просто нужен объект заказа, чтобы вызвать новые электронные письма заказа WC()->mailer()->emails['WC_Email_New_Order']->trigger( $order->get_id(), $order );

0 голосов
/ 19 января 2019

Вы можете просто попробовать использовать следующее в любой перехваченной функции с динамической переменной $order_id:

// Get the WC_Email_New_Order object
$email_new_order = WC()->mailer()->get_emails()['WC_Email_New_Order'];

// Sending the new Order email notification for an $order_id (order ID)
$email_new_order->trigger( $order_id );

Обычно запускается уведомление о новом заказе Woocommerce для текущего идентификатора заказа.

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