Описание
Предоставляет географическую информацию, определяемую по 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.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/