Я хочу добавить дополнительный заголовок к исходящим письмам на моих сайтах, чтобы я мог легко определить, на какой сайт отправлено данное письмо. (Я установил стандартный функциональный плагин на все мои сайты, так что это достаточно просто сделать, и настройка моего почтового клиента для фильтрации и других действий с этим заголовком позволила бы сэкономить время.)
Я думал, что это будет простой вопрос подключения к wp_mail
функции, но, очевидно, это не так.
Сначала я попробовал это:
add_filter('wp_mail', 'ws_add_site_header');
function ws_add_site_header() {
return array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST));
}
Здесь мой массив имел приоритет над всем остальным, что изменяло настройки почты (скажем, Gravity Forms), поэтому электронные письма в формате HTML начали отображаться в виде чистого HTML, а не в хорошем формате. Имеет смысл, поскольку заголовок Content-type:, добавленный GF, был очищен. Но мой заголовок был добавлен в электронное письмо. Поскольку другие также зависят от получения красивых писем (я уверен, что все разработчики и конечные пользователи моих сайтов), это неприемлемо.
Затем один из моих коллег предложил направить мои вещи через wp_parse_args (), таким образом:
add_filter('wp_mail', 'ws_add_site_header');
function ws_add_site_header($args) {
$new_header = array('headers' => 'X-WU-Site: ' . parse_url(get_site_url(), PHP_URL_HOST));
return wp_parse_args($args, $new_header);
}
При этом создается впечатление, что моя функция не существует - мой заголовок не добавляется, но также не удаляются заголовки других пользователей и настройки почты.
Как правильно добавить заголовок к исходящему письму, не прибегая к каким-либо другим фильтрам, которые могут существовать?