wp_mail

Позволяет изменить аргументы функции wp_mail()
Хук WordPress
INT 2.2.0
WordPress Icon

Описание хука

Хук «wp_mail» позволяет изменить аргументы функции wp_mail().

Функция wp_mail() используется для отправки электронных писем. Хук «wp_mail» позволяет определить, какие аргументы будут переданы в функцию wp_mail() перед отправкой письма. Это позволяет разработчикам изменять получателей, тему, содержимое и другие параметры письма перед его отправкой.

Использование

apply_filters( 'wp_mail', array $args )

Функция apply_filters() используется для применения фильтра к хуку «wp_mail». Она принимает два параметра: название хука и массив аргументов функции wp_mail().

  • $args (array): Массив аргументов функции wp_mail().
  • to (string|string[]): Адрес(а) электронной почты получателя(ей) письма.
  • subject (string): Тема письма.
  • message (string): Содержимое письма.
  • headers (string|string[]): Дополнительные заголовки письма.
  • attachments (string|string[]): Пути к файлам, которые нужно прикрепить к письму.
<?php
/**
 * Отправка письма с помощью функции wp_mail().
 *
 * @param array $args {
 *     Массив аргументов функции wp_mail().
 *
 *     @type string|string[] $to          Адрес(а) электронной почты получателя(ей) письма.
 *     @type string          $subject     Тема письма.
 *     @type string          $message     Содержимое письма.
 *     @type string|string[] $headers     Дополнительные заголовки письма.
 *     @type string|string[] $attachments Пути к файлам, которые нужно прикрепить к письму.
 * }
 */
$args = array(
    'to' => 'recipient@example.com',
    'subject' => 'Пример письма',
    'message' => 'Привет, это пример письма!',
    'headers' => 'From: sender@example.com',
    'attachments' => '/path/to/file.pdf',
);
// Применяем фильтр к хуку "wp_mail"
$args = apply_filters( 'wp_mail', $args );
// Отправляем письмо
wp_mail( $args['to'], $args['subject'], $args['message'], $args['headers'], $args['attachments'] );
?>

В этом примере мы создаем массив аргументов $args для функции wp_mail(). Затем мы применяем фильтр к хуку «wp_mail» с помощью функции apply_filters(). Наконец, мы вызываем функцию wp_mail() с измененными аргументами.

Примеры использования

Применение фильтра к аргументам wp_mail


/**
 * Пример использования хука wp_mail для изменения аргументов
 *
 * @param array $args Массив аргументов wp_mail()
 * @return array Измененные аргументы wp_mail()
 */
function custom_wp_mail_args( $args ) {
    // Изменение адресата
    $args['to'] = 'newemail@example.com';
    // Изменение темы письма
    $args['subject'] = 'New Subject';
    // Изменение содержимого письма
    $args['message'] = 'New Message';
    return $args;
}
add_filter( 'wp_mail', 'custom_wp_mail_args' );

Изменение списка адресатов в wp_mail


/**
 * Пример использования хука wp_mail для изменения списка адресатов
 *
 * @param array $args Массив аргументов wp_mail()
 * @return array Измененные аргументы wp_mail()
 */
function custom_wp_mail_to( $args ) {
    // Изменение адресата
    $args['to'] = 'newemail@example.com';
    return $args;
}
add_filter( 'wp_mail', 'custom_wp_mail_to' );

Создание дополнительных заголовков в wp_mail


/**
 * Пример использования хука wp_mail для создания дополнительных заголовков
 *
 * @param array $args Массив аргументов wp_mail()
 * @return array Измененные аргументы wp_mail()
 */
function custom_wp_mail_headers( $args ) {
    // Добавление дополнительного заголовка
    $args['headers'] = 'X-Custom-Header: Custom Value';
    return $args;
}
add_filter( 'wp_mail', 'custom_wp_mail_headers' );

Прикрепление файлов к письму в wp_mail


/**
 * Пример использования хука wp_mail для прикрепления файлов
 *
 * @param array $args Массив аргументов wp_mail()
 * @return array Измененные аргументы wp_mail()
 */
function custom_wp_mail_attachments( $args ) {
    // Путь к файлу для прикрепления
    $file_path = '/path/to/file.pdf';
    // Прикрепление файла
    $args['attachments'] = $file_path;
    return $args;
}
add_filter( 'wp_mail', 'custom_wp_mail_attachments' );

Изменение содержимого письма в wp_mail


