Я хотел бы добавить дополнительных получателей электронной почты в зависимости от почтового индекса клиента. У нас есть разные поставщики для разных провинций (например, 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 .= ', [email protected]';
} elseif ( in_array( $user_zip_zone, $zip_zone2) ) {
$recipient .= ', [email protected]';
}
return $recipient;
}
Я попытался реализовать этот фрагмент в functions.php моей дочерней темы, но он не работает должным образом. Я явно что-то упускаю, но понятия не имею, в чем может быть моя ошибка. К сожалению, у меня мало опыта работы с php, поэтому мое понимание этого вопроса ограничено.
Кто-нибудь знает способ реализации необходимой функции в WooCommerce или как заставить этот фрагмент кода работать? Что не так с моим кодом?
Помощь очень ценится!
Я получил информацию, что этот код работает правильно. После получения этой информации я проверил настройки моего сервера, и там были некоторые неправильные настройки.
Код работает так, как и должно было быть! Спасибо за помощь!
Не стесняйтесь использовать мой код, возможно, кому-то еще нужно реализовать ту же функцию.
Других решений пока нет …