В ловушке фильтра woocommerce_email_recipient_{$this->id}
вы можете использовать аргумент $order
, чтобы получить второе электронное письмо.
Но сначала давайте добавим глобально поле электронной почты с помощью плагина Product Add-ons ...
- Поле add на продукте (заполните поле и добавьте в корзину):
- Это поле «Электронная почта» на странице полученного заказа (Спасибо) после оформления заказа:
Как вы могли заметить, это поле называется «Электронная почта»…
Теперь, если я загляну в базу данных в wp_woocommerce_order_itemmeta
для этого порядка, я могу увидеть meta_key "Email"
meta_value "[email protected]"
:
Теперь я могу установить правильный meta_key
в приведенном ниже коде, чтобы получить свою электронную почту.
Вот код, который добавит этого дополнительного получателя электронной почты для обработки и заполнения уведомлений по электронной почте о заказе клиента:
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'additional_customer_email_recipient', 10, 2 ); // Processing Order
add_filter( 'woocommerce_email_recipient_customer_processing_order', 'additional_customer_email_recipient', 10, 2 ); // Completed Order
function additional_customer_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;
$additional_recipients = array(); // Initializing…
// Iterating though each order item
foreach( $order->get_items() as $item_id => $item_data ){
// HERE set the the correct meta_key (like 'Email') to get the correct value
$email = wc_get_order_item_meta( $item_id, 'Email', true );
// Avoiding duplicates (if many items with many emails)
// or an existing email in the recipient
if( ! in_array( $email, $additional_recipients ) && strpos( $recipient, $email ) === false )
$additional_recipients[] = $email;
}
// Convert the array in a coma separated string
$additional_recipients = implode( ',', $additional_recipients);
// If an additional recipient exist, we add it
if( count($additional_recipients) > 0)
$recipient .= ','.$additional_recipients;
return $recipient;
}
Код находится в файле function.php вашей активной дочерней темы (или темы) или также в любом файле плагина.
Проверено и работает.
person
LoicTheAztec
schedule
02.11.2017