2014-10-17 96 views
1

基于特定地址发送电子邮件基本上,在woocommerce中,您可以选择输入多个电子邮件地址(以逗号分隔)发送已完成订单的人员,在WooCommerce - > Settings - >电子邮件 - >新订单。但是,我需要一种方法根据订购产品的客户的邮政编码发送给这些收件人中的一个。或者完全覆盖woocommerce处理这个问题的方式。Woocommerce - 需要根据邮编

我该如何配合负责此功能的功能才能发送给正确的收件人?基本上,是否有为此定义的钩子,或者插件是否存在这样的事情,或者我将不得不编辑核心WooCommerce文件?如果需要对核心文件进行编辑,是否有人能够指出我需要编辑哪些文件的正确方向?

回答

1

每封电子邮件都有一个筛选器,允许您调整该电子邮件的收件人。过滤器名称本质上是woocommerce_email_recipient_{$email_id}

因此,以下内容将过滤“new_order”电子邮件的“到”地址。

add_filter('new_order','so_26429482_add_recipient',20,2);

function so_26429482_add_recipient($email, $order) { 
    $additional_email = "[email protected]"; 
    if($order->shipping_postcode == "90210"){ 
     $email = explode(',', $email); 
     array_push($email, $additional_email); 
    } 
    return $email; 
} 

我不是条件逻辑一定100%,但我认为应该检查邮递区号,并随后发送到其他电子邮件地址。

+0

你从哪里得到电子邮件ID?为了使用这个数字? – 2014-10-17 22:27:28

+0

所有的电子邮件类都有一个id,可以在'includes/emails'文件夹中看到。 – helgatheviking 2014-10-19 10:04:04

+0

@helgatheviking,很好的答案!我希望你可能有一个我在这里发布的问题的建议:http://stackoverflow.com/questions/41216160/woocommerce-add-recipient-to-order-confirmation-email,这将允许我添加一个新的收件人管理员确认电子邮件根据客户选择的选项..感谢您的任何帮助,您能够提供。 – revive 2016-12-19 16:34:46