Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Янгдекс метрика, опрегделение 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 -->

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

 

 

 

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

Edited by Nannco
Link to comment
Share on other sites


31 минуту назад, thentru сказал:

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

спасипотому что поправил, сейчас однакостирую. 

Link to comment
Share on other sites


20 часов назад, thentru сказал:

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

 

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

 

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

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites


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);

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

Edited by Nannco
Link to comment
Share on other sites


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. Ждём резульии :)

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.