We recommend the MaxMind lookup method for the GeoIP Order Blocking Addon module in WHMCS. It strikes the best balance between ease of deployment and functionality, requiring neither additional PHP extensions nor reliance on remote services for every lookup. You will, however, need to update the GeoIP.dat database file in the addon's data directory approximately monthly.

Accurate GeoIP lookups are critical for the Order Blocking Addon to effectively prevent orders from unwanted geographic regions at checkout. Incorrect method selection can lead to setup failures, performance degradation during cart submission, or unreliable blocking that either permits fraudulent orders or frustrates legitimate customers. The addon currently supports three distinct approaches, each with specific server prerequisites and operational characteristics that should be evaluated against your hosting environment and traffic patterns.

#Supported GeoIP Lookup Methods

Currently we support 3 different GeoIP lookup methods. Each method is described below, each method has different pros and cons and requirements. Selection depends on whether your priority is zero server configuration, fastest possible lookup times, or tolerance for remote API calls.

#Native Method

The Native method uses the PHP GeoIP extension. Requires that you have the extension installed and fully configured on your server. While it provides local and efficient lookups without external dependencies, our research shows that the GeoIP extension is not commonly installed by default on production servers. This makes the method more difficult to adopt and our last recommendation unless the extension is already present and operational in your environment.

#MaxMind Method

The MaxMind method utilizes the PHP Maxmind API and a local GeoIP.dat database file. Nothing is required in terms of PHP extensions, but we recommend you keep the GeoIP.dat database up-to-date. They usually update once a month around the beginning of each month. The database file must be placed in the addon's data directory. In our tests the MaxMind method is slightly more resource intensive than the other two methods, but we find it easier as it requires nothing configured or installed with PHP.

#GeoPlugin Method

The GeoPlugin method uses the GeoPlugin.net remote service. Requires that you have the PHP CURL extension and is limited to 120 lookups per minute. Because each lookup involves an outbound HTTP request, this method does slightly slow the final checkout page load. It serves as a reasonable fallback when local database maintenance is not practical but should be monitored for rate-limit issues during peak order periods.

#Our Recommendation and Testing Results

We recommend using the MaxMind method as it requires no PHP extensions or configuration. However you will need to keep the GeoIP.dat database in the addon's data directory up-to-date. The GeoPlugin.net service would be our next recommendation, however it does slightly slow the final checkout as it uses a remote service to do the GeoIP lookup. The native method would be our last recommendation as it requires the GeoIP extension which in our research is not commonly installed. These conclusions come from tests on multiple server configurations measuring CPU usage, checkout latency, and administrative effort required to maintain each option.

#Maintenance and Common Pitfalls

For MaxMind, download the latest country database from MaxMind and overwrite the existing file in the addon data directory each month. Common pitfalls include using stale database files that produce incorrect country mappings, failing to enable the CURL extension before selecting GeoPlugin, and exceeding the 120 lookup-per-minute limit during high-traffic events. The Native method can also fail silently if the extension was compiled against an incompatible libgeoip version. Always test the selected method by simulating checkouts from different IP ranges after configuration changes.

Start with MaxMind in the addon settings, verify database freshness, and monitor order logs for the first week. This approach delivers reliable blocking with the least ongoing server administration. For full configuration steps see the addon installation guide included with the module.