=== WP Chest - Consent ===
Contributors: squidspark
Tags: cookie consent, gdpr, ccpa, cpra, privacy, consent mode, gpc, cookies
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Cookie-consent and privacy compliance for GDPR (EU), Canada (PIPEDA + Quebec Law 25) and US state
laws (CCPA/CPRA, VCDPA, CPA), with themeable banners and multiple layouts.

== Description ==

WP Chest - Consent gives your WordPress site a compliant, good-looking cookie banner and the
machinery behind it — granular consent, script blocking, a tamper-resistant audit log, and a fully
themeable UI with several placement options.

**Compliance**

* Opt-in engine (GDPR / Canada) — non-essential cookies are blocked until the visitor consents;
  equally prominent Accept-all and Reject-all buttons; granular per-category toggles with nothing
  pre-ticked; easy withdrawal via a persistent floating button or the
  `[wpchest_consent_preferences]` shortcode.
* Opt-out engine (US) — notice at collection, a "Do Not Sell or Share My Personal Information"
  control, and honouring of the Global Privacy Control (GPC) browser signal.
* Consent model is admin-configurable: Opt-in (default), Opt-out, or Geo-auto (best-effort region
  detection via CDN/host country headers; falls back to the safer opt-in model when unknown).
* Consent audit log — every action is recorded (timestamp, categories, consent version, model,
  region, method, anonymised IP, user agent, URL) as your proof of consent. Exportable to CSV and
  purgeable.
* Consent versioning + expiry — bump the version to force re-consent; visitors are re-prompted after
  a configurable number of days.

**Script blocking**

* Google Consent Mode v2 default signals (denied until consent) with live updates on change.
* Auto-blocking of recognised trackers (Google Analytics/GTM, Meta Pixel, and more — configurable).
* Manual tagging for your own scripts:
  `<script type="text/plain" data-ssconsent-category="analytics">…</script>`.

**Appearance**

* Layouts: bottom bar, top bar, floating box (left/right), centered modal, full screen.
* Style presets: Light, Dark, Minimal, Rounded, High contrast (accessible), plus custom colour
  themes built on CSS custom properties.
* Accessible: focus trap, ARIA dialog semantics, keyboard support, visible focus, reduced-motion.

**Developer API**

`window.WPChestConsent` exposes `get()`, `getCategory(key)`, `acceptAll()`, `rejectAll()`,
`save(categories)`, `openPreferences()`, `close()`, `withdraw()`, and `onChange(cb)`. A
`wpchest-consent-change` DOM event fires on every change.

**Shortcodes**

* `[wpchest_cookie_declaration]` — a table of declared cookies grouped by category.
* `[wpchest_consent_preferences text="Cookie settings"]` — a link/button that reopens the
  preferences modal.

== Installation ==

1. Upload the `wp-chest-consent` folder to `/wp-content/plugins/`.
2. Activate the plugin through the Plugins screen.
3. Go to **Consent → Settings** to choose your consent model, categories, appearance and texts.
4. Add your cookies under **Consent → Cookie Declaration** and embed the table with the shortcode.

== Changelog ==

= 1.0.0 =
* Initial release.
