[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f-dD1_12Chq_IvXxj3LkJc1zA1WiX-t0rM5O7Q_XmpFQ":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":7,"trust_score":9,"computed_at":10,"plugins":11},"topsyde","https:\u002F\u002Fprofiles.wordpress.org\u002Ftopsyde\u002F",1,30,100,94,"2026-05-20T00:50:59.488Z",[12],{"slug":13,"name":14,"version":15,"author":4,"author_profile":5,"description":16,"short_description":17,"active_installs":7,"downloaded":18,"rating":8,"num_ratings":6,"last_updated":19,"tested_up_to":20,"requires_at_least":21,"requires_php":22,"tags":23,"homepage":22,"download_link":29,"security_score":8,"vuln_count":30,"unpatched_count":30,"last_vuln_date":31,"fetched_at":32},"countrylock","CountryLock","1.0.8","\u003Cp>CountryLock provides a simple, lightweight way to allow or block countries from accessing your WordPress site.\u003C\u002Fp>\n\u003Cp>It’s designed to be \u003Cstrong>“set it and forget it”\u003C\u002Fstrong> with no upsells, ads, or complex configurations.\u003C\u002Fp>\n\u003Ch3>✨ Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Master Toggle:\u003C\u002Fstrong> Enable or disable the firewall with a single click.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Allowed Countries List:\u003C\u002Fstrong> Specify which two-letter country codes (e.g., \u003Ccode>US\u003C\u002Fcode>, \u003Ccode>CA\u003C\u002Fcode>) are allowed. Everyone else is blocked.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin Bypass:\u003C\u002Fstrong> Logged-in administrators can always bypass the block (toggleable).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>IP Allowlist:\u003C\u002Fstrong> A simple list of IPs or CIDR ranges (like \u003Ccode>123.45.67.89\u003C\u002Fcode> or \u003Ccode>10.0.0.0\u002F8\u003C\u002Fcode>) that are always allowed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Block Logging:\u003C\u002Fstrong> See which countries and IPs are being blocked (toggleable).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zero-Lookup Detection:\u003C\u002Fstrong> Automatically uses Cloudflare (\u003Ccode>HTTP_CF_IPCOUNTRY\u003C\u002Fcode>) and other common server-level GEO headers for instant decisions with zero performance impact.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Remote Lookup:\u003C\u002Fstrong> As a fallback, it can query an external service (\u003Ccode>ipapi.co\u003C\u002Fcode>) if no headers are found.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin uses one external service as a fallback to determine a visitor’s country if no local GEO headers (like those from Cloudflare or a server-level GeoIP module) are present.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Service:\u003C\u002Fstrong> \u003Ccode>ipapi.co\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>What it’s used for:\u003C\u002Fstrong> To look up the country of origin for a visitor’s IP address.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong> The visitor’s IP address is sent to the service. This happens \u003Cem>only\u003C\u002Fem> if the “Use remote lookup if no geo headers” setting is enabled AND no local GeoIP headers are detected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service Policies:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fipapi.co\u002Fterms\u002F\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fipapi.co\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Block\u002Fallow countries with one toggle. Lightweight, no upsells. Includes admin bypass, IP allowlist, and block stats.",345,"2025-11-17T14:19:00.000Z","6.8.5","5.0","",[24,25,26,27,28],"block","block-country","country","geo","geoip","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcountrylock.1.0.8.zip",0,null,"2026-04-16T10:56:18.058Z"]