{"id":231409,"date":"2025-05-18T22:08:55","date_gmt":"2025-05-18T22:08:55","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/geo-blocker-country-ip-access-control-for-wp\/"},"modified":"2025-05-18T22:09:57","modified_gmt":"2025-05-18T22:09:57","slug":"geo-blocker","status":"publish","type":"plugin","link":"https:\/\/am.wordpress.org\/plugins\/geo-blocker\/","author":23191260,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.8.5","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Geo Blocker \u2013 Control Site Access by Region and IP","header_author":"medshi","header_description":"Blocks website access based on visitor's geolocation using the ipwho.is API.","assets_banners_color":"6b91da","last_updated":"2025-05-18 22:09:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/geo-blocker\/","header_author_uri":"https:\/\/profiles.wordpress.org\/medshi8\/","rating":5,"author_block_rating":0,"active_installs":700,"downloads":1856,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description"],"tags":{"1.0.0":{"tag":"1.0.0","author":"medshi8","date":"2025-05-18 22:09:57"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3295975,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3295975,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3295975,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3295975,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3295975,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3295975,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3295975,"resolution":"3","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,19870,242487,4124,1951],"plugin_category":[49],"plugin_contributors":[241247],"plugin_business_model":[],"class_list":["post-231409","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-country-restriction","plugin_tags-geo-blocking","plugin_tags-geolocation","plugin_tags-ip-blocker","plugin_category-maps-and-location","plugin_contributors-medshi8","plugin_committers-medshi8"],"banners":{"banner":"https:\/\/ps.w.org\/geo-blocker\/assets\/banner-772x250.png?rev=3295975","banner_2x":"https:\/\/ps.w.org\/geo-blocker\/assets\/banner-1544x500.png?rev=3295975","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/geo-blocker\/assets\/icon-128x128.png?rev=3295975","icon_2x":"https:\/\/ps.w.org\/geo-blocker\/assets\/icon-256x256.png?rev=3295975","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/geo-blocker\/assets\/screenshot-1.png?rev=3295975","caption":""},{"src":"https:\/\/ps.w.org\/geo-blocker\/assets\/screenshot-2.png?rev=3295975","caption":""},{"src":"https:\/\/ps.w.org\/geo-blocker\/assets\/screenshot-3.png?rev=3295975","caption":""}],"raw_content":"<!--section=description-->\n<p>\ud83d\udd10 Block or allow visitors by country. Track access attempts. View analytics. Stay in control \u2014 effortlessly.<\/p>\n\n<h3>\ud83e\udde0 Description<\/h3>\n\n<p><strong>Geo Blocker<\/strong> gives you full control over who can access your WordPress site \u2014 based on visitor country and IP. Whether you're protecting content, reducing attack surface, or managing regional access, this plugin does it with precision and clarity.<\/p>\n\n<p>\ud83c\udfaf Designed for performance, security, and ease of use.<br \/>\n\ud83d\udcca Built-in analytics and access logs.<br \/>\n\ud83e\udded Never get locked out \u2014 admin-safe bypass included.<\/p>\n\n<h3>\ud83d\ude80 Features<\/h3>\n\n<h3>\u2705 Access Control That Makes Sense<\/h3>\n\n<ul>\n<li><strong>Block Selected Countries<\/strong> \u2013 deny access to specific regions  <\/li>\n<li><strong>Allow Selected Countries<\/strong> \u2013 restrict site only to approved countries  <\/li>\n<\/ul>\n\n<h3>\ud83e\udde9 Smart Blocking Actions<\/h3>\n\n<ul>\n<li>\ud83d\udcdc Show custom message  <\/li>\n<li>\ud83d\udd01 Redirect to a URL  <\/li>\n<li>\ud83d\udeab Send HTTP 403 Forbidden response  <\/li>\n<\/ul>\n\n<h3>\ud83c\udf10 Visual Country Selector<\/h3>\n\n<ul>\n<li>Flag icons &amp; search bar for quick targeting  <\/li>\n<li>Filter by continent (Africa, Asia, Europe, etc.)  <\/li>\n<li>One-click select\/deselect all  <\/li>\n<\/ul>\n\n<h3>\ud83d\udcc8 Analytics Dashboard<\/h3>\n\n<ul>\n<li>Summary cards: total visits, blocks, IPs  <\/li>\n<li>Hourly charts for real-time insights  <\/li>\n<li>Filter by date range &amp; data type (accesses, unique IPs, etc.)  <\/li>\n<\/ul>\n\n<h3>\ud83d\udccb Detailed Logs<\/h3>\n\n<ul>\n<li>See IP, country, URL, status, user agent  <\/li>\n<li>Filters out common junk (favicon, robots.txt)  <\/li>\n<li>Admin visits are auto-ignored to reduce noise  <\/li>\n<\/ul>\n\n<h3>\ud83d\udee0\ufe0f Admin-Proof Bypass URL<\/h3>\n\n<ul>\n<li>Special URL with bypass parameter to access login anytime  <\/li>\n<li>Prevents accidental lockouts  <\/li>\n<\/ul>\n\n<h3>\ud83d\udd04 Data Export &amp; Log Management<\/h3>\n\n<ul>\n<li>Export logs in CSV or JSON  <\/li>\n<li>Clear logs with a single click  <\/li>\n<li>Sort &amp; search logs in the UI<\/li>\n<\/ul>\n\n<h3>\ud83c\udf10 External Services<\/h3>\n\n<p>This plugin uses a third-party API to determine the visitor's country based on their IP address.<\/p>\n\n<ul>\n<li><strong>Service used:<\/strong> <a href=\"https:\/\/ipwho.is\">IPWho.is<\/a>  <\/li>\n<li><strong>Purpose:<\/strong> To perform IP geolocation and detect the country of each visitor, allowing the plugin to block or allow access accordingly.  <\/li>\n<li><strong>Data sent:<\/strong> The visitor\u2019s IP address is sent to the IPWho.is API on page load when geo-blocking is active.  <\/li>\n<li><strong>Terms of Service:<\/strong> <a href=\"https:\/\/ipwhois.io\/terms\">https:\/\/ipwhois.io\/terms<\/a>  <\/li>\n<li><strong>Privacy Policy:<\/strong> <a href=\"https:\/\/ipwhois.io\/privacy\">https:\/\/ipwhois.io\/privacy<\/a><\/li>\n<\/ul>\n\n<h3>\ud83d\udda5\ufe0f Screenshots<\/h3>\n\n<ol>\n<li><strong>\ud83d\udcca Dashboard Overview<\/strong> \u2013 See country blocks, allowed hits &amp; total attempts   <\/li>\n<li><strong>\ud83d\udd27 Blocking Rules<\/strong> \u2013 Choose block mode, action type, and targets. Enable or disable countries visually<\/li>\n<li><strong>\ud83d\udcc9 Analytics Graphs<\/strong> \u2013 View access by time, state, and IP 5. <strong>\ud83d\udcd1 Logs Table<\/strong> \u2013 Deep insights with full logs of visitor attempts. Export CSV\/JSON logs with one click<\/li>\n<\/ol>\n\n<h3>\ud83d\udce6 Installation<\/h3>\n\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/geo-blocker<\/code>  <\/li>\n<li>Activate via <strong>Plugins \u2192 Installed Plugins<\/strong>  <\/li>\n<li>Go to <strong>Settings \u2192 Geo Blocker<\/strong>  <\/li>\n<li>Enable Geo Blocking using the toggle  <\/li>\n<li>Choose between <strong>block<\/strong> or <strong>allow<\/strong> mode  <\/li>\n<li>Select countries using the visual interface  <\/li>\n<li>Pick your blocking action (message, redirect, or 403)  <\/li>\n<li>Save settings \u2014 done!<\/li>\n<\/ol>\n\n<h3>\u2753 Frequently Asked Questions<\/h3>\n\n<h3>How does Geo Blocker detect country?<\/h3>\n\n<p>It uses the reliable <strong>IpWhoIs API<\/strong> to fetch country data based on the visitor\u2019s IP.<\/p>\n\n<h3>Will it slow down my site?<\/h3>\n\n<p>Nope. It's optimized with <strong>transient caching<\/strong> and smart triggers \u2014 no unnecessary lookups.<\/p>\n\n<h3>Can I lock myself out?<\/h3>\n\n<p>No. There's a <strong>login bypass URL<\/strong> generated for administrators \u2014 shown right on the dashboard.<\/p>\n\n<h3>Can I block specific pages?<\/h3>\n\n<p>Not yet \u2014 current version works site-wide. Per-page rules may come in a future update.<\/p>\n\n<h3>Can I export visitor logs?<\/h3>\n\n<p>Yes. Logs can be exported in <strong>CSV or JSON<\/strong> format directly from the Logs tab.<\/p>\n\n<h3>Does it work with caching plugins?<\/h3>\n\n<p>Yes, but you may need to <strong>exclude the plugin's logic<\/strong> from caching. Dynamic geo checks should not be cached.<\/p>\n\n<h3>\ud83d\uddc2\ufe0f Changelog<\/h3>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>\ud83c\udf89 Initial release with all core features<\/li>\n<\/ul>\n\n<h3>\ud83d\udee1\ufe0f Additional Notes<\/h3>\n\n<h3>Emergency Bypass<\/h3>\n\n<p>Every admin gets a custom bypass link to avoid accidental lockouts. It\u2019s always visible in the dashboard.<\/p>\n\n<h3>Blocking Actions<\/h3>\n\n<p>Choose the experience blocked users receive:\n- Custom message\n- Redirect to another URL\n- Send 403 Forbidden header<\/p>\n\n<h3>Logs &amp; Privacy<\/h3>\n\n<p>Logs are stored locally in your WordPress database. The plugin sends only the visitor's IP to IPWho.is \u2014 no personally identifiable information is shared or stored externally.<\/p>\n\n\n\n<h3>\ud83d\udca1 Enjoying Geo Blocker? Try Our Other Free Plugins<\/h3>\n\n<p>Looking for even more control and peace of mind? Check out our other tools:<\/p>\n\n<p>\ud83d\udd15 <strong><a href=\"https:\/\/wordpress.org\/plugins\/notification-blocker\/\">Notification Blocker<\/a><\/strong> \u2013 Hide annoying plugin notices from your dashboard without hacking core files.<\/p>\n\n<p>\ud83d\udee1\ufe0f <strong><a href=\"https:\/\/wordpress.org\/plugins\/fortress-login-pro\/\">Fortress Login Pro<\/a><\/strong> \u2013 Obscure your login page, add brute-force protection, and block unauthorized access attempts with ease.<\/p>\n\n<p>If you like Geo Blocker, you\u2019ll probably find these just as helpful. Try them out!<\/p>","raw_excerpt":"\ud83d\udd10 Block or allow visitors by country. Track access attempts. View analytics. Stay in control \u2014 effortlessly.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/231409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=231409"}],"author":[{"embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/medshi8"}],"wp:attachment":[{"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=231409"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=231409"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=231409"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=231409"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=231409"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/am.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=231409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}