Описание
Предоставляет географическую информацию, определяемую по IP-адресу. Ее можно использовать в темах или других плагинах, в качестве шорткода или через классы CSS body. Названия городов и стран переводятся на разные языки(поддерживаемые языки).
Возможности:
- You can use one of these data sources (see comparison):
- Free (default source): HostIP.info (IPv4 only)
- Бесплатно с регистрацией: Maxmind GeoIP2 Lite City, автоматически обновляется еженедельно
- Коммерческие: Maxmind GeoIP2 City или Maxmind GeoIP2 Country
- Коммерческий Web-API: Maxmind GeoIP2 Precision (Город, Страна или Озарение)
- Зависимость от хостинг-провайдера: Cloudflare или Amazon AWS CloudFront (страна)
- Бесплатные или коммерческие Web-API: Ipstack
- Коммерческий Web-API через AWS Marketplace: Fastah
- Provides these 5 functions (see API Documentation):
geoip_detect2_get_info_from_ip($ip, $locales = array('en'), $options = array()): Lookup Geo-Information of the specified IPgeoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array()): Поиск геоинформации о текущем пользователе сайтаgeoip_detect2_get_current_source_description(...): Возвращает человекочитаемую метку текущего выбранного источника.geoip_detect2_get_external_ip_adress(): Получение интернет-адреса веб-сервераgeoip_detect2_get_client_ip(): Получение IP-адреса клиента (даже если он находится за обратным прокси)
- Что касается имен свойств, посмотрите результаты для определенного IP в бекенде wordpress (в разделе Инструменты > Определение IP геолокации).
- Вы можете включить эти свойства в свои посты и страницы с помощью шорткода
[geoip_detect2 property="country.name" default="(country could not be detected)" lang="en"](где ‘country.name’ может быть одним из других имен свойств, а ‘default’ и ‘lang’ необязательны). - Вы можете показывать или скрывать содержимое с помощью шорткода
[geoip_detect2_show_if country="FR, DE" not_city="Berlin"]TEXT[/geoip_detect2_show_if]. См. документацию по шорткодам. - При включении на странице параметров он добавляет в тег body такие CSS-классы, как
geoip-province-HE,geoip-country-DEиgeoip-continent-EU. - Если вы используете кэш страниц, рекомендуется использовать режим AJAX (см. AJAX)
- Если эта опция включена на странице параметров, IP-адрес клиента использует обратный прокси-сервер.
- If you are using Contact Form 7, you can use these shortcodes:
- A select input with all countries, the detected country being selected by default:
[geoip_detect2_countries mycountry] - Текстовый ввод, который предварительно заполняется обнаруженным городом (или другим свойством):
[geoip_detect2_text_input city property:city lang:fr id:id class:class default:Paris] - Информация о геолокации для текста сообщения электронной почты:
[geoip_detect2_user_info]
- A select input with all countries, the detected country being selected by default:
- If you are using WP Forms, you can use this shortcode:
- Информация о геолокации для текста сообщения электронной почты:
[geoip_detect2_user_info]
- Информация о геолокации для текста сообщения электронной почты:
- Вместе с SVG Flags вы можете показать флаг обнаруженной страны:
[geoip_detect2_current_flag](см. документацию)
Дополнительную информацию см. в разделе Документация.
Как использовать эти функции?
- Вы можете выбрать валюту магазина в зависимости от названия страны
- Вы можете предварительно заполнить страну доставки
- Вы можете показать ближайший к клиенту магазин
- Вы показываете или скрываете контент, предназначенный для географической целевой группы
- И т.д. … Расскажите мне! Мне очень интересно, что вы будете делать с этим плагином!
- Будьте внимательны к соблюдению действующего законодательства. Например, Регламент (ЕС) 2018/302 …
- Если вам нужно узнать часовой пояс пользователя, то точнее будет использовать JS-решения.
Системные требования: Вам понадобится как минимум PHP 7.2.5 . Также, если вы используете плагин WooCommerce, вам понадобится версия не ниже WooCommerce 3.9.0 .
GDPR: См. раздел Соответствует ли этот плагин требованиям GDPR?
Это расширение является «благотворительным». Если вы довольны им, пожалуйста, оставьте чаевые в пользу этой благотворительной организации. (См. FAQ для получения дополнительной информации)
Вот другие способы внести свой вклад в разработку этого плагина.
Этот продукт может предоставлять данные GeoLite2, созданные MaxMind, доступные на сайте http://www.maxmind.com.
Устранение ошибок
- Возвращает ли функция
geoip_detect2_get_info_from_current_ip()одну и ту же страну, независимо от того, откуда вы заходите на сайт? - Возможно, на вашем сервере настроен обратный прокси. Вы можете проверить это: Перейдите на страницу параметров и найдите «обратный прокси». Указаны ли там 2 IP-адреса? Если да, то какой из них соответствует вашему публичному IP?
- Или, возможно, вы используете плагин кэширования сайта. Тогда включите опцию
Отключить кэширование страницы, содержащей шорткод или API-вызов геозависимых функций.
Скриншоты
Установка
- Установите плагин
- Перейдите на страницу настроек плагина и выберите источник данных.
- Проверьте его, нажав на кнопку «Lookup» на странице поиска.
Часто задаваемые вопросы
Технически говоря, как я могу проверить, приехал ли мой посетитель из Германии?
Как показать текст только в том случае, если посетитель пришел из Германии?
Как добавить название текущей страны в качестве текста на страницу?
Какой источник данных выбрать?
Можно ли изменить период времени, в течение которого данные будут кэшироваться?
Работает ли этот плагин в многосайтовой сети?
Соответствует ли этот плагин требованиям GDPR?
Что означает «Исключения из конфиденциальности»?
Что вы имеете в виду, говоря «Этот плагин является благотворительным»?
-
Дополнительная документация
Отзывы
Участники и разработчики
«Обнаружение IP-адресов с геолокацией» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Обнаружение IP-адресов с геолокацией» переведён на 3 языка. Благодарим переводчиков за их работу.
Перевести «Обнаружение IP-адресов с геолокацией» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
5.6.1
- FIX [!]: Remove deprecated shortcode [geoip_detect] (Security — CVE-2025-57993). If you are still using it, use [geoip_detect2 …] instead, you might have to change the property name.
- FIX: Compatibility with WordPress 6.7 (Textdomain loading)
- Обновления в библиотеке
(5.6.0 was not released)
5.5.0
- FIX [!]: In the datasource «hostip.info», the region code (i.e. CA) is now correctly moved to the property
mostSpecificSubdivision(previously, it was part of the propertycity) - Обновления в библиотеке
5.4.1
- NEW: JS now emit events ‘geoip-detect-shortcodes-done’ and ‘geoip-detect-body-classes-done’, see https://github.com/yellowtree/geoip-detect/wiki/API:-AJAX#events
- FIX: Remove Fatal Error in check_requirements («Undefined constand GEOIP_DETECT_DEBUG»)
5.4.0
- NEW: Infos can be added to a mail sent by WPForms (with Smart Tag
{geoip_detect2_user_info}) - FIX: Remove Fatal Error on uninstall («Undefined constand GEOIP_DETECT_DEBUG»)
- Обновления в библиотеке
5.3.2
- ИСПРАВЛЕНО: Некоторые коды стран, такие как «PT», отсутствовали в (устаревшем) отображении устаревшего API.
- ИСПРАВЛЕНО: Совместимость с Maxmind больше не показывает уведомление, когда папка плагина нестандартна (например, из-за симлинков) или имя файла заканчивается на Reader.php
- Обновления в библиотеке
5.3.1
- ИСПРАВЛЕНО: Уважать вариант файла JS
- UI: Показывать выбранный вариант файла в опциях бэкенда
- Обновления в библиотеке
5.3.0
- НОВОЕ: Теперь можно указать вариант JS-файла, если вы используете только часть функций (см. https://github.com/yellowtree/geoip-detect/wiki/API:-AJAX#js-variants)
- Примечание[!]: frontend.js теперь переименован в frontend_full.js
- Обновления в библиотеке
5.2.2
- ИСПРАВЛЕНО: Формат новых лицензионных ключей Maxmind изменился. (Существующие лицензионные ключи продолжают работать)
(5.2.1 был нерабочим релизом)
5.2.0
- НОВОЕ: Список обратных прокси-серверов AWS CloudFront или CloudFlare теперь можно добавить в качестве «известного прокси»
- ИСПРАВЛЕНО [!]: Имя заголовка AWS Cloudfront изменено на HTTP_CLOUDFRONT_VIEWER_COUNTRY
- Уменьшение размера JS (режим AJAX)
- Обновления в библиотеке
5.1.1
- НОВОЕ: Для конфигурации обратного прокси внутренние адреса (например, 10.0.0.0/8) теперь по умолчанию заносятся в белый список. Вы можете отменить это поведение, используя фильтр wordpress
geoip_detect2_client_ip_whitelist_internal_ips. - НОВОЕ: Классы тел теперь включают название города на английском языке (например, geoip-city-Munich)
- ИСПРАВЛЕНО: В некоторых конфигурациях сервера появлялось это предупреждение: Использование неопределенной константы CURL_HTTP_VERSION_2_0
5.1.0
Новый источник данных: Fastah Web API (бета-версия), см. https://aws.amazon.com/marketplace/pp/prodview-k5gjowexrefl2
Режим AJAX:
* НОВОЕ: JS-функция geoip_detect.set_override_with_merge может изменять запись переопределения в одном свойстве, объединяя ее с текущим сохраненным свойством
Другие незначительные изменения:
* ИСПРАВЛЕНО: В режиме без AJAX свойства, такие как «extra.original.zip», могут быть доступны снова
* ИСПРАВЛЕНО: Автоматическая загрузка базы данных Maxmind теперь работает и в том случае, если временная папка доступна для групповой/мировой записи (как в конфигурациях AWS)
* Если вы хотите включить больше предупреждений (например, при отладке), вы можете добавить define('GEOIP_DETECT_DEBUG', true) в ваш wp-config.php или около того.
* Обновления библиотеки
5.0.0
В этом выпуске есть небольшие изменения, отмеченные [!].
Режим AJAX:
* ИСПРАВЛЕНО [!]: Пустые значения атрибутов, такие как [geoip_detect2_show_if country=""]Страна не обнаружена[/geoip_detect2_show_if], теперь работают (раньше они игнорировались)
* ИСПРАВЛЕНО [!]: Шорткоды, имеющие недопустимое значение свойства ajax (например, [geoip_detect2_text_input ajax="invalid"]), теперь используют опцию AJAX вместо того, чтобы всегда отключать AJAX
* ИСПРАВЛЕНО: В CF7 селектор страны теперь можно использовать в режиме AJAX
* ИСПРАВЛЕНО: В режиме AJAX шорткод [geoip_detect2_show_if] отображается как <div>, если он обнаруживает, что в содержащемся контенте есть элементы уровня HTML-блока
* НОВОЕ (бета-версия): В режиме AJAX новое свойство autosave сохраняет пользовательский ввод как локальное переопределение для этого браузера. [geoip_detect2_countries mycountry autosave] и [geoip_detect2_text_input city property:city autosave]. (Пожалуйста, дайте обратную связь, если это работает так, как ожидалось!)
* ИСПРАВЛЕНО: В режиме AJAX вызов метода set_override(record, duration_in_days) теперь обновляет шорткоды AJAX и классы CSS body.
-> Таким образом, теперь можно быстро реализовать различный контент для разных стран с автоопределением страны по умолчанию, см. https://github.com/yellowtree/geoip-detect/wiki/API-Usage-Examples#country-selector-that-can-be-overridden-by-the-user
Другие изменения:
* НОВОЕ: Значительное повышение производительности, если поиск выполняется для текущего IP более одного раза (например, из-за шорткодов без режима AJAX)
* UI: Отображение времени для последующего поиска на странице Test Lookup
* ИСПРАВЛЕНО: Maxmind Datasource: Проверка, действительно ли файл базы данных является файлом, а не директорией
* НОВОЕ: Источник данных Header: Теперь пользовательский HTTP-заголовок может быть использован через фильтр wordpress geoip_detect2_source_header_http_key
Другие мелкие изменения:
* Обновление списка доступных API для получения внешнего IP (так как whatismyip не работает)
* Минимальная версия WordPress теперь 5.4.
* Обновление некоторых внутренних библиотек & инструментов разработчика
* Проверена совместимость с PHP 8.1
Код плагина практически не изменился, я назвал эту версию 3.0, чтобы обозначить основные изменения со стороны Maxmind. Они объясняют это в этой записи в блоге:
https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/


