Доброго времени суток.
Не являюсь программистом битрикс. Постоянно возникает задача настройки целей для гугл аналитики на сайтах битрикс.
Для того чтобы отправить в гугл информацию о совершении события необходимо всего-то в нужном месте (после валидной отправки формы) выполнить JS:
[CODE]ga('send', 'event', 'forms', 'forms1')
[/CODE]
После долгих поисков, проб и ошибок пришел к нижеследующему варианту. Надеюсь мне подскажут правильно это или нет, и где я ошибся.
Создал файл goals.php:
[CODE]<?php
function my_onBeforeResultAdd($WEB_FORM_ID, $RESULT_ID)
{
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
//echo "<sc ript type='text/javascript'>console.log('test9')</sc ript>";
if ($WEB_FORM_ID == 1)
{
AddMessage2Log("WEB_FORM_ID == 1");
echo "<sc ript type='text/javascript'>ga('send', 'event', 'forms', 'forms1')/script>";
}
}
// зарегистрируем функцию как обработчик двух событий
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');[/CODE]
В init.php добавил инклуд моего файла:
[CODE]<?
include("debug.php");
include("goals.php");[/CODE]Отладочный вывод получилось сделать только через AddMessage2Log
Заполняю форму, в лог файле вижу следующее:
[CODE]Date: 2016-03-15 17:18:57
Module:
WEB_FORM_ID == 1
my_onBeforeResultAdd < call_user_func_array < ExecuteModuleEventEx < CAllFormResult::Add < include
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/main /classes/general/module.php:475
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/form /classes/general/form_callformresult.php:427
/home/c/ck49274/kubfinexpert/public_html/bitrix/components/b itrix/form.result.new/component.php:196
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/main /classes/general/component.php:535
----------[/CODE]т.е. функция обработчика события подключилась нормально, при заполнении нужной формы блок if выполняется, [B]но js НЕ выполняется [/B]
Подскажите пожалуйста в чем ошибка?
Не являюсь программистом битрикс. Постоянно возникает задача настройки целей для гугл аналитики на сайтах битрикс.
Для того чтобы отправить в гугл информацию о совершении события необходимо всего-то в нужном месте (после валидной отправки формы) выполнить JS:
[CODE]ga('send', 'event', 'forms', 'forms1')
[/CODE]
После долгих поисков, проб и ошибок пришел к нижеследующему варианту. Надеюсь мне подскажут правильно это или нет, и где я ошибся.
Создал файл goals.php:
[CODE]<?php
function my_onBeforeResultAdd($WEB_FORM_ID, $RESULT_ID)
{
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
//echo "<sc ript type='text/javascript'>console.log('test9')</sc ript>";
if ($WEB_FORM_ID == 1)
{
AddMessage2Log("WEB_FORM_ID == 1");
echo "<sc ript type='text/javascript'>ga('send', 'event', 'forms', 'forms1')/script>";
}
}
// зарегистрируем функцию как обработчик двух событий
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');[/CODE]
В init.php добавил инклуд моего файла:
[CODE]<?
include("debug.php");
include("goals.php");[/CODE]Отладочный вывод получилось сделать только через AddMessage2Log
Заполняю форму, в лог файле вижу следующее:
[CODE]Date: 2016-03-15 17:18:57
Module:
WEB_FORM_ID == 1
my_onBeforeResultAdd < call_user_func_array < ExecuteModuleEventEx < CAllFormResult::Add < include
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/main
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/form
/home/c/ck49274/kubfinexpert/public_html/bitrix/components/b
/home/c/ck49274/kubfinexpert/public_html/bitrix/modules/main
----------[/CODE]т.е. функция обработчика события подключилась нормально, при заполнении нужной формы блок if выполняется, [B]но js НЕ выполняется [/B]
Подскажите пожалуйста в чем ошибка?