=== AlpineConsent ===
Contributors: alpineconsent
Tags: cookie consent, gdpr, privacy, consent management, cookie banner
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
Stable tag: 0.5.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lean, EU-native cookie consent and compliance widget for WordPress.

== Description ==

AlpineConsent is a lightweight cookie consent management platform (CMP), built and hosted in Austria/Germany. It helps WordPress sites comply with the GDPR, the Austrian TKG 2021, and the German TDDDG, without the weight of typical enterprise consent plugins.

The plugin enqueues the real AlpineConsent banner — granular consent categories (necessary/preferences/statistics/marketing), prior-blocking of scripts and iframes, Google Consent Mode v2 — and holds any script you assign a category to under Settings -> AlpineConsent until a visitor grants it. A script left unassigned loads normally, so activating the plugin never breaks a site by default.

Scripts are found for you automatically — no need to dig through theme or plugin code for a WordPress "handle." As visitors load your pages (or immediately, via the "Scan homepage now" button on the settings screen), every tracked script is listed with a suggested category already filled in for well-known trackers like Google Analytics or Meta Pixel. You just confirm or change it.

The banner's layout (bar top/bottom, floating, or modal), title/description text, and button set are all configurable under Settings -> AlpineConsent — buttons can be shown as buttons or plain links, reordered, and you can add your own Privacy Policy/Cookie Policy/Imprint links (with a one-click autofill for WordPress's own Privacy Policy page). A small "Powered by AlpineConsent" badge shows on the free plan.

The banner's language auto-detects: if you run WPML or Polylang, it follows that visitor's own detected language; otherwise it follows your site's own WordPress language setting. You can also set a fixed default (German or English) under Settings -> AlpineConsent, overriding both.

Not yet implemented: automatic theme-matching with your site's own colors/fonts, consent logging, and languages beyond German/English.

== Installation ==

1. Upload the `wordpress-plugin` directory to `/wp-content/plugins/alpineconsent`, or install via the WordPress plugin screen once packaged.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Go to Settings -> AlpineConsent — assign a category to any discovered script you want held until consent.

== Changelog ==

= 0.5.0 =
* Automatic banner language detection: follows WPML or Polylang's own per-visitor language when either is active, otherwise your site's WordPress language setting. A new "Language" dropdown under Settings -> AlpineConsent lets you fix it to German or English instead, overriding both.

= 0.4.0 =
* Banner customization: layout (modal, bar top/bottom, floating), title/description text, and a configurable button set (show/hide, reorder, button-or-link style) for Accept/Reject/Manage, plus custom link buttons (e.g. Privacy Policy, Cookie Policy, Imprint) with a one-click autofill from WordPress's own Privacy Policy page.
* The banner's language now follows the site's own WordPress language setting (German or English).
* A "Powered by AlpineConsent" badge is now shown on the banner (free plan).

= 0.3.0 =
* Automatic script discovery: every tracked script is found as visitors load your pages (or on demand via a "Scan homepage now" button), with a suggested category pre-filled for well-known trackers. Replaces the old manual-handle-entry textareas with a single table.

= 0.2.0 =
* Real prior-blocking: a `script_loader_tag` filter holds any script assigned a category (via the new Settings -> AlpineConsent page) until a visitor consents to that category.
* The loader now enqueues the real AlpineConsent widget (granular categories, blocking engine, Consent Mode v2) instead of a placeholder stub.

= 0.1.0 =
* Initial development skeleton: plugin bootstrap and stub loader enqueue.
