Разделы документации

Тестирование и отладка

Данный документ описывает функциональные возможности плагина 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. Рекомендации по тестированию

  1. Проверка геолокации: Включите блок отладки в подвале и убедитесь, что IP, страна и город определяются корректно.
  2. Проверка локации по URL: Перейдите по региональным ссылкам (поддомен или путь с location) и проверьте секцию «Активная локация».
  3. Проверка cookie: Используйте ?wt_geo_clean=1 для сброса, затем выберите регион — данные должны сохраняться между запросами.
  4. Исключение из кэша: Убедитесь, что страницы с геозависимым контентом не кэшируются целиком.
  5. Отключение после отладки: Отключайте «Информация для отладки в подвале» и режим тестирования геолокации на боевых сайтах.

Вопросы и ответы

Вопрос: В блоке «Тестирование работы геолокации» отображается только IP, все остальные поля пустые. Это означает, что плагин работает некорректно?

Ответ: Предполагаю что за этим IP не закреплены региональные данные. Проверить IP можно на сайтах используемого сервиса геолокации. Подробнее о поддерживаемых плагином сервисах геолокации можно ознакомиться по ссылке.

MAX