Наблюдаем за Contact Form 7 в WordPress из metrika.yandex

С нового 2018 года ContactForm7 прекратило поддержку команд on_sent_ok и on_submit в дополнительных настройках, и старые и лаконичные правила работы с метриками перестали поддерживаться:

on_sent_ok: "yaCounterXXXXXX.reachGoal('myForm');"

Теперь же разработчики CF7 предлагают использовать DOM events

Пример DOM Events:

 
wpcf7mailsent — успешная отправка формы; 
wpcf7invalid — имеются поля с недопустимыми данными; 
wpcf7spam — подозрение на спам; 
wpcf7mailfailed — проблема с доставкой; 
wpcf7submit — передача формы без проверок. 

И функция отправки данных для метрики будет выглядеть так:

document.addEventListener( 'wpcf7mailsent', function( event ) {
  yaCounterXXXXXX.reachGoal('myForm');
}, ;false );

Это все справедливо, если у Вас только одна форма, а если их 5?

5 форм ContactForm7

Пример для не ограниченного количества форм.

Тогда в файл function.php, например в конце файла перед закрывающим тегом

?>

вставляем код:

add_action( 'wp_footer', 'cf7_reachGoal_metrika' );

function cf7_reachGoal_metrika() {
?>
<script type="text/javascript">

function reachGoalMetrics(goal){
  try{yaCounterXXXXXXXX.reachGoal(goal);} catch(e){}
  try{ga('send', 'event', goal);} catch(e){}
}

document.addEventListener('wpcf7mailsent',function( event ) {

  var formID = (event.detail.contactFormId != "")? event.detail.contactFormId : false;

  if(formID != false){

    switch(formID){
      case '5057':reachGoalMetrics("myForm1");break;
      case '4497':reachGoalMetrics("myForm2");break;
      case '785':reachGoalMetrics("myForm3");break;
      case '4498':reachGoalMetrics("myForm4");break;
      case '2864':reachGoalMetrics("myForm5");break;
      default: break;
    }
  }

}, false );

</script>

<?php
}

Ну и не забываем внести в Яндекс метрику новую цель:
Yandex metrika ContactForm7

Что же такое ContactForm7 для WordPress:

Contact Form 7 может управлять многочисленными контактными формами, где вы можете гибко настраивать содержимое форм и почты с достаточно простой разметкой. Формы имеют встроенную поддержку Ajax отправки, CAPTCHA, спам фильтра Akismet и не только.(c) Contact Form 7

Подискутировать

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.