【发布时间】: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