=== EU Access Blocker ===
Contributors: site-administrator
Tags: geoblocking, eu, ai-engine
Requires at least: 5.8
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPL-2.0-or-later

An independent WordPress add-on that blocks public browser and public REST requests where the web host or CDN identifies the IP address as being in one of the 27 EU member states.

== Installation ==

1. Download `eu-access-blocker.zip`.
2. In WordPress, open Plugins, Add New, Upload Plugin.
3. Upload the ZIP and activate it.

== Important configuration ==

This plugin does not ask a third party to look up visitor IP addresses. It needs one of these server headers supplied by a trusted proxy or host:

* Cloudflare: `CF-IPCountry` (enable IP Geolocation in Cloudflare).
* Vercel: `X-Vercel-IP-Country`.
* Fastly: `Fastly-Client-Country-Code`.
* Amazon CloudFront: `CloudFront-Viewer-Country`.

Configure the origin/proxy so a visitor cannot send or spoof those headers directly. Without a valid header, this plugin allows the request. Test in a private browser session from a known EU and non-EU network before relying on it.

The default list is the 27 EU member states. EEA-only countries (Iceland, Liechtenstein and Norway), the United Kingdom, and other territories are not blocked unless a developer adds them using the `eu_access_blocker_countries` WordPress filter.

== Scope ==

The block applies to the public site and REST requests. WordPress administration, AJAX, cron, and WP-CLI are left available so administrators can manage the site.

== Visitor message ==

After activation, open Settings, EU Access Blocker. Select one of three editable starting messages: a formal legal notice, a message critical of disproportionate bureaucracy, or a "coming soon" notice. The message editor accepts basic HTML.

== Legal note ==

Geoblocking is a technical access-control measure, not a determination of legal obligations or compliance. Obtain appropriate legal advice for the service and jurisdictions involved.
