是否可以根据WooCommerce中添加的订单备注触发外发电子邮件?
我们已经与库存控制系统(Mintsoft)集成,他们基本上通过订单备注向我们发送跟踪ID(所有这些都通过REST API链接)
我已经设法根据里面的文本挂钩了注释的内容,因为订单对象包含了你想要的所有东西 - 但是在通常的“完成”邮件发出时,它超出了范围,这意味着一个模板改变是不可能的。
我的想法是根据状态禁用自动电子邮件并尝试我自己的电子邮件,这有什么钩子吗?
如果你看看WC_Order
add_order_note()
method code,你会在里面看到两个可用的钩子,你可以使用第一个方便的钩子。
在下面的代码中,您拥有所有参数数据,订单Of,WC_Order对象以及发送电子邮件通知的方式:
add_filter( 'woocommerce_new_order_note_data', 'filter_woocommerce_new_order_note_data', 10, 2 );
function filter_woocommerce_new_order_note_data( $args, $args2 ) {
if( ! $args2['is_customer_note'] ){
// Get an instance of the WC_Order Object
$order = wc_get_order( $args2['order_id'] );
// Getting all WC_emails objects
$mailer = WC()->mailer()->get_emails();
// Send the "Completed" notification
$mailer['WC_Email_Customer_Completed_Order']->trigger( $args2['order_id'] );
}
return $args;
}
代码在您的活动子主题(或活动主题)的function.php文件中。经测试,它应该工作。
相关:Add the Shop Manager username to Woocommerce Admin Order notes