В принципе, в woocommerce у вас есть возможность вводить несколько адресов электронной почты (разделенных запятыми), кто отправляет заполненный заказ, в WooCommerce -> Настройки -> Электронная почта -> Новый заказ. Но мне нужен способ отправить только одному из этих получателей на основе почтового индекса клиента, который заказывает продукт. Или полностью перезапишите способ работы с Woocommerce.
Как я могу связать функцию, отвечающую за это, чтобы отправить правильному получателю? В принципе, существует ли для этого крючок, или плагин существует для чего-то подобного, или мне придется редактировать основные файлы WooCommerce? Если для основных файлов требуются изменения, может ли кто-нибудь указать мне в правильном направлении, какие файлы потребуются для редактирования?
В каждом электронном письме есть фильтр, который позволяет настроить получателей этого сообщения. Имя фильтра по существу woocommerce_email_recipient_{$email_id}
.
Таким образом, следующее будет фильтровать адреса «to» для электронной почты «new_order».
add_filter ('new_order', 'so_26429482_add_recipient', 20, 2);
function so_26429482_add_recipient( $email, $order ) { $additional_email = "somebody@somewhere.net"; if( $order->shipping_postcode == "90210" ){ $email = explode( ',', $email ); array_push( $email, $additional_email ); } return $email; }
Я не на 100% уверен в условной логике, но я думаю, что нужно проверить почтовый индекс доставки и впоследствии отправить на дополнительный адрес электронной почты.