С нового 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?
Пример для не ограниченного количества форм.
Тогда в файл 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 }
Ну и не забываем внести в Яндекс метрику новую цель:
Что же такое ContactForm7 для WordPress:
Contact Form 7 может управлять многочисленными контактными формами, где вы можете гибко настраивать содержимое форм и почты с достаточно простой разметкой. Формы имеют встроенную поддержку Ajax отправки, CAPTCHA, спам фильтра Akismet и не только.(c) Contact Form 7