Отправлять заказ на конкретную почты в форме

В админ-панели у нас есть только одно поле с электронными письмами, куда мы хотим отправить заказ. У меня есть две почты [email protected], [email protected]. В форме оформления заказа у нас есть поле select и два option=>one, two.

По дефолту при отправке формы этот заказ отправляется на все почты.

Когда мы выбрали опцию one, заказ должен быть отправлен на[email protected], а опция two на [email protected].

Как я могу это сделать.

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: WP Punk

Для замены получателя вы можете использовать хук woocommerce_email_recipient_{email_id}. Как вы показали на скрине, то нужное письмо имеет id new_order. Потом получаете поля и делаете что вам надо. Примерно так:

function my_woocommerce_email_recipient_new_order( $recipient ) {
    // Add nonce
    $select = filter_input( INPUT_POST, 'your-select', SANITIZE_TEXT_FIELD );
    $email1 = filter_input( INPUT_POST, 'your-email1', SANITIZE_TEXT_FIELD );
    $email2 = filter_input( INPUT_POST, 'your-email2', SANITIZE_TEXT_FIELD );

    return 'option1' === $select ? $email1 : $email2;
}
add_filter( 'woocommerce_email_recipient_new_order', 'my_woocommerce_email_recipient_new_order' );
→ Ссылка