Документ описывает функциональные возможности плагина WT Geotargeting Pro для тестирования и отладки работы геотаргетинга.
1. Режим отладки (общий)
Расположение: Настройки плагина → Технические → раздел «Отладка».
Режим отладки (начиная с версии 1.8) включает дополнительные инструменты для диагностики работы плагина.
| Настройка | Описание |
|---|---|
| Активировать режим отладки | Включает режим отладки. При включении часть компонентов (лицензирование, кэш геолокации и др.) пишет диагностическую информацию в лог. Отображает метабокс «Debugging» на странице редактирования товара WooCommerce. |
| Информация для отладки в подвале сайта | Выводит блок отладочной информации в подвал каждой страницы на фронтенде. |
1.1. Метабокс «Debugging» на странице товара
При активации режима отладки на странице редактирования товара WooCommerce появляется метабокс «Debugging»:
- Тип товара, статус, дочерние товары
- Общее количество на региональных складах
- Максимальная цена среди региональных цен
- Таблица
wt_gt_product_meta— региональные цены, коэффициенты, запасы, статусы по каждому региону
Метабокс отображается только при включённой опции «Активировать режим отладки».
2. Блок отладки в подвале сайта
При включённой опции «Информация для отладки в подвале сайта» на фронтенде в подвале отображается свёртываемый блок «WT Geotargeting Pro — режим отладки» со следующими секциями:
2.1. Геолокация (текущий запрос)
- IP-адрес посетителя
- Сервис геолокации (IP Geolocation API, Sypex Geo, DaData, MaxMind и т.д.)
- Статус кэша геолокации (есть ли запись в кэше, дата)
- Метод определения локации (по IP, по GET/URL, режим отладки)
- Страна, город, регион, округ, широта, долгота (данные текущего запроса)
2.2. Разбор URL
- Хост, домен, субдомен
- Сопоставление хоста с регионами
wp_query_page_locationиwp_query_page_location_all(для страниц)- REQUEST_URI, переменная запроса
location - Сопоставленная локация по URL
С версии 1.18 в этой секции выводится расширенная трассировка разбора GET-параметра локации (как из строки запроса получены метод и данные инициализации региона). Это помогает проверить раннюю установку локации из location и согласованность с поддоменом и cookie.
2.3. Активная локация (WT::$location)
- region_id, subdomain, название региона, parent_id, country_id
2.4. Агрегированные geo-данные (Wt::$obj->geo)
- Страна, город, регион, округ, широта, долгота (агрегированные данные: IP + cookie + GET + режим отладки)
2.5. Шорткод
- Результат выполнения
[wt_location get="region"/]
2.6. Расширение блока фильтром
Секции блока можно дополнять из тем и плагинов через фильтр wt_geotargeting_debug_info_sections:
add_filter( 'wt_geotargeting_debug_info_sections', function ( $sections ) {
$sections[] = array(
'id' => 'my_custom',
'title' => 'Моя секция',
'content' => '<div class="wt-debug-row"><b>Поле:</b> значение</div>',
);
return $sections;
} );
3. Режим тестирования геолокации
Расположение: Настройки плагина → WT GeoTargeting (основные настройки) → раздел «Тестирование и отладка».
Позволяет имитировать посетителя из другого региона.
> Важно: Режим тестирования работает только для авторизованного администратора.
| Поле | Описание |
|---|---|
| Режим тестирования | «Отключен» или «Активирован». При активации используются указанные ниже данные вместо реальной геолокации. |
| IP-адрес посетителя | Тестовый IP для запроса к сервису геолокации. Запрос выполняется минуя cookie — результат берётся напрямую из API. |
| Город посетителя (текстовое поле) | Произвольное название города. Имеет приоритет над выбором из справочника. В данные геолокации прописывается только город — остальные поля (страна, регион, координаты) остаются пустыми. |
| Город посетителя (выпадающий список) | Выбор города из справочника IpGeoBase. Берётся полный набор геоданных (страна, регион, координаты и т.д.). |
| Страна посетителя | Выбор страны из справочника. |
3.1. Ограничение: смена города при включённом режиме тестирования
При включении режима тестирования смена города не работает.
Это ожидаемое поведение: активный режим тестирования фиксирует локацию по указанным настройкам (IP, город, страна). Выбор города через виджет, GET-параметры или cookie игнорируется. Чтобы проверить смену города вручную — отключите режим тестирования.
4. GET-параметры для тестирования
4.1. Очистка cookie геолокации
?wt_geo_clean=1
Очищает cookie с данными геолокации. Полезно для проверки «с нуля».
4.2. Установка региона через GET
?wt_city_by_default=Москва
?wt_region_by_default=Московская область
?wt_district_by_default=Центральный
?wt_country_by_default=Россия
Устанавливает активный регион и сохраняет его в cookie (если не отключено в настройках).
4.3. Выбор локации по URL
Переменная запроса location (slug региона) подставляет активную локацию по структуре URL (например, /?location=moskva или страница с путём, содержащим слаг локации).
5. Логирование
5.1. PHP-функция Wt::debugLogAdd()
Запись произвольной информации в лог-файл:
Wt::debugLogAdd( 'Текст сообщения' );
Wt::debugLogAdd( $variable ); // массив или объект
Файл лога: wp-content/wt_debug.txt
Логирование активируется при включённом режиме отладки для следующих компонентов:
- Лицензирование (ошибки curl, json, ответ API)
- Кэш геолокации (ошибки БД при чтении/записи)
5.2. Проверка режима отладки в коде (PHP)
| Метод | Описание |
|---|---|
Wt::$obj->technical->isDebugEnable() | Возвращает true, если режим отладки активирован |
Wt::$obj->technical->isDebugDisable() | Возвращает true, если режим отладки отключён |
Пример:
if ( isset( Wt::$obj->technical ) && Wt::$obj->technical->isDebugEnable() ) {
Wt::debugLogAdd( 'Мой модуль: ' . $message );
}
6. Режим разработчика (WT_GT_PRO_PLUGIN_DEVELOPMENT)
При define( 'WT_GT_PRO_PLUGIN_DEVELOPMENT', true ) в основном файле плагина в разделе Технические → Отладка становятся доступны дополнительные опции:
| Действие | Описание |
|---|---|
| Создание таблицы для хранения метаданных товаров | Создаёт таблицу WooCommerce при необходимости |
| Очистка устаревшего кэша сервисов геолокации (6 месяцев) | Удаляет устаревшие записи из кэша геолокации |
| Создаём Cron-задание для очистки кэша | Регистрирует ежедневную задачу cron |
| Обновление данных товара в таблице | Требует ID товара в поле «Значение для отладки» |
> Внимание: Режим разработчика предназначен для отладки и обслуживания. В продакшене константа должна быть false.
7. Рекомендации по тестированию
- Проверка геолокации: Включите блок отладки в подвале и убедитесь, что IP, страна и город определяются корректно.
- Проверка локации по URL: Перейдите по региональным ссылкам (поддомен или путь с
location) и проверьте секцию «Активная локация». - Проверка cookie: Используйте
?wt_geo_clean=1для сброса, затем выберите регион — данные должны сохраняться между запросами. - Исключение из кэша: Убедитесь, что страницы с геозависимым контентом не кэшируются целиком.
- Отключение после отладки: Отключайте «Информация для отладки в подвале» и режим тестирования на боевых сайтах.
Вопросы и ответы
В блоке «Тестирование работы геолокации» отображается только IP, остальные поля пустые. Плагин работает некорректно?
Скорее всего, за этим IP не закреплены региональные данные. Проверить IP можно на сайтах используемого сервиса геолокации. Подробнее — Сервисы геолокации.