/**
 * Пример использования хука wp_mail для изменения содержимого письма
 *
 * @param array $args Массив аргументов wp_mail()
 * @return array Измененные аргументы wp_mail()
 */
function custom_wp_mail_message( $args ) {
    // Изменение содержимого письма
    $args['message'] = 'New Message';
    return $args;
}
add_filter( 'wp_mail', 'custom_wp_mail_message' );

Вопросы и ответы

Как добавить дополнительные заголовки в письмо?

Для добавления дополнительных заголовков в письмо, используйте хук wp_mail. В параметре $args передайте массив с аргументами функции wp_mail(), включая дополнительные заголовки.

Пример кода:


add_filter( 'wp_mail', 'add_custom_headers' );
function add_custom_headers( $args ) {
    $args['headers'] = 'X-Custom-Header: Custom Value';
    return $args;
}

Как отправить письмо на несколько адресов?

Для отправки письма на несколько адресов, в параметре $args передайте массив или список адресов электронной почты, разделенных запятыми, в параметре to функции wp_mail().

Пример кода:


add_filter( 'wp_mail', 'send_to_multiple_addresses' );
function send_to_multiple_addresses( $args ) {
    $args['to'] = array( 'email1@example.com', 'email2@example.com' );
    return $args;
}

Как добавить вложения к письму?

Для добавления вложений к письму, в параметре $args передайте массив или список путей к файлам, которые вы хотите прикрепить, в параметре attachments функции wp_mail().

Пример кода:


add_filter( 'wp_mail', 'add_attachments' );
function add_attachments( $args ) {
    $args['attachments'] = array( '/path/to/file1.pdf', '/path/to/file2.jpg' );
    return $args;
}

Как изменить содержимое письма перед отправкой?

Для изменения содержимого письма перед его отправкой, в параметре $args передайте измененное сообщение в параметре message функции wp_mail().

Пример кода:


add_filter( 'wp_mail', 'modify_message_content' );
function modify_message_content( $args ) {
    $args['message'] = 'Modified message content';
    return $args;
}

Как изменить тему письма перед отправкой?

Чтобы изменить тему письма перед его отправкой, можно использовать хук wp_mail. Этот хук позволяет изменить аргументы функции wp_mail(), включая тему письма.

Пример кода:


function change_email_subject( $args ) {
    $args['subject'] = 'Новая тема письма';
    return $args;
}
add_filter( 'wp_mail', 'change_email_subject' );

Как обработать ошибки при отправке письма?

Для обработки ошибок при отправке письма можно использовать хук wp_mail_failed. Этот хук вызывается, когда функция wp_mail() не смогла успешно отправить письмо.

Пример кода:


function handle_email_error( $wp_error ) {
    $error_message = $wp_error->get_error_message();
    // Обработка ошибки
}
add_action( 'wp_mail_failed', 'handle_email_error' );

Как добавить кастомную функциональность при отправке письма?

Для добавления кастомной функциональности при отправке письма можно использовать хук wp_mail. Этот хук позволяет изменить аргументы функции wp_mail() и добавить дополнительную функциональность.

Пример кода:


function add_custom_functionality( $args ) {
    // Кастомная функциональность
    return $args;
}
add_filter( 'wp_mail', 'add_custom_functionality' );

Как отключить отправку писем по определенным условиям?

Для отключения отправки писем по определенным условиям можно использовать хук wp_mail. Внутри функции-обработчика хука можно проверить условия и прервать отправку письма.

Пример кода:


function disable_email_sending( $args ) {
    if ( /* Условие */ ) {
        return false; // Прервать отправку письма
    }
    return $args;
}
add_filter( 'wp_mail', 'disable_email_sending' );

Хук wp_mail является мощным инструментом для изменения и расширения функциональности отправки писем в WordPress. С его помощью можно легко изменить тему письма, обработать ошибки, добавить кастомную функциональность или отключить отправку писем по определенным условиям. Используйте этот хук для создания более гибкого и настраиваемого процесса отправки писем в ваших проектах на WordPress.

Связанные элементы

  • Функция wp_mail(): отправляет электронное письмо.
  • Хук wp_mail_from: фильтрует адрес отправителя письма.
  • Хук wp_mail_from_name: фильтрует имя отправителя письма.
  • Хук wp_mail_content_type: фильтрует тип содержимого письма.
  • Хук wp_mail_charset: фильтрует кодировку письма.
Обсуждение