• Здравствуйте, решил наладить цели метрики для кнопок обратной связи, но с Caldera Forms не получается. Напрямую привязать кнопку не получается. Решил сделать такой код:
    <?php
    add_action( ‘metrika_target_virt’, ‘metrika_target_virt’ );
    function metrika_target_virt( $event, $data ) {
    ?>
    <script type=»text/javascript»>
    jQuery( document ).on( ‘cf.form.submit’, function ( event, data ) {
    console.log($form.data( ‘fld_1378219’ ) ); {
    ym(XXXXXXXX, ‘reachGoal’, TARGET-NAME); return true;
    }
    } );
    </script>
    <?php
    }
    И добавить через расширение плагина Run Action сие действие в нужной форме. Но не срабатывает. Помогите, пожалуйста, советом.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • помогаю советом: пункт 14

    Модератор Юрій

    (@yube)

    Игнорирование кнопки code ведет к нечитабельности кода.

    Хук (action) ‘metrika_target_virt’ где-то в коде вызывается?
    Функция $form.data где-то определена?
    Функция ym определена?

    1. Хук вызывается посредством процессора для плагина Run Action.
    2. Функцию ‘$form.data’ подрезал из документации плагина
    3. Функция ‘ym’ не определена.
    Есть только такой участок кода:
    <form action="" method="get" onsubmit="ym(XXXXXX, 'reachGoal', 'TARGET_NAME', goalParams); return true;">
    Но в таком виде он точно не подойдет. Взял с официального сайта Яндекс. Все-таки, в Contact Form 7 встроить код отслеживания гораздо проще.
    Собственно, требуется вызвать при отправке формы такую функцию:
    ym(XXXXXX, 'reachGoal', 'TARGET_NAME');
    Именно это у меня не получается.
    Ссылка на страницу Яндекс: https://yandex.ru/support/metrika/objects/reachgoal.html
    Ссылка на описание Run Action: https://calderaforms.com/downloads/caldera-forms-run-action/

    P. S. Решил немного перелопатить код, но все равно не заработал:

    <?php
    	add_action( 'metrika_target_virt', 'metrika_target_virt' );
    	function metrika_target_virt( $event, $data ) {
    ?>
    <script type="text/javascript">
    jQuery( document ).on( 'cf.form.submit', function ( event, data ) {
    	if ($formId = $form.attr ('fld_1378219')); {
    	ym(12818152, 'reachGoal', 'knopka'); return true;
        }
    } );
    </script>
    <?php
    }
    Модератор Юрій

    (@yube)

    Собственно, требуется вызвать при отправке формы такую функцию:
    ym(XXXXXX, 'reachGoal', 'TARGET_NAME');

    Для этого нужно:
    1. чтобы Ваш скрипт попал в html страницы
    2. чтобы до его выполнения была выполнена инициализация скрипта Метрики и была создана функция ym.
    3. Отправка формы должна взводить триггер ‘cf.form.submit’
    4. Объект $form должен быть где-то ранее определен и, судя по всему, привязан к форме. Возможно, это делает Caldera Forms, но я с ним вообще не знаком.

    И еще. То, что я делал для метрики, выглядело несколько иначе:
    yaCounter111111.reachGoal('goallll');

    yaCounter111111.reachGoal('goallll');

    Этот код верен для старой версии Метрики. Я установил новый счетсчик, теперь там другой код, который вписал я. Ссылку на Яндекс давал выше, если интересно.

    За советы спасибо, попробую реализовать в описанном вами порядке.

    Модератор Юрій

    (@yube)

    теперь там другой код

    OMG! Они и это «улучшили» 🙁

    Спасибо, не знал.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «reachGoal в Caldera Forms» закрыта для новых ответов.