Geo Controller 9.0.0 is now available. This release focuses on stability, security and compatibility while preserving existing functionality and integrations.
PHP Compatibility
Geo Controller continues to support PHP 7.0 through PHP 8.4. The plugin has been reviewed to operate reliably across older and current PHP environments without requiring users to change their existing setup.
Stable Caching and Shortcodes
Shortcode and Geo Banner caching has been stabilized across WordPress transients, database storage and Redis.
Cache cleanup now works correctly, and Geo Banner data is no longer cached when caching is disabled. Shortcode, GPS, Geo Banner and Google Map attributes have also been stabilized while preserving legacy attribute support.
Optional WordPress REST API
Version 9.0.0 introduces an optional native WordPress REST API transport for public authentication and geolocation lookups.
The existing AJAX transport remains enabled by default, so current websites and integrations will continue working without configuration changes. Administrators can switch to the REST API transport when they are ready.
Existing API responses and access-token behavior remain unchanged.
Stronger Defender Security
Defender settings, previews and bypass-cookie operations are now protected with WordPress capability checks, nonces and HTTP method validation.
Permanent Defender bypass is limited to authenticated administrators with the required permission. Legacy recovery and bot-based bypasses have been removed.
A new single-use recovery link provides temporary access to the standard WordPress login page if an administrator is accidentally blocked by Defender. The recovery link does not authenticate the user or bypass WordPress credentials.
Safer SEO Redirects
Global and page-level SEO settings now use stronger capability, nonce and request-method checks.
This release also fixes postcode matching, country-city redirects and exclusion rules. Empty CSV exports and failed import rollbacks are handled more reliably.
Improved CSS Display Controls
Geo Controller CSS visibility controls no longer force matching elements to use display: block.
Elements can now preserve their original display mode, including flex, grid, inline, inline-block and table layouts. Existing Geo Controller CSS class names remain supported.
Before Updating
Create a current backup and test the update in a staging environment when possible. After updating, clear website and object caches, then verify important shortcodes, Geo Banner rules, Defender restrictions and SEO redirects.
Existing users do not need to switch API transport. AJAX remains the default, while the WordPress REST API is available as an optional mode.
For setup instructions and developer references, visit the Geo Controller documentation.

