GeoIP Content Switcher Security & Risk Analysis

wordpress.org/plugins/geoip-content-switcher

Automatically switches content, payments, shipping, and products based on visitor's country using GeoIP detection.

0 active installs v1.0.5 PHP 7.4+ WP 5.8+ Updated Feb 12, 2026
content-switchercountry-detectiongeoipgeolocationwoocommerce
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Download
Safety Verdict

Is GeoIP Content Switcher Safe to Use in 2026?

Generally Safe

Score 100/100

GeoIP Content Switcher has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 1mo ago
Risk Assessment

The 'geoip-content-switcher' plugin version 1.0.5 exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The absence of known CVEs, dangerous functions, direct SQL queries, file operations, and external HTTP requests is highly positive. The plugin also demonstrates good practices with a significant percentage of properly escaped output and the presence of nonce and capability checks on its entry points. The taint analysis, while showing a high number of flows with unsanitized paths, did not flag any critical or high-severity issues, suggesting that these paths may not lead to exploitable vulnerabilities in this specific version.

However, a notable concern is the presence of 12 flows with unsanitized paths in the taint analysis. While these did not result in critical or high severities, they represent potential weaknesses that could be exploited if a vulnerability is discovered in the future or if the plugin is updated in a way that alters how these paths are handled. The attack surface, consisting of 8 shortcodes, is entirely unprotected by authentication checks, which is acceptable given that shortcodes are generally client-side invoked and not typically direct attack vectors requiring authentication. Overall, the plugin appears to be built with security in mind, but the identified unsanitized paths warrant attention for future hardening.

Key Concerns

  • Flows with unsanitized paths found
Vulnerabilities
None known

GeoIP Content Switcher Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 17, 2026

GeoIP Content Switcher Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
0 prepared
Unescaped Output
10
348 escaped
Nonce Checks
4
Capability Checks
4
File Operations
0
External Requests
0
Bundled Libraries
0

Output Escaping

97% escaped358 total outputs
Data Flows
12 unsanitized

Data Flow Analysis

14 flows12 with unsanitized paths
add_cors_to_rest (geoip-switcher.php:90)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

GeoIP Content Switcher Attack Surface

Entry Points8
Unprotected0

Shortcodes 8

