В современных веб-приложениях часто требуется определять геолокацию пользователя по его IP-адресу. В «1С-Битрикс: Управление сайтом» для этого предусмотрен функционал в пространстве имён \Bitrix\Main\Service\GeoIp. Ниже мы рассмотрим, как настроить и использовать этот сервис на практике, а также коснёмся вопроса о том, как можно применять геоданные в модуле sale для автоматизации процессов, связанных с оформлением заказов и доставкой.
Этот код перенаправляет пользователей на соответствующую языковую версию сайта в зависимости от их страны, определенной по IP-адресу.
Код
use Bitrix\Main\Service\GeoIp\Manager;
use Bitrix\Main\Application;
// Получаем IP-адрес пользователя
$ip = Manager::getRealIp();
// Получаем геоданные
$result = Manager::getDataResult($ip, 'en');
if ($result !== null && $result->isSuccess()) {
$geoData = $result->getGeoData();
$countryCode = $geoData->countryCode;
// Определяем язык сайта на основе страны пользователя
$siteLanguage = 'en'; // язык по умолчанию
$countryToLanguageMap = [
'RU' => 'ru',
'UA' => 'ua',
'KZ' => 'kz',
// добавьте другие страны и соответствующие языки по необходимости
];
if (isset($countryToLanguageMap[$countryCode])) {
$siteLanguage = $countryToLanguageMap[$countryCode];
}
// Получаем текущий URL без параметров языка
$request = Application::getInstance()->getContext()->getRequest();
$currentUrl = $request->getRequestedPage();
$currentUrlWithoutLang = preg_replace('/\/[a-z]{2}(\/|$)/', '/', $currentUrl);
// Перенаправляем пользователя на соответствующую языковую версию сайта
$newUrl = str_replace('//', '/', $currentUrlWithoutLang . $siteLanguage . '/');
LocalRedirect($newUrl);
} else {
// В случае ошибки перенаправляем на версию по умолчанию
LocalRedirect('/en/');
}
Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс
Перенос сайтов на «1С-Битрикс»
сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость
от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.
* зависит от объема выполняемых работ.
Участие в проекте
привлечение в проект на part-time основе
от 30 000 рублей / неделя
Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.
* сумма фиксированная
Модули и компоненты для «1С-Битрикс»
оценка производится на основе предоставленного Технического Задания
от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.
* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.