在Woocommerce中手动发送新订单电子邮件

问题描述 投票:0回答:2

我想以编程方式触发新的订单电子邮件,因此它看起来与标准的Woocommerce电子邮件模板相同。

我正在使用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 );

}); 

这部分工作...我收到了正确的主题行的电子邮件,但电子邮件正文说...

You’ve received the following order from Dave Peterson:

如何触发其余的电子邮件模板?

php wordpress woocommerce orders email-notifications
2个回答
0
投票

您可以在任何具有动态变量$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 );

这通常会触发当前订单ID的新订单Woocommerce通知。


-1
投票

您只需要一个订单对象来触发新订单电子邮件。 WC()->mailer()->emails['WC_Email_New_Order']->trigger( $order->get_id(), $order );

© www.soinside.com 2019 - 2024. All rights reserved.