Я хотел бы добавить дополнительных получателей электронной почты в зависимости от почтового индекса клиента.У нас есть разные поставщики для разных провинций (например, 4614 - Поставщик 1, 3314 - Поставщик 2), и необходимо направлять заказы ответственным поставщикам.Для учета мы должны направить новые заказы в ответственный отдел (в настоящее время установлен в бэкэнде WooCommerce).
Я уже пытался использовать фильтр WooCommerce для получателя электронной почты, чтобы добавлять электронные письма на основе почтового индекса.Для этого я настроил два массива и попытался получить почтовый индекс доставки (или почтовый индекс биллинга) для использования в этой функции if.
Это код, который я пытался использовать на нашем сайте :
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 моей дочерней темы, но онне работает, как ожидалось.Я явно что-то упускаю, но понятия не имею, в чем может быть моя ошибка.К сожалению, у меня мало опыта работы с php, поэтому мое понимание этого вопроса ограничено.
Кто-нибудь знает способ реализации необходимой функции в WooCommerce или как заставить этот фрагмент кода работать?Что не так с моим кодом?
Помощь очень ценится!