WooCommerce 产品供应商:向供应商发送收到新订单的通知
WooCommerce Product Vendors: Send notification to vendor for new order received
我正在使用 WooCommerce Product Vendors 插件进行供应商管理。
目前,当收到新订单时,通知会发送给客户和管理员。管理员将订单状态更改为 Processing 或 Completed 后,电子邮件将发送给供应商。
但是我需要在收到订单时发送通知邮件。
是否可以通过在 functions.php
中创建过滤器或者在收到订单时触发产品状态更改通知来实现?
已更新:添加了“新预订”电子邮件通知 ID…
有很多方法可以实现。 这里我有两个:
1).第一个,基于电子邮件 ID“新订单”。它已经过测试并有效:
add_action ('woocommerce_email_customer_details', 'new_order_email_to_vendor', 20, 4 );
function new_order_email_to_vendor( $order, $sent_to_admin, $plain_text, $email ){
if( in_array( $email->id, ['new_order', 'new_booking'] ) ){
$mailer['WC_Product_Vendors_Order_Email_To_Vendor']->trigger( $order );
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
2).这是未经测试的,因为它基于订单状态更改条件。您可以在 if 语句中设置“从”订单状态或一些“到”订单状态或两者...
这里我只使用“来自”'pending' 订单状态,因为在 Woocommerce 的支付过程中所有订单总是设置为待处理状态:
add_action( 'woocommerce_order_status_changed', 'new_order_email_to_vendor', 10, 4 );
function new_order_email_to_vendor( $order_id, $old_status, $new_status, $order ){
if ( in_array( $new_status, array( 'processing','completed') ) { // <== Updated
$emails = WC()->mailer()->get_emails();
$emails['WC_Product_Vendors_Order_Email_To_Vendor']->trigger( $order );
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
我正在使用 WooCommerce Product Vendors 插件进行供应商管理。
目前,当收到新订单时,通知会发送给客户和管理员。管理员将订单状态更改为 Processing 或 Completed 后,电子邮件将发送给供应商。
但是我需要在收到订单时发送通知邮件。
是否可以通过在 functions.php
中创建过滤器或者在收到订单时触发产品状态更改通知来实现?
已更新:添加了“新预订”电子邮件通知 ID…
有很多方法可以实现。 这里我有两个:
1).第一个,基于电子邮件 ID“新订单”。它已经过测试并有效:
add_action ('woocommerce_email_customer_details', 'new_order_email_to_vendor', 20, 4 );
function new_order_email_to_vendor( $order, $sent_to_admin, $plain_text, $email ){
if( in_array( $email->id, ['new_order', 'new_booking'] ) ){
$mailer['WC_Product_Vendors_Order_Email_To_Vendor']->trigger( $order );
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
2).这是未经测试的,因为它基于订单状态更改条件。您可以在 if 语句中设置“从”订单状态或一些“到”订单状态或两者...
这里我只使用“来自”'pending' 订单状态,因为在 Woocommerce 的支付过程中所有订单总是设置为待处理状态:
add_action( 'woocommerce_order_status_changed', 'new_order_email_to_vendor', 10, 4 );
function new_order_email_to_vendor( $order_id, $old_status, $new_status, $order ){
if ( in_array( $new_status, array( 'processing','completed') ) { // <== Updated
$emails = WC()->mailer()->get_emails();
$emails['WC_Product_Vendors_Order_Email_To_Vendor']->trigger( $order );
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。