Документ описывает JavaScript-интерфейс плагина WT Geotargeting Pro для выбора региона на стороне клиента. API доступно после загрузки скрипта wt-location.js.
Файл: js/wt-location.js
Глобальный объект WtLocation
Объект инициализируется при загрузке страницы (jQuery(document).ready). Работает с cookie wt_geolocation_data (в ранних версиях — wt_geo_data). Данные сохраняются на 7 дней.
Получение данных (getters)
| Метод | Описание | Возвращает |
|---|---|---|
WtLocation.getValue(type) | Получить значение по типу | string или false |
WtLocation.getCountry() | Текущая страна | string или false |
WtLocation.getDistrict() | Текущий округ | string или false |
WtLocation.getRegion() | Текущая область/регион | string или false |
WtLocation.getCity() | Текущий город | string или false |
WtLocation.getAdministrativeDistrict() | Текущий административный округ | string или false |
type в getValue(): country, district, region, city, administrative_district, location_id.
Установка региона (setters)
setValue(name, type, redirect)
Присваивает один тип локации. Остальные типы сбрасываются.
name— название локации или ID региона (с версии 1.7.9). При числовом ID сохраняетсяlocation_id.type—country,city,region,district,administrative_districtredirect—'reload'для перезагрузки страницы, URL для перехода, иначе — без действия
setValues(values, redirect)
Присваивает несколько значений сразу.
values— объект:{city, region, country, district, administrative_district, location_id}redirect— как вsetValue
Специализированные методы
| Метод | Эквивалент |
|---|---|
WtLocation.setCountry(name, redirect) | setValue(name, 'country', redirect) |
WtLocation.setDistrict(name, redirect) | setValue(name, 'district', redirect) |
WtLocation.setRegion(name, redirect) | setValue(name, 'region', redirect) |
WtLocation.setCity(name, redirect) | setValue(name, 'city', redirect) |
WtLocation.setAdministrativeDistrict(name, redirect) | setValue(name, 'administrative_district', redirect) |
Примеры использования
// Выбрать город и перезагрузить
WtLocation.setCity('Самара', 'reload');
// Выбрать область
WtLocation.setRegion('Самарская область', 'reload');
// Выбрать по ID региона (из админки)
WtLocation.setValue(123, null, 'reload');
// Выбрать несколько значений
WtLocation.setValues({
city: 'Самара',
region: 'Самарская область',
country: 'RU'
}, 'reload');
// Перейти на URL после выбора
WtLocation.setCity('Москва', '/moskva/');
// Получить текущий город
var city = WtLocation.getCity();
Поиск по регионам (AJAX)
Шорткод [wt_location_search] выводит поле ввода с id="search_location_name" и кнопку id="search_location_button". При вводе от 2 символов вызывается AJAX-запрос:
- Action:
search_location - Endpoint:
/wp-admin/admin-ajax.php - Параметры:
value,data_type: 'object', опциональноfilter_parent(изdata-filter-parent)
Результаты выводятся в элемент, указанный в data-result-div-id. HTML генерируется функцией generateHtmlLocations() с учётом глобальных переменных list_tag, column_class, type_select_location (задаются шорткодом [wt_locations]).
Отключение скрипта WtLocation
В настройках плагина (Технические) можно отключить скрипт WtLocation. В этом случае объект WtLocation может быть недоступен.
См. также
- Выбор города
- Шорткод WT_LOCATION_SEARCH
- Функции PHP —
WT::$location->getRegionsArray()для получения списка регионов на сервере