Как создать автоматические уведомления о обработке форм в WordPress

В этой статье мы разберём, как реализовать автоматические уведомления после отправки формы в WordPress. Такая функциональность необходима для информирования пользователя и администратора сайта о получении данных, а также для повышения удобства и контроля процесса обработки заявок.

Почему важны автоматические уведомления в формах WordPress

Формы — один из ключевых элементов взаимодействия с пользователями на сайте. Без уведомлений вы рискуете пропустить важные заявки или не подтвердить пользователю, что его сообщение принято. Автоматические уведомления позволяют:

  • Уведомлять администратора сайта о новой заявке
  • Подтверждать пользователю успешную отправку
  • Автоматизировать дальнейшую обработку данных (например, отправку PDF, ссылок, инструкций)

Реализовать их можно как с помощью плагинов, так и собственным кодом.

Использование популярных плагинов для уведомлений в формах

Contact Form 7 и расширение Flamingo

Contact Form 7 — один из самых популярных плагинов для создания форм. По умолчанию он поддерживает отправку email-уведомлений. Для сохранения заявок в базе и лучшего контроля рекомендуем использовать Flamingo.

Чтобы настроить уведомления в Contact Form 7:

  1. Перейдите в админке WordPress в раздел «Contact» → «Contact Forms»
  2. Выберите нужную форму и перейдите в настройки «Mail»
  3. Укажите email администратора в поле «To» и корректно заполните остальные поля
  4. Для подтверждения пользователю заполните «Mail (2)» — это письмо отправится отправителю формы

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

Gravity Forms

Gravity Forms имеет встроенную систему уведомлений с гибкими условиями. В настройках формы вы можете добавить любое число уведомлений, выбирать получателей, шаблоны сообщений и активировать логику на основе полей формы.

Пример кода для добавления кастомного уведомления после отправки:

add_action('gform_after_submission', 'wpboard_gf_custom_notification', 10, 2);
function wpboard_gf_custom_notification($entry, $form) {
    $email = rgar($entry, '2'); // поле email в форме
    $subject = 'Спасибо за вашу заявку';
    $message = 'Ваш запрос получен, мы свяжемся с вами в ближайшее время.';
    wp_mail($email, $subject, $message);
}

Создание собственного обработчика форм с уведомлениями

Пример простой формы и обработчика на PHP

Если не хотите использовать плагины, можно создать форму и обработать её самостоятельно через AJAX или POST-запрос.

HTML форма:

<form method="post" action="" id="wpboard-contact-form">
  <input type="text" name="wpboard_name" placeholder="Ваше имя" required>
  <input type="email" name="wpboard_email" placeholder="Email" required>
  <textarea name="wpboard_message" placeholder="Сообщение" required></textarea>
  <button type="submit">Отправить</button>
</form>

PHP код обработки (можно добавить в functions.php вашей темы или в плагин):

function wpboard_handle_form_submission() {
    if (!empty($_POST['wpboard_email']) && !empty($_POST['wpboard_message'])) {
        $name = sanitize_text_field($_POST['wpboard_name']);
        $email = sanitize_email($_POST['wpboard_email']);
        $message = sanitize_textarea_field($_POST['wpboard_message']);

        $admin_email = get_option('admin_email');
        $subject_admin = 'Новая заявка с сайта';
        $body_admin = "Имя: $name\nEmail: $email\nСообщение: $message";

        wp_mail($admin_email, $subject_admin, $body_admin);

        $subject_user = 'Спасибо за вашу заявку';
        $body_user = "Здравствуйте, $name!\n
Спасибо за обращение, мы свяжемся с вами в ближайшее время.";

        wp_mail($email, $subject_user, $body_user);

        wpboard_redirect_with_notice('Спасибо, ваша заявка отправлена!');
        exit;
    }
}
add_action('init', 'wpboard_handle_form_submission');

function wpboard_redirect_with_notice($message) {
    // Простейшая функция для вывода уведомления после редиректа
    if (!session_id()) {
        session_start();
    }
    $_SESSION['wpboard_notice'] = $message;
    wp_redirect($_SERVER['HTTP_REFERER']);
}

function wpboard_show_notice() {
    if (!session_id()) {
        session_start();
    }
    if (!empty($_SESSION['wpboard_notice'])) {
        echo '<div class="wpboard-notice">' . esc_html($_SESSION['wpboard_notice']) . '</div>';
        unset($_SESSION['wpboard_notice']);
    }
}
add_action('wp_footer', 'wpboard_show_notice');

Разбор кода

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

Рекомендации по улучшению уведомлений и безопасности

Чтобы уведомления работали стабильно и были защищены от спама, обратите внимание на следующие моменты:

  • Используйте nonce-поля для защиты от CSRF-атак
  • Добавляйте проверку reCAPTCHA или аналоги для борьбы со спамом
  • Сохраняйте заявки в базе или используйте плагины типа Flamingo для Contact Form 7
  • Проверьте настройки сервера и SMTP, чтобы письма не попадали в спам
  • Используйте сторонние сервисы рассылки, если требуется высокая надежность доставки

Для удобства работы с почтой в WordPress можно подключить плагин WP Mail SMTP – он поможет настроить отправку писем через SMTP-серверы, что повысит доставляемость.

Заключение

Автоматические уведомления о обработке форм — это обязательный элемент качественного сайта на WordPress. Выбор способа реализации зависит от задач и опыта: можно использовать готовые плагины с гибкими настройками или написать собственный код для максимальной кастомизации. Главное — обеспечить пользователю и администратору своевременную обратную связь и не забывать о безопасности и надежности отправки писем.

Как удалить плагин без ошибок в WordPress
20.11.2025
Как создать динамические таблицы в WordPress с помощью шорткода
11.01.2026
Как отключить загрузку Google Fonts в WordPress для ускорения сайта
20.12.2025
Как удалить заказы WooCommerce по статусу и датам через код
07.05.2026
Автоматическое удаление старого контента в WordPress: практическое руководство
30.01.2026