【问题标题】:WooCommerce: Add additional e-mail recipient (new order) depending on post-codeWooCommerce:根据邮政编码添加其他电子邮件收件人(新订单)
【发布时间】:2022-01-19 19:14:52
【问题描述】:

我想根据客户的邮政编码添加其他电子邮件收件人。我们在不同的省份有不同的供应商(例如 4614 - 供应商 1、3314 - 供应商 2),有必要将订单定向到负责的供应商。对于会计,我们需要将新订单定向到负责部门(当前设置在 WooCommerce 后端)。

我已经尝试使用 WooCommerce 过滤器为电子邮件收件人添加基于邮政编码的电子邮件。为此,我设置了两个数组并尝试获取运输邮政编码(或计费邮政编码)以在此 if 函数中使用。

这是我尝试在我们的website 上使用的代码:

add_filter( 'woocommerce_email_recipient_new_order', 'cond_recipients_email_notifications', 10, 2 );
function cond_recipients_email_notifications( $recipient, $order ) {

if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;

// TARGET-ZIP-CODE
$zip_zone1 = array( '4614', '4072', '4615', '4064', '4062', '4611' );
$zip_zone2 = array( '3314', '3353', '3313', '3312', '3350', '3322', '3354' );

// User ZIP-CODE 
$user_zip_zone =  $order->get_shipping_postcode();
if(empty($user_shipping_postcode))
    $user_zip_zone = $order->get_billing_postcode();

// ADD EMAIL IF ZIP-CODE MATCHES TARGET-ZIP-CODE
if ( in_array( $user_zip_zone, $zip_zone1)) {
            $recipient .= ', e-mail-supplier1@e-mail.at';
    } elseif ( in_array( $user_zip_zone, $zip_zone2) ) {
    $recipient .= ', e-mail-supplier2@e-mail.at';
    }

return $recipient;
}

我尝试在我的子主题的functions.php 中实现这个sn-p,但它没有按预期工作。我显然错过了一些东西,但我不知道我的错误可能是什么。不幸的是,我对 php 的经验很少,所以我对这件事的理解有限。

有人知道在 WooCommerce 中实现所需功能的方法或如何使这个 code-sn-p 工作吗?我的代码有什么问题?

非常感谢您的帮助!

【问题讨论】:

  • 首先这个功能正常工作只是在本地测试它,你可以添加else 声明并尝试一些测试电子邮件,这样你就可以 100% 确定这个功能在你的设置中工作.
  • 对不起!根据您的信息,此代码可以正常工作,我检查了服务器设置并且设置有误。现在一切正常!感谢您的帮助!

标签: php wordpress email woocommerce postal-code


【解决方案1】:

我得到了这段代码工作正常的信息。收到此信息后,我检查了我的服务器设置,发现有一些错误设置。

代码按预期工作!感谢您的帮助!

随意使用我的代码,也许其他人需要实现相同的功能。

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 2019-08-24
    • 2019-01-22
    • 2019-12-27
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多