Contact Form 7: отмена отправки и подтверждение через popup окно

Contact Form 7 — один из самых популярных плагинов для создания форм обратной связи в WordPress. Однако иногда возникает задача не только отправлять форму, но и давать пользователю возможность отменить отправку, а также показывать подтверждающее окно (popup) вместо стандартного сообщения. В этой статье мы подробно разберём, как реализовать отмену отправки, а также выводить кастомное всплывающее окно подтверждения, используя Contact Form 7 и дополнительные скрипты.

Почему стандартная отправка Contact Form 7 не всегда удобна

По умолчанию Contact Form 7 при отправке формы показывает сообщение об успешной отправке или ошибке прямо под формой. Это бывает достаточно, но не всегда удобно с точки зрения пользовательского опыта. Например, если форма используется для важных заявок, пользователю может быть полезно увидеть всплывающее окно с возможностью подтвердить отправку или отменить её.

Кроме того, иногда пользователю нужно дать опцию отмены отправки после нажатия кнопки, что стандартными средствами Contact Form 7 реализовать сложно.

Реализация этих функций требует вмешательства в JavaScript-логику плагина и интеграции с внешними скриптами popup.

Отмена отправки формы Contact Form 7: практическое решение

Contact Form 7 использует событие wpcf7submit, которое срабатывает после отправки формы. Для отмены отправки нам нужно перехватить момент перед отправкой, а точнее — блокировать стандартное поведение кнопки submit и показать пользователю окно подтверждения.

Перехват события клика по кнопке отправки

Добавим кастомный JavaScript код, который будет блокировать отправку формы и показывать popup с вопросом «Вы точно хотите отправить форму?».

document.addEventListener('DOMContentLoaded', function() {
  const forms = document.querySelectorAll('.wpcf7 form');
  forms.forEach(function(form) {
    form.addEventListener('submit', function(event) {
      event.preventDefault(); // отменяем стандартную отправку

      // показываем окно подтверждения
      if (window.confirm('Вы точно хотите отправить форму?')) {
        // если пользователь подтвердил - отправляем форму программно
        document.querySelector('.wpcf7 form').removeEventListener('submit', arguments.callee);
        form.submit();
      } else {
        // если отменил - просто ничего не делаем
      }
    });
  });
});

Этот скрипт добавляет базовое JavaScript-подтверждение. Однако для более красивых и удобных popup лучше использовать библиотеки, например, SweetAlert2.

Использование SweetAlert2 для подтверждения отправки

Первым шагом подключите SweetAlert2 к вашему сайту, добавив в header темы или через плагин:

<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>

Далее заменим стандартный confirm на SweetAlert2:

document.addEventListener('DOMContentLoaded', function() {
  const forms = document.querySelectorAll('.wpcf7 form');
  forms.forEach(function(form) {
    form.addEventListener('submit', function(event) {
      event.preventDefault();
      Swal.fire({
        title: 'Подтвердите отправку',
        text: 'Вы точно хотите отправить форму?',
        icon: 'question',
        showCancelButton: true,
        confirmButtonText: 'Отправить',
        cancelButtonText: 'Отмена'
      }).then((result) => {
        if (result.isConfirmed) {
          form.submit();
        }
      });
    });
  });
});

Так пользователь увидит стильное всплывающее окно и сможет подтвердить или отменить отправку.

Вывод кастомного popup после успешной отправки формы

Contact Form 7 генерирует событие wpcf7mailsent после успешной отправки. Можно использовать его для показа кастомного popup с благодарностью или дальнейшими инструкциями.

Пример показа popup с использованием SweetAlert2

document.addEventListener('wpcf7mailsent', function(event) {
  Swal.fire({
    title: 'Спасибо!',
    text: 'Ваша заявка успешно отправлена. Мы свяжемся с вами в ближайшее время.',
    icon: 'success',
    confirmButtonText: 'Закрыть'
  });
}, false);

Добавьте этот код после подключения SweetAlert2, и после успешной отправки формы пользователь увидит красивое окно подтверждения.

Альтернатива: плагин Popup Maker

Если вы предпочитаете работать с плагинами, можно использовать Popup Maker.

  • Создайте новый popup с вашим сообщением.
  • С помощью JavaScript откройте popup при событии wpcf7mailsent:
document.addEventListener('wpcf7mailsent', function(event) {
  PUM.open(1234); // 1234 - ID вашего popup
});

Так вы получите более гибкое управление содержимым и стилем всплывающих окон.

Обработка ошибок и отмена отправки: советы и хитрости

При реализации отмены и подтверждений важно не нарушить логику валидации и отправки формы Contact Form 7.

Рекомендуется:

  • Всегда использовать event.preventDefault() в обработчике отправки, чтобы полностью контролировать процесс.
  • Не забывать снимать обработчик события при программном вызове form.submit(), чтобы не возникала рекурсия.
  • Проверять совместимость с другими плагинами и темой, чтобы избежать конфликтов JavaScript.
  • Тестировать на разных браузерах и мобильных устройствах.

Пример полноценной функции с префиксом contactform7ru_

function contactform7ru_initConfirmation() {
  const forms = document.querySelectorAll('.wpcf7 form');
  forms.forEach(function(form) {
    function onSubmit(event) {
      event.preventDefault();
      Swal.fire({
        title: 'Подтверждение',
        text: 'Вы хотите отправить форму?',
        icon: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Да',
        cancelButtonText: 'Нет'
      }).then((result) => {
        if (result.isConfirmed) {
          form.removeEventListener('submit', onSubmit);
          form.submit();
        }
      });
    }
    form.addEventListener('submit', onSubmit);
  });
}

document.addEventListener('DOMContentLoaded', contactform7ru_initConfirmation);

Этот подход позволяет централизованно и удобно управлять подтверждением отправки.

Итог

Реализация отмены отправки формы и вывода кастомного подтверждающего popup значительно улучшает UX и повышает доверие пользователей. Используя события Contact Form 7 и современные библиотеки для popup, вы можете без труда внедрить эти функции на сайте.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Contact Form 7: как создать многоступенчатую форму в WordPress
27.12.2025
Contact Form 7 авторизация пользователя через форму в WordPress
17.02.2026
Contact Form 7: как автоматически отправлять файлы из формы в Google Drive
24.01.2026
Contact Form 7 и отправка данных в CRM систему: практическое руководство с кодом
14.01.2026
Contact Form 7 и Magento: способы интеграции и обмена данными
02.01.2026
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