Данный документ описывает функциональные возможности плагина 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
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. В этом случае данные выбранного города (страна, регион, координаты и т.д.) берутся из базы городов 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)
Для проверки активации режима отладки в коде плагина используются методы модуля Technical:
| Метод | Описание |
|---|---|
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 можно на сайтах используемого сервиса геолокации. Подробнее о поддерживаемых плагином сервисах геолокации можно ознакомиться по ссылке.