[geoip_country] geoip-switcher.php:174
[geoip_ip] geoip-switcher.php:178
[geoip_country] includes\content-switcher.php:19
[geoip_ip] includes\content-switcher.php:20
[geoip_country] trunk\geoip-switcher.php:174
[geoip_ip] trunk\geoip-switcher.php:178
[geoip_country] trunk\includes\content-switcher.php:19
[geoip_ip] trunk\includes\content-switcher.php:20
WordPress Hooks 84
actionadmin_noticesgeoip-switcher.php:55
actionplugins_loadedgeoip-switcher.php:80
actioninitgeoip-switcher.php:81
actionadmin_menugeoip-switcher.php:82
actionadmin_enqueue_scriptsgeoip-switcher.php:83
actionbefore_woocommerce_initgeoip-switcher.php:84
actioninitgeoip-switcher.php:85
actionrest_api_initgeoip-switcher.php:86
filterrest_pre_serve_requestgeoip-switcher.php:87
actioninitincludes\cache-handler.php:13
filterrocket_cache_reject_uriincludes\cache-handler.php:14
filterlitespeed_cache_get_varyincludes\cache-handler.php:15
filterw3tc_pagecache_reject_requestincludes\cache-handler.php:16
filterwoocommerce_available_payment_gatewaysincludes\content-switcher.php:23
filterwoocommerce_package_ratesincludes\content-switcher.php:24
actionpre_get_postsincludes\content-switcher.php:25
actiontemplate_redirectincludes\content-switcher.php:26
filterwoocommerce_shortcode_products_queryincludes\content-switcher.php:27
filterwoocommerce_products_widget_query_argsincludes\content-switcher.php:28
actionwp_headincludes\content-switcher.php:31
actionwp_footerincludes\content-switcher.php:32
actionpre_get_postsincludes\homepage-switcher.php:19
actionadd_meta_boxesincludes\product-meta.php:13
actionsave_post_productincludes\product-meta.php:14
actionadmin_enqueue_scriptsincludes\product-meta.php:15
filterwc_session_cookie_paramsincludes\session-handler.php:13
filterwoocommerce_cookie_domainincludes\session-handler.php:14
actionwoocommerce_set_cart_cookiesincludes\session-handler.php:15
actionwp_loginincludes\session-handler.php:16
actioninitincludes\session-handler.php:17
actionwoocommerce_add_to_cartincludes\session-handler.php:18
actionwoocommerce_cart_loaded_from_sessionincludes\session-handler.php:19
actionwoocommerce_after_cart_item_quantity_updateincludes\session-handler.php:20
actionwoocommerce_cart_item_removedincludes\session-handler.php:21
actionwoocommerce_cart_item_restoredincludes\session-handler.php:22
actionwoocommerce_after_cartincludes\session-handler.php:23
actiontemplate_redirectincludes\subdomain-redirect.php:18
filterallowed_redirect_hostsincludes\subdomain-redirect.php:19
filterwoodmart_header_idincludes\woodmart-layout-manager.php:27
filterwoodmart_get_optincludes\woodmart-layout-manager.php:28
filterpre_option_page_on_frontincludes\woodmart-layout-manager.php:29
actionpre_get_postsincludes\woodmart-layout-manager.php:30
actionadmin_noticestrunk\geoip-switcher.php:55
actionplugins_loadedtrunk\geoip-switcher.php:80
actioninittrunk\geoip-switcher.php:81
actionadmin_menutrunk\geoip-switcher.php:82
actionadmin_enqueue_scriptstrunk\geoip-switcher.php:83
actionbefore_woocommerce_inittrunk\geoip-switcher.php:84
actioninittrunk\geoip-switcher.php:85
actionrest_api_inittrunk\geoip-switcher.php:86
filterrest_pre_serve_requesttrunk\geoip-switcher.php:87
actioninittrunk\includes\cache-handler.php:13
filterrocket_cache_reject_uritrunk\includes\cache-handler.php:14
filterlitespeed_cache_get_varytrunk\includes\cache-handler.php:15
filterw3tc_pagecache_reject_requesttrunk\includes\cache-handler.php:16
filterwoocommerce_available_payment_gatewaystrunk\includes\content-switcher.php:23
filterwoocommerce_package_ratestrunk\includes\content-switcher.php:24
actionpre_get_poststrunk\includes\content-switcher.php:25
actiontemplate_redirecttrunk\includes\content-switcher.php:26
filterwoocommerce_shortcode_products_querytrunk\includes\content-switcher.php:27
filterwoocommerce_products_widget_query_argstrunk\includes\content-switcher.php:28
actionwp_headtrunk\includes\content-switcher.php:31
actionwp_footertrunk\includes\content-switcher.php:32
actionpre_get_poststrunk\includes\homepage-switcher.php:19
actionadd_meta_boxestrunk\includes\product-meta.php:13
actionsave_post_producttrunk\includes\product-meta.php:14
actionadmin_enqueue_scriptstrunk\includes\product-meta.php:15
filterwc_session_cookie_paramstrunk\includes\session-handler.php:13
filterwoocommerce_cookie_domaintrunk\includes\session-handler.php:14
actionwoocommerce_set_cart_cookiestrunk\includes\session-handler.php:15
actionwp_logintrunk\includes\session-handler.php:16
actioninittrunk\includes\session-handler.php:17
actionwoocommerce_add_to_carttrunk\includes\session-handler.php:18
actionwoocommerce_cart_loaded_from_sessiontrunk\includes\session-handler.php:19
actionwoocommerce_after_cart_item_quantity_updatetrunk\includes\session-handler.php:20
actionwoocommerce_cart_item_removedtrunk\includes\session-handler.php:21
actionwoocommerce_cart_item_restoredtrunk\includes\session-handler.php:22
actionwoocommerce_after_carttrunk\includes\session-handler.php:23
actiontemplate_redirecttrunk\includes\subdomain-redirect.php:18
filterallowed_redirect_hoststrunk\includes\subdomain-redirect.php:19
filterwoodmart_header_idtrunk\includes\woodmart-layout-manager.php:27
filterwoodmart_get_opttrunk\includes\woodmart-layout-manager.php:28
filterpre_option_page_on_fronttrunk\includes\woodmart-layout-manager.php:29
actionpre_get_poststrunk\includes\woodmart-layout-manager.php:30
Maintenance & Trust

GeoIP Content Switcher Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedFeb 12, 2026
PHP min version7.4
Downloads167

Community Trust

Rating100/100
Number of ratings1
Active installs0
Developer Profile

GeoIP Content Switcher Developer Profile

RAJ PATHAK

1 plugin · 0 total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect GeoIP Content Switcher

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/geoip-content-switcher/assets/css/admin-style.css/wp-content/plugins/geoip-content-switcher/assets/js/admin-script.js
Script Paths
/wp-content/plugins/geoip-content-switcher/assets/js/admin-script.js
Version Parameters
geoip-content-switcher/assets/css/admin-style.css?ver=geoip-content-switcher/assets/js/admin-script.js?ver=

HTML / DOM Fingerprints

Shortcode Output
[geoip_country][geoip_ip]
FAQ

Frequently Asked Questions about GeoIP Content Switcher