{"id":238647,"date":"2025-06-30T12:43:51","date_gmt":"2025-06-30T12:43:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/restrict-admin-login-by-country-grc\/"},"modified":"2026-07-24T13:11:25","modified_gmt":"2026-07-24T13:11:25","slug":"restrict-admin-login-by-country-grc","status":"publish","type":"plugin","link":"https:\/\/fi.wordpress.org\/plugins\/restrict-admin-login-by-country-grc\/","author":13210680,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.0","stable_tag":"2.5.0","tested":"7.0.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"GeoGuard WP - GRC","header_author":"Robert G.","header_description":"Blocks admin\/shop_manager\/editor\/author logins from countries other than the allowed list. Uses ipinfo.io for IP detection and restcountries.com for a dynamic country list.","assets_banners_color":"","last_updated":"2026-07-24 13:11:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/profiles.wordpress.org\/robertutzu\/","header_author_uri":"https:\/\/profiles.wordpress.org\/robertutzu\/","rating":0,"author_block_rating":0,"active_installs":20,"downloads":812,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.5":{"tag":"1.5","author":"robertutzu","date":"2026-02-20 12:12:57"},"1.6":{"tag":"1.6","author":"robertutzu","date":"2026-02-20 12:22:03"},"1.9":{"tag":"1.9","author":"robertutzu","date":"2026-07-24 11:23:15"},"2.0":{"tag":"2.0","author":"robertutzu","date":"2026-07-24 10:06:46"},"2.2.0":{"tag":"2.2.0","author":"robertutzu","date":"2026-07-24 11:44:51"},"2.3.2":{"tag":"2.3.2","author":"robertutzu","date":"2026-07-24 12:06:31"},"2.3.9":{"tag":"2.3.9","author":"robertutzu","date":"2026-07-24 12:04:02"},"2.4.0":{"tag":"2.4.0","author":"robertutzu","date":"2026-07-24 12:21:22"},"2.5.0":{"tag":"2.5.0","author":"robertutzu","date":"2026-07-24 13:11:25"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3320070,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3320070,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5","1.6","1.9","2.0","2.2.0","2.3.2","2.3.9","2.4.0","2.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[3751,1174,602,603,600],"plugin_category":[49,54],"plugin_contributors":[162797],"plugin_business_model":[],"class_list":["post-238647","plugin","type-plugin","status-publish","hentry","plugin_tags-country","plugin_tags-firewall","plugin_tags-login","plugin_tags-registration","plugin_tags-security","plugin_category-maps-and-location","plugin_category-security-and-spam-protection","plugin_contributors-robertutzu","plugin_committers-robertutzu"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/restrict-admin-login-by-country-grc\/assets\/icon-128x128.png?rev=3320070","icon_2x":"https:\/\/ps.w.org\/restrict-admin-login-by-country-grc\/assets\/icon-256x256.png?rev=3320070","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>GeoGuard WP - GRC<\/strong> is a lightweight, high-performance security plugin designed to protect your WordPress administrative dashboard and user registration endpoints from unauthorized geographic login and sign-up attempts. By restricting configurable user roles based on visitor country origin, you drastically reduce brute-force and credential-stuffing attacks originating from outside your trusted operating regions.<\/p>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li><strong>Zero-Dependency Local MaxMind Parser:<\/strong> Includes a built-in custom binary <code>.mmdb<\/code> parser capable of reading MaxMind GeoLite2-Country databases directly without requiring external PHP extensions like <code>geoip<\/code> or <code>maxminddb<\/code>.<\/li>\n<li><strong>Intuitive Checkbox Selection:<\/strong> Easily select allowed countries and targeted user roles using clean, scrollable checkbox interface lists in the WordPress backend settings panel.<\/li>\n<li><strong>Flexible Action Modes:<\/strong> Choose whether to block login requests, block account creations\/registrations, block both, or temporarily disable restrictions entirely.<\/li>\n<li><strong>Automatic Daily Database Updates:<\/strong> Schedules a daily cron event to automatically mirror and update the latest GeoLite2 country database.<\/li>\n<li><strong>Manual Database Download:<\/strong> Allows administrators to fetch or refresh the database instantly from the settings panel.<\/li>\n<li><strong>Smart IP Detection:<\/strong> Inspects proxy headers while ensuring protection against header spoofing and filtering out private\/reserved IP ranges.<\/li>\n<li><strong>Fail-Safe Protection:<\/strong> Permanently locks your installer's country code into the permitted checkbox list, preventing accidental lockouts.<\/li>\n<\/ul>\n\n<!--section=changelog-->\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Renamed plugin to GeoGuard WP - GRC.<\/li>\n<li>Replaced multi-select dropdowns with clean, scrollable checkbox lists for both countries and user roles.<\/li>\n<li>Added a new restriction action setting allowing administrators to independently choose whether to block logins, block account registrations, or block both.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Added granular settings to choose which specific user roles are subjected to country login restrictions.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Initial public release with native binary .mmdb parser, automated daily cron mirror updates, and fail-safe installer country protection.<\/li>\n<\/ul>","raw_excerpt":"Blocks unauthorized role logins and account registrations from restricted countries using local MaxMind databases with customizable checkbox controls.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238647","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238647"}],"author":[{"embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/robertutzu"}],"wp:attachment":[{"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238647"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238647"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238647"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238647"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238647"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}