Как создать настройку автоматической отправки email из WPForms в WordPress

WPForms — один из самых популярных плагинов для создания форм в WordPress. Часто возникает задача настроить автоматическую отправку email по определённым условиям, например, при заполнении формы или при определённых значениях в полях. В этой статье мы подробно разберём, как сделать гибкую настройку автоматической отправки email с помощью WPForms, дополним примером кода для расширенных сценариев.

Основные настройки email в WPForms

WPForms из коробки поддерживает отправку уведомлений на email при отправке формы. Для настройки перейдите в редактор формы, откройте вкладку "Настройки" → "Уведомления". Здесь можно указать email получателя, тему письма, тело и дополнительные параметры.

Однако стандартных настроек может не хватать, если нужно, например, отправлять письма только при выполнении определённых условий, менять получателя динамически или интегрировать отправку с внешними сервисами.

Для таких случаев понадобится немного доработать функционал, используя хуки WPForms.

Использование хука wpforms_process_complete для расширенной обработки

Хук wpforms_process_complete срабатывает после успешной отправки формы. С его помощью можно получить данные формы, проверить условия и отправить email программно.

Рассмотрим пример кода, который отправляет письмо, только если в поле "Тип запроса" выбрано значение "Техническая поддержка".

add_action('wpforms_process_complete', 'wpdevelop_send_custom_email', 10, 4);
function wpdevelop_send_custom_email($fields, $entry, $form_data, $entry_id) {
    // ID формы, для которой применяем логику
    $target_form_id = 123;
    if ($form_data['id'] != $target_form_id) {
        return;
    }

    // Предположим, поле с типом запроса имеет ID 4
    $request_type = isset($fields[4]) ? $fields[4]['value'] : '';

    if ($request_type === 'Техническая поддержка') {
        $to = 'support@wpdevelop.ru';
        $subject = 'Новый запрос технической поддержки';
        $message = "Поступил новый запрос с формы.\n\n";
        foreach ($fields as $field) {
            $message .= $field['name'] . ': ' . $field['value'] . "\n";
        }

        wp_mail($to, $subject, $message);
    }
}

Такой подход позволяет полностью контролировать процесс отправки email и расширять логику по необходимости.

Динамическая смена получателя письма в WPForms

Иногда требуется отправлять уведомления разным отделам в зависимости от выбранного значения в форме. Например, если пользователь выбрал "Продажи" — письмо идёт в отдел продаж, если "Поддержка" — в техподдержку.

Для этого удобно использовать фильтр wpforms_email_headers или вышеописанный хук с программной отправкой.

Пример с изменением заголовков email:

add_filter('wpforms_email_headers', 'wpdevelop_change_email_recipient', 10, 3);
function wpdevelop_change_email_recipient($headers, $email, $form_data) {
    $target_form_id = 123;
    if ($form_data['id'] != $target_form_id) {
        return $headers;
    }

    // Получаем данные из POST напрямую (или можно передавать через глобальные)
    $request_type = isset($_POST['wpforms']['fields'][4]) ? sanitize_text_field($_POST['wpforms']['fields'][4]) : '';

    $to = '';
    switch ($request_type) {
        case 'Продажи':
            $to = 'sales@wpdevelop.ru';
            break;
        case 'Поддержка':
            $to = 'support@wpdevelop.ru';
            break;
        default:
            $to = 'info@wpdevelop.ru';
    }

    if ($to) {
        // Заменяем заголовок To
        $headers = "To: " . $to . "\r\n";
    }

    return $headers;
}

Этот фильтр перехватывает заголовки email и меняет получателя в зависимости от выбранного значения.

Интеграция с плагином Clearfy Pro для оптимизации отправки

Если вы используете Clearfy Pro для оптимизации сайта, убедитесь, что в настройках оптимизации не отключена функция отправки почты WordPress, иначе письма с WPForms не будут уходить.

Clearfy Pro позволяет управлять разными аспектами безопасности и производительности, но важно тестировать отправку email после изменений.

Отладка и тестирование отправки email в WPForms

Для отладки отправки писем можно использовать плагин WP Mail SMTP — он помогает проверять работу почтовой функции и логировать отправленные письма.

Также в коде можно добавить логирование через error_log() для отслеживания значений и ошибок.

Например:

error_log('Отправка email с типом запроса: ' . $request_type);

Заключение

Настройка автоматической отправки email из WPForms — задача, которая часто выходит за рамки стандартных настроек плагина. Использование хуков и фильтров WordPress позволяет гибко управлять процессом, реализовывать сложные сценарии и интегрировать отправку с другими сервисами.

В статье рассмотрен пример отправки email по условию, смены получателя и советы по отладке. Для расширения функционала рекомендуем изучать документацию WPForms и использовать проверенные плагины, такие как Clearfy Pro и WP Mail SMTP.

Как создать автоматический отчет по ошибкам в WordPress
07.04.2026
Как создать настройку автоматической отправки email из WPForms в WordPress
25.01.2026
Как создать собственный шорткод в WordPress
06.11.2025
Как удалить метаданные из изображений в WordPress без плагинов
09.12.2025
Удаление CSS и JS из отдельных страниц WordPress для ускорения загрузки
10.02.2026