Вітаю шановний відвідувач нашого сайту. Вибачте що я давненько вже нічого нового не писав тут, просто справ було дуже багато.
Сьогодні ж я знайшов трохи вільного часу, і хочу опублікувати нову замітку про можливість відображення на своєму сайті Геолокації даних користувача, простіше кажучи замітка про те як відобразити на своєму сайті країну, місто і регіон відвідувача який до вас прийшов на сайт.
Функція геолокація на сайті використовується веб-майстрами для багатьох цілей, наприклад: если у вас готовий інтернет магазин то можна для ваших відвідувачів для кожного регіону, показувати контактну інформацію конкретно вашого філіалу в його місті, або ж відобразити умови доставки замовлень які відносяться до його регіону, я часто використовую можливості геолокації при написанні унікальних текстів на сайт, це небагато але дещо покращує унікальність написаних текстів.
При правильному налаштуванні, геолокація на сайті також може допомогти вам поліпшити конверсію в інтернет магазині. Використовуючи геолокацію для сайту можна перенаправляти ваших відвідувачів на інші домени, які конкретно налаштовані для регіону відвідувача, так власне багато для чого можна використовувати цю функцію всі приклади описувати не має сенсу, кожен хто шукає як впровадити на сайт геолокацію думаю вже знає для чого вона йому потрібна і для яких цілей.
Для того щоб визначити місто відвідувача і показати його на сторінках вашого сайту, є багато самих різних способів, є складні методи визначення міста по IP користувача, є більш прості методи реалізації і виведення назви міста відвідувача на сайті, ми ж сьогодні будемо розглядати два варіанти визначення і виведення країни і міста відвідувача на вашому сайті, а саме розглянемо просту реалізацію яку надає нам яндекс, а також трохи складніше спосіб Sypex Geo від творців чудового продукту Sypex Dumper.
У кожного із зазначених методів є свої плюси і мінуси, тому давайте розглянемо обидва варіанти більш детально. Я не буду заглиблюватися в нетрі, а опишу найпростіші варіанти і швидке підключення на ваш сайт описаних вище методів виведення місцезнаходження користувача на сайті, тому думаю з цим завданням слідуючи нашій інструкції впорається будь-який початківець Веб-майстер, отже давайте приступимо до справи і зробимо визначення міста по IP для сайту.
Визначення міста відвідувача використовуючи яндекс API.
Найголовніша цінність даного методу це його простота установки на ваш сайт, все що вам потрібно зробити так це вставити готовий код визначення міста на свій сайт. Скрипт визначення міста працює просто бездоганно, хоча в якихось маленьких населених пунктах, може звичайно, не точно визначити місто і вказати не ваше місто, а місцезнаходження вашого інтернет провайдера, але в основному скрипт дуже зручний і простий в установці.
Але в даному методі є і серйозний недолік, якій і змусив по суті мене шукати інші альтернативи визначення міста на сайті, як на своїх проектах, так і при розробці сайтів для клієнтів у яких основна аудиторія з України. Як ви вже напевно знаєте в Україні Яндекс під забороною і всі запити до нього блокуються інтернет провайдерами, в зв'язку з цим дану реалізацію в Україні ми не можемо використовувати, принаймні зараз.
Добре, не буду вас мучити всієї цієї писаниною і приступимо до реалізації, встановимо на сайт геолокацію від Яндекса, яка виведе країну, регіон і місто відвідувача вашого сайту.
Для початку перевірте що у вас підключена на сайті бібліотека jquery, в більшості сайтів вона вже підключена але якщо ж немає тоді додайте на свій сайт між тегами <head> </head> Наступний код:
1 |
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> |
Якщо ж у Вас бібліотека вже підключена то даний пункт можете пропустити. Наступним кроком буде підключення скрипта визначення місцезнаходження користувача, а саме між тими ж тегами <head> </head> додайте наступний скрипт:
1 2 3 4 5 6 7 8 |
<script src="//api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU" type="text/javascript"></script> <script type="text/javascript"> window.onload = function () { jQuery("#user-city").text(ymaps.geolocation.city); jQuery("#user-region").text(ymaps.geolocation.region); jQuery("#user-country").text(ymaps.geolocation.country); } </script> |
Думаю в скрипті все зрозуміло і описувати його не потрібно. І так, скрипт виклику Яндекс API ми підключили, тепер в бажаному вами місці на вашому сайті, там де ви хочете вивести місто додайте наступний код:
1 2 3 |
<div><b>Ваша країна:</b> <span id="user-country"></span></div> <div><b>Ваш регіон:</b> <span id="user-region"></span></div> <div><b>Ваше місто:</b> <span id="user-city"></span></div> |
Ось власне і все, тепер на вашому сайті буде відображатися країна, регіон і місто відвідувача визначені Яндекс API.
Тепер давайте розглянемо невеликий приклад як можна використовувати даний скрипт геолокації в справі. Наприклад якщо вам потрібно на своєму сайті відобразити якийсь текст, який буде видно тільки для певного міста скористайтеся наступним кодом:
1 2 3 4 5 6 7 8 9 10 |
<script type="text/javascript"> window.onload = function () { var city = ymaps.geolocation.city; if(city == 'Хмельницкий'){ jQuery("#user-city").text('Безкоштовна доставка по Хмельницькому'); } else { jQuery("#user-city").text('Доставка Новою поштою'); } } </script> |
Що даний приклад робить? - Як ви думаю вже здогадалися, ми показуємо для всіх регіонів текст "Доставка Новою поштою", але якщо ж на сайт заходить користувач з міста Хмельницький, то замість зазначеного тексту користувачеві відобразиться текст "Безкоштовна доставка по Хмельницькому", за таким принципом ви можете додавати будь-яку динамічну інформацію, адреси, телефони, інформацію для певного міста.
Ось власне і все що я хотів написати про можливість відображення міста використовуючи Яндекс API, нижче ви можете подивитися приклад даного варіанту.
Подивитися приклад
Визначення країни і міста відвідувача по IP.
Наступним кроком у нас буде інший альтернативний спосіб геолокації на сайті, який працює дуже швидко, і за параметрами точність визначення міста можливо навіть краще ніж визначення міста Яндексом, ну і плюс ніяких обмежень і блокувань. І так, в даному прикладі ми будемо використовувати бібліотеку Sypex Geo і штатні можливості php.
Описувати наскільки бібліотека Sypex Geo крута, швидка і багатофункціональна я не буду, про це ви можете знайти інформацію в інтернеті і самостійно, скажу просто - Sypex Geo це швидке визначення міста по IP відвідувача.
Ну що ж, давайте визначимо IP, країну, місто користувача на PHP і Sypex Geo і розглянемо інструкцію підключення. Нижче під статтею можна буде скачати вже готовий скрипт визначення міста користувача на сайті, тут же ми розглянемо як все це підключити.
Приклад роботи можна побачити нижче:
Ваш регіон: Вашингтон
Ви зараз перебуваєте в м. Сиэтл
Ваша IP адреса: 3.138.174.45
Код вашої країни: US
Номер вашої країни: 225
І так, качаємо скрипт Sypex Geo до себе на комп'ютер, і розпаковуємо скачаний архів, отриману папку SxGeo завантажуємо в корінь вашого сайту, після є два варіанти підключення:
Перший найпростіший, в потрібному вам місці виведення додаємо наступний код:
1 |
<?php include "SxGeo/index.php"; ?> |
Таким чином ми просто вивели на сайті відображення інформації з файлу SxGeo/index.php, в якому при бажанні можете змінити інформацію таким чином як потрібно вам.
Другий спосіб теж не складний, так само як і в першому способі вам потрібно в місце де ви хочете відобразити місто відвідувача і іншу інформацію додати наступний код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php $ip = $_SERVER['REMOTE_ADDR']; include("SxGeo.php"); $SxGeo = new SxGeo('SxGeo/SxGeoCity.dat'); $city = $SxGeo->getCity($ip); // повертає з короткою інформацією, без назви регіону і часового поясу $countryid = $SxGeo->getCountryId($ip); //повертає номер країни $country = $SxGeo->getCountry($ip); // повертає двозначний ISO-код країни $region = $SxGeo->getCityFull($ip); // повертає Область // Відображені дані початок echo "<b>Ваша країна:</b> "; echo ($region['country']['name_ru']); // Країна echo "<br>"; echo "<b>Ваш регион:</b> "; echo ($region['region']['name_ru']); // Область echo "<br>"; echo "<b>Ви зараз перебуваєте в"; echo " "; echo "м.</b>"; echo " "; echo ($city['city']['name_ru']); // Місто echo "<br>"; echo "<b>Ваша IP Адреса:</b> "; echo $_SERVER['REMOTE_ADDR']; // IP адреса echo "<br>"; echo "<b>Код вашої країни:</b> "; echo ($country); // Код країни echo "<br>"; echo "<b>Номер вашої країни:</b> "; echo ($countryid); // Номер країни echo "<br>"; // Відображені дані кінець ?> |
І в ньому внести зміни і необхідну інформацію виведення. Також не забувайте про шляхи в третьому і четвертому рядку, вони повинні відповідати вашому сайту. Ось власне і все що нам потрібно було зробити щоб на сайті показувалися точні геодані відвідувача.
Як підключити даний скрипт геолокації в інтернет магазині Opencart?
Якщо ви захочете підключити даний скрипт в інтернет магазині на смс opencart, то в даному випадку підключення кардинально змінюються, так якщо ви підключите за інструкцією описаною вище, отримаєте помилку і нічого не буде працювати. Тому я і хочу відразу ж тут описати метод підключення визначення міста відвідувача в інтернет магазині opencart.
Насамперед для того щоб додати в інтернет магазині скрипт визначення міста користувача, вам знову ж потрібно завантажити сам скрипт нижче, розпакувати його і завантажити в корінь вашого сайту папку SxGeo.
Наступним кроком нам потрібно відкрити файл index.php який знаходиться в корені вашого інтернет магазину і знайти рядок:
1 |
$registry->set('request', $request); |
Після якого додаємо наступне:
1 2 3 4 |
// new SxGeo require_once(DIR_SYSTEM . 'library/SxGeo.php'); $SxGeo = new SxGeo('SxGeo/SxGeoCity.dat'); $registry->set('SxGeo', $SxGeo); |
Зверніть увагу! У разі якщо у вас встановлений модуль Geo IP в магазині, але ви все одно хочете підключити даний скрипт, (ситуації різні бувають) то вам потрібно додавати трохи інший код а саме:
1 2 3 4 |
// new SxGeo //require_once(DIR_SYSTEM . 'library/SxGeo.php'); $SxGeo = new SxGeo('SxGeo/SxGeoCity.dat'); $registry->set('SxGeo', $SxGeo); |
Тобто все те ж саме, тільки коментуємо перший рядок, тому що в противному випадку ви отримаєте помилку виведення, конфлікт класів, які вже присутні в модулі Geo IP.
Так само, зверніть увагу на шляхи в першому і другому рядку, якщо ви копіюєте папку не в корінь а в інше місце, шляхи повинні відповідати вашій структурі магазину.
Після відкриваємо файл index.php який знаходиться в папці SxGeo і весь його вміст міняємо на такий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php $ip = $this->request->server['REMOTE_ADDR']; $city = $this->SxGeo->getCity($ip); // повертає з короткою інформацією, без назви регіону і часового поясу $countryid = $this->SxGeo->getCountryId($ip); //повертає номер країни $country = $this->SxGeo->getCountry($ip); // повертає двозначний ISO-код країни $region = $this->SxGeo->getCityFull($ip); // повертає Область // Відображені дані початок echo "Моя країна: "; echo ($region['country']['name_ru']); // Країна echo "<br>"; echo "Мій регіон: "; echo ($region['region']['name_ru']); // Область echo "<br>"; echo "Я живу в"; echo " "; echo "м."; echo " "; echo ($city['city']['name_ru']); // Місто echo "<br>"; echo "Мій IP Адрес: "; echo $this->request->server['REMOTE_ADDR']; // IP адреса echo "<br>"; // Відображені дані кінець ?> |
І останній пункт це відображеня міста на сторінках нашого магазину, для цього в будь-яке місце вашого шаблону, де ви хочете відобразити інформацію додаємо наступне:
1 |
<?php include 'SxGeo/index.php'; ?> |
Ось власне і все, тепер на сторінках вашого інтернет магазину, буде красуватися інформація про місцезнаходження вашого покупця.
СКАЧАТИ ГОТОВИЙ СКРИПТ SYPEX GEO ВИ МОЖЕТЕ НИЖЧЕ
Місцезнаходження користувача на карті.
Ну і наостанок невеликий бонус від Google Map, місце розташування користувача на Google мапі. Простий скрипт відображення карти з відміткою поточного місця знаходження відвідувача, нижче можна глянути приклад, можливо кому то згодиться.
Для того щоб додати на свій сайт Google карту з визначенням міста користувача вставте в будь-яке місце на вашому сайті наступний код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<section id="wrapper"> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=[google_key]"> </script> <article> </article> <script> function success(position) { var mapcanvas = document.createElement('div'); mapcanvas.id = 'mapcontainer'; mapcanvas.style.height = '400px'; mapcanvas.style.width = '600px'; document.querySelector('article').appendChild(mapcanvas); var coords = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); var options = { zoom: 15, center: coords, mapTypeControl: false, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("mapcontainer"), options); var marker = new google.maps.Marker({ position: coords, map: map, title:"Вы здесь!" }); } if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success); } else { error('Геолокація Не підтримується'); } </script> </section> |
Де [google_key] замініть на свій ключ який ви повинні отримати від Google для свого сайту. Ось власне і все, користуйтеся на здоров'я, будуть питання або рекомендації пишіть в коментарях. Удачі вам!
Немає коментарів
Ви можете залишити коментар першим.