Перейти к содержанию
Nannco

[Решено] Яндекс метрика, определение IP адреса

Рекомендуемые сообщения

Всем привет.

 

Подскажите как правильно настроить определение IP адреса на яндекс матрике.

 

Если на OPENCART 2.3 - работает такая схема

в файле: САЙТ0/catalog/view/theme/***********/template/common/footer.tpl

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
var yaParams = {ip_adress: "<?php echo $remote_addr; ?>"}
</script>

<script type="text/javascript" >
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter*********** = new Ya.Metrika({
                    id:*************,
                    params:window.yaParams,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/watch.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/*************" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Добавили скрипт:

var yaParams = {ip_adress: "<?php echo $remote_addr; ?>"}

params:window.yaParams,

 

И ВСЕ ПРЕКРАСНО РАБОТАЕТ НА OPENCART 2.3

 

А вот если этоже добавим на OPENCART 3.0 - то не хочет работать

в файле:

САЙТ/catalog/view/theme/***********/template/common/footer.twig

Первое это изменилось расширения файла

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
var yaParams = {ip_adress: "<?php echo $remote_addr; ?>"}
</script>

<script type="text/javascript" >
    (function (d, w, c) {
        (w[c] = w[c] || []).push(function() {
            try {
                w.yaCounter*********** = new Ya.Metrika2({
                    id:***********,
                    params:window.yaParams,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true,
                    webvisor:true
                });
            } catch(e) { }
        });

        var n = d.getElementsByTagName("script")[0],
            s = d.createElement("script"),
            f = function () { n.parentNode.insertBefore(s, n); };
        s.type = "text/javascript";
        s.async = true;
        s.src = "https://mc.yandex.ru/metrika/tag.js";

        if (w.opera == "[object Opera]") {
            d.addEventListener("DOMContentLoaded", f, false);
        } else { f(); }
    })(document, window, "yandex_metrika_callbacks2");
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/***********" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

Показывает вот так и айпи не определяет:

 

400465218_.thumb.png.fe8a5ac9c584879504f41ae81fc6df4e.png

 

 

Как можно подправить код чтоб в яндекс метрике правильно отображался айпи адрес? 

Изменено пользователем Nannco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

{{ remote_addr }} вместо <?php echo $remote_addr ; ?>

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
31 минуту назад, thentru сказал:

{{ remote_addr }} вместо <?php echo $remote_addr ; ?>

спасибо поправил, сейчас протестирую. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 часов назад, thentru сказал:

{{ remote_addr }} вместо <?php echo $remote_addr ; ?>

 

Не помогло поменял код на:

 

<script type="text/javascript">
var yaParams = {ip_adress: "{{ remote_addr }}"}
</script>

Посмотри пожалуйста нет ошибки, так как сейчас это поле пустое с IP

Screenshot_1.thumb.jpg.4fcbe12eb33d5b6c8ba8044e44dd63fc.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В контроллер футера что добавлено для определения IP покупателя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, thentru сказал:

В контроллер футера что добавлено для определения IP покупателя?

// Whos Online
		if ($this->config->get('config_customer_online')) {
			$this->load->model('tool/online');

			if (isset($this->request->server['REMOTE_ADDR'])) {
				$ip = $this->request->server['REMOTE_ADDR'];
			} else {
				$ip = '';
			}

			if (isset($this->request->server['HTTP_HOST']) && isset($this->request->server['REQUEST_URI'])) {
				$url = ($this->request->server['HTTPS'] ? 'https://' : 'http://') . $this->request->server['HTTP_HOST'] . $this->request->server['REQUEST_URI'];
			} else {
				$url = '';
			}

			if (isset($this->request->server['HTTP_REFERER'])) {
				$referer = $this->request->server['HTTP_REFERER'];
			} else {
				$referer = '';
			}

			$this->model_tool_online->addOnline($ip, $this->customer->getId(), $url, $referer);
		}

		$data['scripts'] = $this->document->getScripts('footer');
		
		return $this->load->view('common/footer', $data);

Извиняюсь за глупый вопрос, из-за всех букв ЗАГЛАВНЫХ, может быть не соответствие ?

Изменено пользователем Nannco

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прочитайте еще раз инструкцию как сделать

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, thentru сказал:

Прочитайте еще раз инструкцию как сделать

Большое спасибо разобрался Работает.

 

Для закрытия темы отвечу как решил

 

1. В контроле - footer 

после

$data['powered'] = sprintf($this->language->get('text_powered'), $this->config->get('config_name'), date('Y', time()));

вставляем

if (isset($this->request->server['REMOTE_ADDR'])) {
  $data['remote_addr'] = $this->request->server['REMOTE_ADDR'];
}

2. Обновляем модификатор

3. Ждём результата :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.