WooCommerce电子邮件通知:不同城市的不同电子邮件收件人



我使用Woocommerce,实际上我只收到一封电子邮件的订单通知。我希望根据客户位置在 2 个不同的电子邮件中接收有关订单的通知:

  • 对于来自区域 1(德国)的客户,我希望在 Mail #1 (mail1@mail.com) 收到
    电子邮件通知,
  • 对于所有其他区域,如区域 2(墨西哥),我希望在 Mail #2 (mail2@mail.com) 收到
    电子邮件通知。

我在网上寻找一些功能,但我只找到发送到两个电子邮件地址的功能,但没有任何 If 条件。

我需要的是这样的东西:

if ($user->city == 'Germany') $email->send('mail1@mail.com')
else $email->send('mail2@mail.com')

我可以使用哪个钩子来让它工作?

谢谢。

您可以使用挂钩

woocommerce_email_recipient_{$this->id}过滤器挂钩的自定义函数,以"新订单"电子邮件通知为目标,如下所示:

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;
}

对于WooCommerce 3+,需要一些新方法,并且可以从WC_Order有关计费国家/地区和运输国家/地区的课程中获得: get_billing_country()get_shipping_country() ...
实例对象的用法$order

$order->get_billing_country(); // instead of $order->billing_country;
$order->get_shipping_country(); // instead of $order->shipping_country;

代码进入函数.php活动子主题(或主题)的文件或任何插件文件中。

代码经过测试并正常工作。


相关答案:

  • 如何在钩子woocommerce_email_headers获取订单 ID
  • 向管理员发送暂停订单状态电子邮件通知

相关内容

  • 没有找到相关文章

最新更新