GeoIP на сайте. Реализация в Битрикс

Иногда на сайте требуется реализовать что-то вроде такого функционала:

head

Город при посещении сайта должен быть выбран в соответствии с тем, откуда пользователь зашёл на сайт. Если из Санкт-Петербурга — то должен быть отображён Санкт-Петербург.

Реализовать определение города можно с помощью замечательного модуля «Определение местоположения по IP-адресу». Качаем его из маркетплейса отсюда.

Приступим к реализации:

Данные о том, из какого города к нам зашёл посетитель, будем хранить в сессии, а сами города и им соответствующие номера телефонов — в инфоблоке. Напишем несколько функций, которые помогут нам вытащить из инфоблока данные о городе (его название, id и номер телефона):

Добавим эти функции в init.php (чтобы к ним был доступ из header.php)

Теперь опишем саму логику определения города (этот код можно использовать в header.php):

Пояснения: Если в сессии уже задан город, то в $city будут записаны данные о нём. Если нет — то определим этот город по GeoIP и попытаемся получить о нём данные из инфоблока. Если в инфоблоке такого города нет — то получим данные о городе «Санкт-Петербург» (пусть это будет город по умолчанию).

Далее уже можно приступать к отображению. Телефон и наименование города можно получить так:

 

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *