Пользовательский заголовок" ответить на " в WooCommerce New Order email notification


Я ищу, чтобы отфильтровать заголовки электронной почты новой формы заказа в woocommerce. Я пытаюсь заменить адрес электронной почты клиента на адрес электронной почты главного администратора сайта. Мы должны сделать это, потому что Gmail помечает новые заказы как спам, потому что адрес " от "не совпадает с адресом "ответ". Функция, приведенная ниже, работает частично:

add_filter( 'woocommerce_email_headers', 'woo_add_reply_to_wc_admin_new_order', 10, 3 );

function woo_add_reply_to_wc_admin_new_order( $headers = '', $id = '', $order ) {
if ( $id == 'new_order' ) {
    $reply_to_email = get_option( 'admin_email', '' );
    $headers .= "Reply-to: <$reply_to_email>rn";
}
return $headers;}

Эта функция добавляет адрес электронной почты администратора сайта, но не удаляет адрес электронной почты клиента.

У кого-нибудь есть какие-нибудь идеи на этот счет? как удалить сообщение электронной почты клиента из поля ответить? Примечание: нам все еще нужно иметь запись электронной почты клиента в заказе - мы просто не хотим, чтобы она была в заголовках электронной почты

Любая помощь была бы великолепна!

1 2

1 ответ:

Правильный способ заставить его работать:

add_filter( 'woocommerce_email_headers', 'new_order_reply_to_admin_header', 20, 3 );
function new_order_reply_to_admin_header( $header, $email_id, $order ) {

    if ( $email_id === 'new_order' ){
        $email = new WC_Email($email_id);
        $header = "Content-Type: " . $email->get_content_type() . "\r\n";
        $header .= 'Reply-to: ' . __('Administrator') . ' <' . get_option( 'admin_email' ) . ">\r\n";
    }
    return $header;
}

этот код продолжает функционировать.php-файл вашей активной дочерней темы (или темы). испытано и работает.