Фильтр wp_mail_content_type
позволяет изменять тип содержимого (Content-Type) отправляемых писем с помощью функции wp_mail()
в WordPress. По умолчанию письма отправляются в формате text/plain
(т.е. простой текст), однако с помощью этого фильтра можно изменить формат на text/html
, чтобы отправлять HTML-сообщения.
Когда использовать wp_mail_content_type
Если вы хотите отправлять письма с HTML-разметкой, используя стандартную функцию wp_mail()
, то этот фильтр необходим, чтобы изменить тип содержимого на text/html
. Это позволит вам использовать HTML-теги для стилизации писем.
Пример использования wp_mail_content_type
Допустим, вы хотите отправлять HTML-письма. Вот как вы можете использовать фильтр:
// Изменяем тип контента письма на HTML
add_filter( 'wp_mail_content_type', 'set_html_mail_content_type' );
/**
* Функция для изменения типа контента письма.
*
* @return string Возвращает тип контента 'text/html'.
*/
function set_html_mail_content_type() {
return 'text/html';
}
// Отправка HTML-письма
$to = 'example@example.com';
$subject = 'Тестовое HTML письмо';
$message = '<h1>Заголовок письма</h1><p>Это сообщение в HTML формате.</p>';
$headers = array('From: Your Name <you@example.com>');
wp_mail( $to, $subject, $message, $headers );
// После отправки письма убираем фильтр, чтобы не затрагивать другие письма
remove_filter( 'wp_mail_content_type', 'set_html_mail_content_type' );
Пояснение:
- Фильтр
wp_mail_content_type
— через него устанавливаем тип контента наtext/html
. - Функция
set_html_mail_content_type
— возвращает строкуtext/html
, что позволяет функцииwp_mail()
отправлять письмо в HTML-формате. wp_mail()
— стандартная функция для отправки почты в WordPress.remove_filter
— важно снять фильтр после отправки письма, чтобы он не применялся ко всем последующим письмам.
Зачем снимать фильтр?
Фильтр действует глобально, поэтому, если не убрать его, он может повлиять на другие письма, отправляемые через wp_mail()
. Например, если где-то на сайте отправляются простые текстовые письма, они тоже начнут отправляться в HTML-формате, что может быть нежелательно.