- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用 Woocommerce,实际上我只收到一封电子邮件的订单通知。我想根据客户位置在 2 封不同的电子邮件中接收有关订单的通知:
Mail #1 (mail1@mail.com)
接收电子邮件通知,Mail #2 (mail2@mail.com)
接收电子邮件通知. 我在网上寻找一些函数,但我只找到了发送到两个电子邮件地址的函数,但没有任何 If 条件。
我需要的是这样的东西:
if ($user->city == 'Germany') $email->send('mail1@mail.com')
else $email->send('mail2@mail.com')
我可以使用哪个钩子(Hook)来让它工作?
谢谢。
最佳答案
您可以使用 Hook 在 woocommerce_email_recipient_{$this->id}
过滤器 Hook 中的自定义函数,针对 'New Order' 电子邮件通知,这样:
add_filter( 'woocommerce_email_recipient_new_order', 'diff_recipients_email_notifications', 10, 2 );
function diff_recipients_email_notifications( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;
// Set HERE your email adresses
$email_zone1 = 'name1@domain.com';
$email_zone_others = 'name2@domain.com';
// Set here your targeted country code for Zone 1
$country_zone1 = 'GE'; // Germany country code here
// User Country (We get the billing country if shipping country is not available)
$user_country = $order->shipping_country;
if(empty($user_shipping_country))
$user_country = $order->billing_country;
// Conditionaly send additional email based on billing customer city
if ( $country_zone1 == $user_country )
$recipient = $email_zone1;
else
$recipient = $email_zone_others;
return $recipient;
}
For WooCommerce 3+, some new methods are required and available from
WC_Order
class concerning billing country and shipping country:get_billing_country()
andget_shipping_country()
…
Usage with $order instance object:$order->get_billing_country(); // instead of $order->billing_country;
$order->get_shipping_country(); // instead of $order->shipping_country;
代码进入您活跃的子主题(或主题)的 function.php 文件或任何插件文件。
代码已经过测试并且可以工作。
相关回答:
关于php - WooCommerce 电子邮件通知 : different email recipient for different cities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940348/
我一直在尝试在我的 MEAN 应用程序上设置和使用 nodemailer。这是 mail.js ...我用于我的 server.js 文件的路由。 'use strict'; const expres
我假设错误是我的后缀配置问题。我已按照说明中的步骤进行操作 here设置 apache/postfix/mailman。 用 mydomain.com 替换的真实域我创建了一个名为 mailman 的
升级到 Angular 2 Rc.5 后出现此错误。这是我的组件模板: 我的 app.module.ts 导入了 FormsModule 我还尝试在我的组件中声明 private recipien
我在 Google App Engine 上编写了一个应用程序,可以将电子邮件发送到一个地址。应用程序在测试期间达到了它的“通过电子邮件发送的收件人”配额限制。对于“已发送电子邮件的收件人”配额,是否
我有这个代码: 在我的表格(“电子邮件”)中,我有多个地址。(它们不是逗号分隔的。)我怎样才能将我的消息发送到所有这些地址? 最佳答案 while($row = mysql_fetch_array(
我几乎假设这是 JavaMail API 中的一个错误。 我正在执行 myMessage.reply(true) 来生成新消息。然而,尽管有传统的“回复所有人”理解,JavaMail 仍将我自己(第一
在 Symfony 文档中有这个条目: https://symfony.com/doc/current/mailer.html#email-addresses ...您可以将多个地址传递给每个方法:
这是我的第一个问题,所以我想保持简单。我对 Spring Framework 版本 4.1.8.RELEASE 中的 JavaMailSender 有问题。对于特定的 SMTP,它似乎不会将收件人添加
我正在尝试将电子邮件地址输入到撰写邮件窗口的收件人字段中。 我尝试获取收件人的地址属性,根据 VS,它应该给我电子邮件。 我收到的是一个看起来像这样的字符串: "/c=US/a=att/p=Micro
虽然有很多相同的问题,但没有一个解决方案对我有用。仅当有只有一个 收件人时才会发送邮件,否则会生成以下错误。此外,我只发送内部电子邮件,不发送外部电子邮件。 有什么想法吗? 代码: $to = 'on
注意:遗憾的是这不是 duplicate ,我已经尝试了那里提到的所有内容。 我试图用 Laravel/Swiftmailer 建立到我的邮件服务器的连接.我的 .env 的邮件部分如下所示: MAI
所以,当我尝试从我的网站使用 PHPmailer 发送邮件时,我刚刚收到此错误。 SMTP 错误:以下收件人失败:XXXX 我尝试设置 $mail->SMTPAuth = true;为 false 但
我正在使用 DocuSign 的 REST API 在嵌入式签名模式下创建信封。我在我的网站上对签名者进行身份验证,然后向 DocuSign 询问收件人 View 。用户可以签署文档,没关系。 我的问
所以我使用 Parse 来处理支持 Stripe 的应用程序。我们希望我们的用户能够兑现他们的应用积分,我们计划使用 Stripe 来处理这个问题。我已经能够在 Stripe 中成功创建客户,并将银行
我正在测试嵌入式签名,但遇到了以下错误: “您指定的收件人不是指定信封的有效收件人” 这适用于一个信封,但现在不适用于第二个。即使他们拥有完全相同的信息。 下面是 RequestStatus 的响应:
我有一个 Web 应用程序,它使用 SendGrid 的 X-SMTP 功能构建单个电子邮件,然后将其合并并转发到 X-SMTPAPI header 中指定的收件人列表。 此处的文档:http://s
在我们的应用程序中,发布者创建一条消息并将其发送到一个主题。 然后它需要等待,当所有主题的订阅者都确认消息时。 它不会出现,消息总线实现可以自动执行此操作。因此,我们倾向于让每个订阅者在完成后向客户发
我正在尝试根据本文档在 Win 7 机器上创建一个基本的 akka 集群: http://doc.akka.io/docs/akka/snapshot/scala/cluster-usage.html
我正在使用codeigniter。我测试过将电子邮件发送到错误的不存在的地址,例如t@t.com。 我的代码只是控制者的一种方法,例如: function test() { $this->em
有人可以告诉我如何向此代码添加“抄送收件人”吗? “致收件人”和代码均按预期工作。感谢您抽出时间。 Sub ForwardEmail(item As Outlook.MailItem) ' Dim o
我是一名优秀的程序员,十分优秀!