Documentation
GeoBlock
Compatibility

Compatibility

GeoBlock includes a dedicated compatibility layer for popular plugins. Integrations are loaded automatically only when the relevant plugin is detected.

Compatibility Matrix

PluginSupportedNotes
WPML✅ YesRules shared across all languages
Price Based on Country✅ YesPrice filter priority resolved
WooCommerce Product Bundles✅ YesApply rules to bundle parent
WooCommerce Subscriptions✅ YesAll subscription types supported
WP Rocket✅ YesProduct pages excluded from cache
Speed Optimizer by SiteGround✅ YesProduct pages excluded from cache
High-Performance Order Storage (HPOS)✅ YesDeclared compatible

WPML

When WPML is active, each product exists as multiple translated copies with different post IDs. GeoBlock resolves any translated product ID back to the original (default language) product before reading its restriction rules. This means you only need to set rules on the original product - all translations respect the same country rules automatically.


Price Based on Country for WooCommerce

This plugin modifies the woocommerce_get_price_html filter (priority 10) to show country-specific prices. In GeoBlock's Message mode, the price is replaced by the restriction notice. GeoBlock runs an additional filter at priority 5 to short-circuit Price Based on Country on restricted products, preventing the price from being modified before it is hidden.


WooCommerce Product Bundles

GeoBlock applies restrictions to the bundle product itself. Bundled child items are not checked individually - restricting a child would break the bundle silently without a clear user-facing message. Apply rules to the bundle parent product instead.

The woocommerce_bundle_is_purchasable filter is hooked at priority 15 to ensure GeoBlock runs after WooCommerce Bundles' own purchasability logic.


WooCommerce Subscriptions

subscription and variable-subscription product types are supported through the woocommerce_subscription_is_purchasable and woocommerce_variable_subscription_is_purchasable filters. Restricted subscription products are blocked from purchase in the same way as standard products.


WP Rocket

WP Rocket caches full HTML pages. If a cached page were served to a restricted visitor, they would see the unrestricted version. GeoBlock prevents this by setting the DONOTCACHEPAGE constant on all single product pages.

💡

Use Geolocate (with page caching support) in WooCommerce geolocation settings. This mode uses an AJAX request for detection and is inherently safe with full-page caching.


Speed Optimizer by SiteGround

GeoBlock sets the SGCACHENOCACHE constant on product pages and hooks into the sgo_bypass_cache filter to ensure SiteGround Speed Optimizer's server-level cache is bypassed for single product pages.