Я пытаюсь подключиться к 'woocommerce_email_recipient_booking_confirmed', чтобы обновить / добавить в поле получателя. Ссылка ниже отлично работает для электронных писем WooCommerce по умолчанию (и их действий). Действие работает, если я вручную ввожу электронное письмо в рамках действия, но мне нужно, чтобы электронное письмо пришло из ввода клиента (через настраиваемое поле на странице продукта).
Я считаю, что это как-то связано с class-w c -email-booking-loaded. php. Когда я сравниваю его с class-w c -email-customer-completed-order. php
class-w c -email-booking-loaded. php
public function trigger( $booking_id )
class-w c -email-customer-completed-order. php
public function trigger( $order_id, $order = false )
Мой код (который я не изменил из ресурса ниже):
add_filter( 'woocommerce_email_recipient_booking_confirmed', 'additional_customer_email_recipient', 9999, 2 ); // Completed Order
function additional_customer_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient; // when I comment this out, an ajax error is thrown. This is why I believe the order object directly accessible yet.
$additional_recipients = array(); // Initializing…
foreach( $order->get_items() as $item_id => $item_data ){
$email = wc_get_order_item_meta( $item_id, 'Email Address', true );
if( ! in_array( $email, $additional_recipients ) && strpos( $recipient, $email ) === false )
$additional_recipients[] = $email;
}
$additional_recipients = implode( ',', $additional_recipients);
if( count($additional_recipients) > 0)
{
$recipient = ','.$additional_recipients;
}
return $recipient;
}
Отправьте заказ Woocommerce на адрес электронной почты, указанный на странице продукта