我想以编程方式触发新订单电子邮件,因此它看起来与标准的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:
如何启动电子邮件模板的其余部分?
答案 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 );