События DOM Contact Form 7

Для настройки целей в различных сервисах полезно знать как «отловить» действия пользователя при отправке электронных писем через Contact Form 7

Список пользовательских событий DOM Contact Form 7

  • wpcf7invalid — Срабатывает, когда отправка формы Ajax завершилась успешно, но письмо не было отправлено, потому что есть поля с недопустимым вводом.
  • wpcf7spam — Срабатывает, когда отправка формы Ajax завершилась успешно, но почта не была отправлена, поскольку была обнаружена возможная активность спама.
  • wpcf7mailsent — Срабатывает, когда отправка формы Ajax успешно завершена и письмо отправлено.
  • wpcf7mailfailed — Срабатывает, когда отправка формы Ajax завершилась успешно, но не удалось отправить почту.
  • wpcf7submit — Срабатывает, когда отправка формы Ajax завершилась успешно, независимо от других инцидентов.

Обработчик событий кодирования

Приведенный ниже код представляет собой простой пример регистрации обработчика событий. В этом примере функция прослушивает wpcf7submitсобытие и просто выдает предупреждение, когда событие происходит.

1
2
3
4
5
var wpcf7Elm = document.querySelector( '.wpcf7' );
wpcf7Elm.addEventListener( 'wpcf7submit', function( event ) {
  alert( "Fire!" );
}, false );

Как вы видите в примере, вы используете addEventListener()для регистрации функцию обработчика событий. Имейте в виду, что целью события ( wpcf7Elmв примере) является не formэлемент, а его родительский divэлемент, имеющий wpcf7класс.

Поскольку все wpcf7*события всплывают через дерево DOM к корню документа, если вам не нужно устанавливать конкретную цель события, вы можете упростить ее, установив documentсвойство в качестве цели события:

1
2
3
document.addEventListener( 'wpcf7submit', function( event ) {
  alert( "Fire!" );
}, false );

Данные, вводимые пользователем через целевую контактную форму, передаются обработчику события как detail.inputsсвойство объекта события. Структура данных detail.inputsявляется массивом объектов, и каждый объект имеет nameи valueсвойство.

Это пример доступа к введенному пользователем значению через поле «ваше имя»:

1
2
3
4
5
6
7
8
9
10
document.addEventListener( 'wpcf7submit', function( event ) {
  var inputs = event.detail.inputs;
  for ( var i = 0; i < inputs.length; i++ ) {
    if ( 'your-name' == inputs[i].name ) {
      alert( inputs[i].value );
      break;
    }
  }
}, false );

Есть также другие свойства объекта события, которые вы можете использовать в своем обработчике событий.

ИМУЩЕСТВО ОПИСАНИЕ
detail.contactFormId ID контактной формы.
detail.pluginVersion Версия плагина Contact Form 7.
detail.contactFormLocale Код языка контактной формы.
detail.unitTag Единичный тег контактной формы.
detail.containerPostId Идентификатор сообщения, в котором размещена контактная форма.

Например, если вы хотите сделать что-то только с определенной контактной формой (ID = 123), используйте detail.contactFormIdсвойство, как показано ниже:

1
2
3
4
5
6
document.addEventListener( 'wpcf7submit', function( event ) {
  if ( '123' == event.detail.contactFormId ) {
    alert( "The contact form ID is 123." );
    // do something productive
  }
}, false );

источник