Как повесить событие на успешную отправку письма через Contact Form 7


Недавно попался сайт и меня попросили добавить таргетинг по событиям на сайте на все формы. Сайт был, соответственно, на WordPress. Оказалось, что на этом сайте все формы реализованы через Contact Form 7. И вот как получилось реализовать задачу.

У Contact Form 7 есть событие wpcf7mailsent. Это событие появилось в Contact Form 7 с версии 7.5.0.

add_action( 'wp_footer', 'rb_contact_form_7_targeting' );

function rb_contact_form_7_targeting() {
?>
  <script type="text/javascript">
    document.addEventListener( 'wpcf7mailsent', function( ) {

       VK.Goal('lead'); //тут можно вставить любой код)))

    } );
  </script>
<?php
}

В моём случае было нужно вставить вод с VK для прослушивания успешной отправки сообщений сразу на все формы. Ниже будет пример, когда нужно прослушать событие только 1 конкретной формы

add_action( 'wp_footer', 'rb_contact_form_7_targeting' );

function rb_contact_form_7_targeting() {
?>
  <script type="text/javascript">
    document.addEventListener( 'wpcf7mailsent', function( e ) {

        if ( 'ID_формы' == e.detail.contactFormId ) { //нужно

          VK.Goal('lead'); //тут можно вставить любой код)))

        } 

    } );
  </script>
<?php
}

Просто замените ID_формы – на ID вашей формы, для которой вы хотите, чтобы сработало данное событие.