Для определения города по ip подойдут стандартные средства битрикс
Цитата |
---|
use \Bitrix\Main\Service\GeoIp; GeoIp\Manager::useCookieToStoreInfo(true); $ipAddress = GeoIp\Manager::getRealIp(); $result = GeoIp\Manager::getDataResult($ipAddress, "ru");
$getLocationId = \Bitrix\Sale\Location\GeoIp::getLocationId($ipAddress, "ru"); $getLocationCode = \Bitrix\Sale\Location\GeoIp::getLocationCode($ipAddress, "ru"); |
Если есть название города, можно использовать следующий функционал для определения кода местоположения
Цитата |
---|
\Bitrix\Main\Loader::includeModule('sale'); $ol["city"] = "Москва";
$result = array();
$res = \Bitrix\Sale\Location\LocationTable::getList(array( 'filter' => array( '=NAME.NAME_UPPER' => ToUpper($ol["city"]), '=NAME.LANGUAGE_ID' => "ru" ), 'select' => array('ID', 'CODE') ));
if($loc = $res->fetch()) $resultCity = $loc; } $getLocationCode = $resultCity['CODE']; $getLocationId = $resultCity['ID']; |