1 Отредактировано Илья (09.01.2017 10:36:56)

Тема: Настройка целей в Яндекс.Метрике

Здравствуйте. Для того что бы, в метрике показывались заказы созданные в "1 клик", нужно на кнопку в админной части "создать заказ" повесить событие onclick="yaCounterXXXXXX.reachGoal('ORDER'); return true;"

Вот на эту кнопку, скажите как это сделать?
http://s020.radikal.ru/i716/1701/41/48dc5d311239.png

Повысить оценку Понизить оценку

Re: Настройка целей в Яндекс.Метрике

Вы хотите и созданные админом кнопки отслеживать? Или купить в один клик созданное пользователем?

3

Re: Настройка целей в Яндекс.Метрике

Закусило Александр, Созданные админом отслеживать

Повысить оценку Понизить оценку

4

Re: Настройка целей в Яндекс.Метрике

Для модификации кнопки из стороннего модуля следует выполнить следующее:

Алгоритм:
1. Перехватить событие controller.exec.catalog-oneclickctrl
2. Получить объект кнопки
3. Добавить атрибут.

Примерный код обработчика handlers.inc.php:
Не забудьте очистить кэш, чтобы система подхватила ваш обработчик

<?php
namespace ВАШМОДУЛЬ\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('controller.exec.catalog-oneclickctrl')
    }

    public static function controllerExecCatalogOneClickCtrl(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
    {
        /**
         * @var $bottomToolbar \RS\Html\Toolbar\Element
         */
        $bottomToolbar = $crud_collection['bottomToolbar'];

        /**
         * @var $button \RS\Html\Toolbar\Button\AbstractButton
         */
        $button = $bottomToolbar->getItem('create'); //Получаем объект кнопки
        $button->setAttr(array(
            'onclick' => 'ваш код'
        ));
    }

}

Повысить оценку Понизить оценку

5

Re: Настройка целей в Яндекс.Метрике

Кеш почищен, но модуль не срабатывает.

Повысить оценку Понизить оценку

6

Re: Настройка целей в Яндекс.Метрике

Код, который я привел - примерный, из него видно, какой класс у вас на входе обработчика событий, дальше вы уже можете поковырять сами его.

проверяйте:

1. вызывается ли у вас обработчик для начала.
2. посмотрите какие кнопки в $bottomToolbar - в примере я подписал какой класс в данной переменной. (\RS\Html\Toolbar\Element) вы можете заглянуть в исходник класса, чтобы все понять, там все методы подписанные. Есть функция var_dump - очень рекомендуем ей пользоваться, чтобы понять что в переменных.

Повысить оценку Понизить оценку

7

Re: Настройка целей в Яндекс.Метрике

admin, Как проверить вызывается обработчик или нет?

Повысить оценку Понизить оценку

Re: Настройка целей в Яндекс.Метрике

Волшебный var_dump при срабатывании функции или die('123').

9

Re: Настройка целей в Яндекс.Метрике

Немного ошибся, маска имени события звучит как:
controller.exec.КОРОТКОЕ_ИМЯ_КОНТРОЛЛЕРА.ИМЯ_ДЕЙСТВИЯ

( https://readyscript.ru/dev-manual/dev_hooks.html )

Я в предыдущем примере кода забыл в конце указать ИМЯ_ДЕЙСТВИЯ.

соответственно названия будут чуть другие:

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('controller.exec.catalog-oneclickctrl.index')
    }

    public static function controllerExecCatalogOneClickCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
    {
          //......
    }

Повысить оценку Понизить оценку

10

Re: Настройка целей в Яндекс.Метрике

Подскажите ,что должен вывестить var_dump, потому что ничего нигде не видно

Повысить оценку Понизить оценку

Re: Настройка целей в Яндекс.Метрике

var_dump('Любая фраза для проверки отработал ли хук');
exit();

12

Re: Настройка целей в Яндекс.Метрике

Вы меня немного не поняли. Вот мои действия.
1. Вставляю

