К содержанию

[utmMark] - сохранения UTM меток для форм

Всем привет, выложил дополнение, которое позволяет сохранять UTM метки из URL адреса в скрытые поля в форму, для последующего использования.



Он обрабатывает следующие UTM метки:
  • utm_source
  • utm_medium
  • utm_term
  • utm_content
  • utm_campaign
  • original_ref
  • Начальная страница
  • IP
  • URL
  • roistat
  • roistat_referrer
  • roistat_pos
  • yclid
Метки сохраняются на 24 часа

Использование
Запустить сниппет utmMark в форме

Обязательно нужен pdoTools!

В настройках Вы можете перечислить через запятую необходимые метки.
Ключ — utmmark_marks
Исходники
Modstore

UPD #1
Добавлена поддержка minishop2.
UTM метки сохраняются в поле properties (массив).
Для активации отображений на странице заказа, необходимо в системных настройках, в ms2_order_address_fields добавить properties

Игорь Игамов
Игорь Игамов
03 июля 2020, 11:15
modx.pro
4 217
Реклама

Комментарии: 16

Виталик
Виталик Старожил
15 июля 2020, 13:35
must have всем продажникам. почему только 4 закачки))
@Игорь Игамов планируется отправка данных вместе с заказом в minishop? может цеплять в комментарий?
    Игорь Игамов
    Игорь Игамов Проверенный
    15 июля 2020, 19:59
    Да, планируется.
    В minishop2 есть поле properties :)
      Игорь Игамов
      Игорь Игамов Проверенный
      07 сентября 2020, 15:50
      Добавлено в версию 1.0.5-beta :)
      Александр
      Александр Старожил
      09 октября 2020, 11:57
      Супер компонент! Очень бы хотелось выводить метки в поля таблицы заказов для экспорта через msStatOrders
      Готовы проспонсировать такую доработку!
        Игорь Игамов
        Игорь Игамов Проверенный
        13 октября 2020, 14:26
        Пообщались и сделали следующее, может кому пригодится.
        Добавьте в настройку msstatorders_grid_order_fields поле address_properties
        Если вы хотите сделать вывод столбцов меток, нужно написать плагин на событие msStatOrdersOnPrepareObjectRow
        пример для utm_source
        <?php
        if (!is_object($self) OR $self->classKey !== 'msOrder' OR $type !== 'getlist') {
            return;
        }
        $data = is_array($data) ? $data : array();
        $properties = is_array($data['address_properties']) ? $data['address_properties'] : json_decode($data['address_properties'], 1);
        $data['utm_source'] = isset($properties['utm_source']) ? $properties['utm_source'] : '';
        $modx->event->returnedValues['data'] = $data;
        и уже потом в msstatorders_grid_order_fields добавить utm_source
          Сергей Карпович
          16 января 2022, 21:52
          Всем привет, не могу подружить с MiniShop.
          Добавил properties в ms2_order_address_fields.
          Добавил в msOrder {$_modx->runSnippet('!utmMark')}.
          На странице оформления заказа в форме вижу метки, но в админке в заказе поля properties не появляются.

          Подскажите, куда смотреть?
            Игорь Игамов
            Игорь Игамов Проверенный
            16 января 2023, 13:15
            Привет, разобрались?)
            newbmod
            newbmod Старожил
            10 ноября 2022, 10:49
            Здравствуйте!
            Подскажите, пожалуйста, по меткам roistat, roistat_referrer, roistat_pos
            Установлен счетчик ройстата и в форме проходит вызов сниппета utmMark. Однако ройстатовские метки не заполняются.
              Игорь Игамов
              Игорь Игамов Проверенный
              16 января 2023, 13:15
              Привет, разобрались?)
                newbmod
                newbmod Старожил
                16 января 2023, 14:00
                Нет
              Сергей С
              Сергей С Старожил
              27 июня 2023, 23:27
              Добрый день! Подскажите как ополучить данные меток заказа, к примеру для отправки в письме менеджерам или для отправки по API.
              Логика подсказывает, что где-то тут
              $properties = $msAddress->get('properties');
              $utm_campaign = $properties->get('utm_campaign');
              Но не работает
                Сергей С
                Сергей С Старожил
                28 июня 2023, 10:01
                $msAddress = $msOrder->getOne('Address');
                $properties = $msAddress->get('properties');
                $utm_campaign = $properties->get('utm_campaign');
                  Сергей Карпович
                  15 января 2025, 20:27
                  Подскажите, как правильно прописать выводы utm меток в уведомлении о заказе, не понять
                    Сергей С
                    Сергей С Старожил
                    15 января 2025, 20:34
                    Так выше уже написал как получить
                      Сергей Карпович
                      15 января 2025, 20:38
                      Оказалось все проще:
                      {foreach ['utm_source','utm_medium','utm_term', 'utm_content', 'utm_campaign', 'original_ref','start_page', 'ip', 'url'] as $field}
                          {if $address.properties[$field]}
                              <strong>{$field}:</strong> {$address.properties[$field]}
                          {/if}
                      {/foreach}
                        Сергей С
                        Сергей С Старожил
                        15 января 2025, 21:00
                        ну в чанке да. Я то php написал для кастома
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                16