Php 基于Woocommerce新订单通知的配送方式Id的电子邮件收件人
在Woocommerce中,我希望根据所选的配送方式ID向特定人员发送新订单电子邮件 现在,我只能将每个电子邮件地址添加到新订单电子邮件中,但最终希望根据客户选择的配送方式Id将电子邮件发送到一个特定的电子邮件中 这是我的邮政编码:Php 基于Woocommerce新订单通知的配送方式Id的电子邮件收件人,php,woocommerce,shipping,orders,email-notifications,Php,Woocommerce,Shipping,Orders,Email Notifications,在Woocommerce中,我希望根据所选的配送方式ID向特定人员发送新订单电子邮件 现在,我只能将每个电子邮件地址添加到新订单电子邮件中,但最终希望根据客户选择的配送方式Id将电子邮件发送到一个特定的电子邮件中 这是我的邮政编码: add_filter( 'new_order' , 'so_26429482_add_recipient', 20, 2 ); function so_26429482_add_recipient( $email, $order ) { $addition
add_filter( 'new_order' , 'so_26429482_add_recipient', 20, 2 );
function so_26429482_add_recipient( $email, $order ) {
$additional_email = "somebody@somewhere.net";
if( $order->shipping_postcode == "90210" ){
$email = explode( ',', $email );
array_push( $email, $additional_email );
}
return $email;
}
相反,我应该需要针对配送方法Id
我的两种发货方式ID是固定费率:8
和固定费率:9
有人知道怎么做吗?更新2-您的代码已经过时,因为
新订单
钩子不再退出
无法删除新订单电子邮件通知中的默认电子邮件集。但我们可以根据订单发货方式Id有条件地向新订单电子邮件通知添加其他电子邮件收件人:
add_filter( 'woocommerce_email_recipient_new_order', 'new_order_additional_recipients', 20, 2 );
function new_order_additional_recipients( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;
// Set Below your email adresses
$email1 = 'name1@domain.com';
$email2 = 'name2@domain.com';
// Get the shipping method Id
$shipping_items = $order->get_items('shipping');
$shipping_item = reset($shipping_items);
$shipping_method_id = $shipping_item->get_method_id() . ':';
$shipping_method_id .= $shipping_item->get_instance_id();
// Adding recipients conditionally
if ( 'flat_rate:8' == $shipping_method_id )
$recipient .= ',' . $email1;
elseif ( 'flat_rate:9' == $shipping_method_id )
$recipient .= ',' . $email2;
return $recipient;
}
代码进入活动子主题(或活动主题)的function.php文件。经过测试,效果良好。您好,欢迎光临!“有人知道怎么做吗?”可能,但请先分享你的想法,以便我们能提供帮助。区域名称为flat_rate:8和flat_rate:9,在你的示例中,我应该把它们放在哪里?对不起,这就是我的意思。运送方式是固定费率:8和固定费率:9。我在那一个上得到一个内部服务器错误。。。思想?