Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

Всем привет.

 

Подскажите как правильно настроить определение 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
Надіслати
Поділитися на інших сайтах


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 час назад, 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.