GeoIP Detection

外掛說明

Provides geographic information detected by an IP adress. This can be used in themes or other plugins,
as a shortcode, or via CSS body classes. The city & country names are translated in different languages (supported languages).

Features:

  • 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 IP
    • geoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array()): Lookup Geo-Information of the current website user
    • geoip_detect2_get_current_source_description(...): Return a human-readable label of the currently chosen source.
    • geoip_detect2_get_external_ip_adress(): Fetch the internet adress of the webserver
    • geoip_detect2_get_client_ip(): Get client IP (even if it is behind a reverse proxy)
  • You can use one of these data sources (see comparison):
  • For the property names, see the results of a specific IP in the wordpress backend (under Tools > GeoIP Detection).
  • You can include these properties into your posts and pages by using the shortcode [geoip_detect2 property="country.name" default="(country could not be detected)" lang="en"] (where ‘country.name’ can be one of the other property names as well, and ‘default’ and ‘lang’ are optional).
  • You can show or hide content by using a shortcode [geoip_detect2_show_if country="FR, DE" not_city="Berlin"]TEXT[/geoip_detect2_show_if]. See Shortcode Documentation.
  • When enabled on the options page, it adds CSS classes to the body tag such as geoip-province-HE, geoip-country-DE and geoip-continent-EU.
  • When enabled on the options page, the client IP respects a reverse proxy of the server.
  • 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]
    • A text input that is pre-filled with the detected city (or other property): [geoip_detect2_text_input city property:city lang:fr id:id class:class default:Paris]
    • GeoIP information for the email text: [geoip_detect2_user_info]

See Documentation for more info.

How can I use these functions?

  • You could choose the currency of the store based on the country name
  • You could suggest an timezone to use when displaying dates
  • You could show the store nearest to your customer
  • You show or hide content specific to a geographic target group
  • Etc. … You tell me! I’m rather curious what you’ll do with this plugin!
  • Be careful to comply to the applicable laws. For example Regulation (EU) 2018/302 (going into effect 03 Dec 2018)…

System Requirements: You will need at least PHP 5.4.

GDPR: This plugin does not store any cookie or user-dependent data. If you use a web-based source (hostip.info, Maxmind Precision), the plugin stores all IPs that visited the site in a cache (by default for 7 days) for performance reasons. If you want to disable this behavior, add define('GEOIP_DETECT_READER_CACHE_TIME', 0); in your theme’s function.php. Be especially careful when using this information to change prices or selling options, as this might not be legal.

This extension is “charity-ware”. If you are happy with it, please leave a tip for the benefit of this charity. (See FAQ for more infos.)

This product can provide GeoLite2 data created by MaxMind, available from http://www.maxmind.com.

Troubleshooting

Does geoip_detect2_get_info_from_current_ip() return the same country, regardless of where you are visiting the site from? Maybe your server has a reverse proxy configured. You can check this: Go to the options page and look for “reverse proxy”. Are there 2 IPs listed there? If so, which one corresponds to your public IP?

螢幕擷圖

  • Lookup page (under Tools > GeoIP Lookup)
  • Options page (under Preferences > GeoIP Detection)

安裝方式

  • Install the plugin
  • Go to the plugin’s option page and choose a data source.
  • Test it by clicking on “Lookup” on the lookup page.

使用者評論

閱讀全部 37 則使用者評論

參與者及開發者

GeoIP Detection 外掛為開源軟體。以下人員為這個外掛做出了重大貢獻。

參與者

GeoIP Detection 外掛目前已有 1 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將 GeoIP Detection 外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

2.11.1

  • FIX: When activating the plugin on WordPress MultiSite, an error was thrown before
  • NEW: Add body class “geoip-country-is-in-european-union” if the detected country is inside of the European Union
  • JS/AJAX support for cached pages (Public BETA now. See https://github.com/yellowtree/geoip-detect/wiki/API%3A-AJAX)
  • NEW: If AJAX and body classes are enabled, body classes are added via AJAX.

2.11.0

  • NEW: JS/AJAX support for cached pages (This is in BETA. Read https://github.com/yellowtree/geoip-detect/wiki/API%3A-AJAX on how to activate it)
  • FIX: Improve performance of unpacking the Maxmind file (Source: Automatic download) – important for hosts with a low max_execution_time
  • NEW: On removal (in the Backend), the plugin will delete its options from the database and the downloaded Maxmind file

2.10.0

  • NEW: The whitelisted proxies can now be subnets such as 11.11.11.0/24
  • NEW: Add a ContactForm7-Tag geoip_detect2_text_input (see https://github.com/yellowtree/geoip-detect/wiki/API:-Shortcodes-for-Contact-Form-7#create-a-text-input-that-is-prefilled-with-a-geodetected-property)
  • NEW: A new wordpress filter allows overriding of the detected geo-information inside the geoip_detect2_shortcode_show_if-Shortcode. Use the already-existing filter geoip_detect2_record_information instead if you want to override this information for all shortcodes and API calls.
  • Updated Maxmind vendor code
  • Increased WP minimum version to 4.0

2.9.2

  • FIX: ContactForm7-Mailtag disabled mailtags from other plugins.

2.9.1

  • NEW: Add ContactForm7-Mailtags so that the user information formatting can be customized: geoip_detect2_get_client_ip, geoip_detect2_get_current_source_description, geoip_detect2_property_country, geoip_detect2_property_state, geoip_detect2_property_city. Of course you can still use geoip_detect2_user_info as shortcode for all these informations.
  • FIX: On some server, the plugin had wrongly assumed that PHP was compiled without IPv6-support.

2.9.0

  • Add default Privacy text for GDPR compliance.
  • The reverse proxy logic was heavily changed. If you run into configuration errors, try the debug panel (see link after the reverse proxy option).
  • NEW: Reverse proxies can now be whitelisted – all non-whitelisted proxies are treated as user IP.
  • NEW: Shortcode to show/hide content dynamically. ([geoip_detect2_show_if country="US" not_state="Texas"]TEXT[/geoip_detect2_show_if]) (Thanks to @DynAggelos!)
  • NEW: All shortcodes now support multiple subdivisions ([geoip_detect2 property="subdivisions.0.isoCode"])
  • NEW: The CSS classes that are added to the body-tag (if enabled in the options) now also include the most specific subdivision (geoip-province-HE).
  • Maxmind vendor code was updated to the current version (2.9.0).

Older changelog