var_dump($crud_collection);
        exit();

Сразу после, да и в разных местах пробовал

public static function controllerExecCatalogOneClickCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
    {

2. Сбрасываю кеш, обновляю страницу
3. Нажимаю на заказ в блоке "Покупки в 1 клик"
4. Всплывает окно с данными заказа - var_dump нигде нет
5. Создю заказ - var_dump снова нигде не выводится

Повысить оценку Понизить оценку

13

Re: Настройка целей в Яндекс.Метрике

Воспроизвел код на тестовом движке:
Обновите движок, пожалуйста, мы внесли небольшие исправления в контроллер oneclickctrl

вот точная корректировка:

1. Событие конкретно на данной странице редактирования называется: controller.exec.catalog-admin-oneclickctrl.edit
2. Метод обработчика controllerExecCatalogAdminOneClickCtrlEdit , соответственно.

Пробуйте.

Повысить оценку +1 Понизить оценку

14 Отредактировано Илья (13.01.2017 11:29:46)

Re: Настройка целей в Яндекс.Метрике

Вот  так теперь работает спасибо!
Только при добавлении onclick, нужно еще добавить и 'class' => 'button', что бы кнопка отображалась

       $button->setAttr(array(
            'class' => 'button',
            'onclick' => 'yaCounterXXXXXXX.reachGoal(\'ORDER\'); return true;'            
        ));

Только у меня остался один небольшой вопрос,
Верно ли я сделал что добавил перед одинарными кавычками \ или нет?

Повысить оценку Понизить оценку

15 Отредактировано Закусило Александр (13.01.2017 12:36:44)

Re: Настройка целей в Яндекс.Метрике

Правильно в данном случае, т.к. Вы указываете начало строки с ' (Одинарной ковычки)

16 Отредактировано Илья (13.01.2017 14:18:58)

Re: Настройка целей в Яндекс.Метрике

Теперь встает вопрос, как добавить счетчик яндекса, в админную часть?

Повысить оценку Понизить оценку

17 Отредактировано Илья (13.01.2017 15:05:38)

Re: Настройка целей в Яндекс.Метрике

Вставил в body.tpl {addjs file="yandex.js"} и закинул код метрики в js файл. Но метрика почему то не считает, яндекс предлагает удалить \ перед одинарной ковычкой, будем пробывать

Повысить оценку Понизить оценку

18

Re: Настройка целей в Яндекс.Метрике

Вы можете подключать скрипты из PHP, например в вашем обработчике событий:

https://readyscript.ru/dev-manual/class … f9e0a365ad

\RS\Application\Application::getInstance()->addJs(.....)

Повысить оценку Понизить оценку

19

Re: Настройка целей в Яндекс.Метрике

Пробовали убрать \ перед одинарной кавычкой, выдает ошибку. Ждем что скажет яндекс

Повысить оценку Понизить оценку

20

Re: Настройка целей в Яндекс.Метрике

admin а вариант которым воспользовался я, можно оставить?Шаблон я перегрузил

Повысить оценку Понизить оценку

Re: Настройка целей в Яндекс.Метрике

'onclick' => "yaCounterXXXXXXX.reachGoal('ORDER'); return true;"   

Попробуйте

Re: Настройка целей в Яндекс.Метрике

Закусило Александр пишет:

Вы хотите и созданные админом кнопки отслеживать? Или купить в один клик созданное пользователем?

А для заказа, созданного пользователем, как сделать?

Повысить оценку Понизить оценку

Re: Настройка целей в Яндекс.Метрике

А для заказа, созданного пользователем, как сделать?

Всё точно также только вешаться надо на кнопку купить в один клик внутри окна. А Яндекс метрика будет отслеживать.

24

Re: Настройка целей в Яндекс.Метрике

Прочитал тему, но как повесить отслеживание цели заказа в 1 клик на сайте через метрику не понял.
Можете подсказать для уже не новичков, но еще и не профессионалов?