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

时间:2019-01-16 10:43:33

标签: php wordpress woocommerce orders email-notifications

我想以编程方式触发新订单电子邮件,因此它看起来与标准的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 );

}); 

这部分起作用...我收到的电子邮件的主题行正确,但是电子邮件正文只是说...

You’ve received the following order from Dave Peterson:

如何启动电子邮件模板的其余部分?

2 个答案:

答案 0 :(得分:0)

您可以尝试在具有动态变量$flight = App\Flight::updateOrCreate( ['departure' => 'Oakland', 'destination' => 'San Diego'], ['price' => 99] ); 的任何挂钩函数中尝试使用以下内容:

$order_id

这通常会为当前订单ID触发“新订单Woocommerce”通知。

答案 1 :(得分:-1)

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

相关问题