PHP code example of wfgm5k2d / bitrix-location-service

1. Go to this page and download the library: Download wfgm5k2d/bitrix-location-service library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

wfgm5k2d / bitrix-location-service example snippets


     
    // Получить данные о местоположении по реальномму IP пользователя
    $data = IpWhoIsService::getRealIp()->getDataResult();
    
    // Получить данные города из массива
    $city = $data->getCity();
    
    // Получить информацию о местоположении
    $obData = $data->getBxLocation($city);
    
    // Получить REGION_ID из массива ITEM
    $regionId = $obData->getItemRegionId();
    
    // Получить данные о местоположении региона по REGION_ID
    $obRegion = $obData->getBitrixRegion($regionId);
    
    // Получить название города из региона ['VALUE']['CITY_NAME']
    $sCity = $obData->getValueCityName();
    
    // Выбираем все города
    $arCity = $obData->searchLocationInBitrixLocations(BitrixLocationService::TYPE_CITY, $sCity);
    
    // Если город не нашелся ищем в селах
    $arVillage = $obData->searchLocationInBitrixLocations(BitrixLocationService::TYPE_VILLAGE, $sCity);
    
    // Совместим результаты
    $arCities = array_merge($arCity, $arVillage);
    
    // Получим индекс этого города
    BitrixLocationService::getZipLocation($arCities['ID']);
    
    // Получим полный путь до города
    BitrixLocationService::getFullPathToLocation($arCities);
    

     
    $siteId = Context::getCurrent()->getSite(); // Получили site ID
    $currencyCode = CurrencyManager::getBaseCurrency(); // Метод возвращает код базовой валюты

    $obOrder = Order::create($siteId, $USER->GetID());
    $obOrder->setPersonTypeId(1); //Установим тип плательщика (Физическое лицо)
    $obOrder->setField('CURRENCY', $currencyCode);
    
    // Устанавливаем корзину пользователя в заказ
    // Получили текущую корзину
    $obBasket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite())->getBasket(); 
    $obOrder->setBasket($obBasket); // Установили корзину в заказ

    $propertyCollection = $obOrder->getPropertyCollection();
    $propertyCodeToId = array();

    foreach ($propertyCollection as $propertyValue)
        $propertyCodeToId[$propertyValue->getField('CODE')] = $propertyValue->getField('ORDER_PROPS_ID');

    if (!empty($arCity['CODE'])) {
        $propertyValue = $propertyCollection->getItemByOrderPropertyId($propertyCodeToId['LOCATION']);
        $propertyValue->setValue($arCity['CODE']);
    }