=== PMS Cookie Banner for GDPR, CCPA & Google Consent Mode ===
Contributors: pmscripts
Tags: cookies, consent, privacy, gpc, consent mode
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.79
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A local consent banner with managed script blocking, Google Consent Mode v2, GPC and optional PMS classification. Records stay in WordPress.

== Description ==

Give visitors clear privacy choices and keep your consent records in WordPress. PMS Cookie Banner combines a banner, an accessible preference center and tools for managing supported scripts and cookies.

Free does not expire. Its local consent engine works without a PMS account or remote classification service. The separately distributed Pro edition adds appearance features; no Pro implementation is included in this Free package.

WordPress 6.9 or later is required. Managed scripts in the completed page are processed through WordPress's native template enhancement filter; the plugin does not open a separate response buffer. Test your theme and managed services after upgrading. Install the current release only after updating an older WordPress installation.

= What you can do with Free =

* **Offer clear choices:** Customize comes first, followed by Reject optional and Accept all. Accept and reject have identical background and text colours. Consent actions have equal visual prominence.
* **Reopen preferences:** visitors can review or withdraw their choices through the privacy launcher.
* **Manage supported scripts:** registered handles, explicitly managed inert scripts and configured embeds can wait for the relevant consent category.
* **Use Google Consent Mode v2:** start with denied optional consent signals and update them when the visitor makes a choice.
* **Respect Global Privacy Control:** handle GPC alongside separate sale/sharing and sensitive-information privacy choices.
* **Keep local records:** decision records, privacy requests, diagnostics and dashboard statistics remain in your WordPress installation.
* **Review your cookie inventory:** use a bounded same-site HTML baseline and an administrator-triggered browser runtime scan.
* **Use six interface languages:** English, Polish, French, German, Spanish and Swedish. Custom text remains under your control.
* **Review your privacy policy:** copy configuration-specific text directly from Privacy and GPC into your own page editor. Record an administrator review without automatically replacing your policy.

The plugin is a technical consent tool, not a guarantee of GDPR, CCPA or other legal compliance. Scanning alone does not block all trackers. Reliable gating applies to supported integrations and scripts configured through the consent system; other third-party or server-side behavior may need additional integration work.

= Local first; connect only if you choose =

After activation, a one-time WP-Cron baseline inspects representative same-site pages in bounded batches. It includes the home page, regular pages, the shop and supported landing pages; individual products, posts, archives and technical templates are skipped.

Administrators can run a browser runtime scan over the representative queue. The scan executes page JavaScript while its tab stays open. Closing or reloading that tab interrupts the run; finish the complete queue before submitting observations for optional classification.

PMS remote classification is OFF by default. Local detection, manually configured services, consent choices and configured blocking remain available without it. Unknown observations remain available for administrator review.

= Branding and Pro appearance =

This PMScripts Free edition displays the PMS logo and credit by default and does not offer a switch to remove them. The separately distributed WordPress.org edition has optional credit, off by default.

Pro is a separate package providing additional layouts, custom colors, typography and a Media Library logo. Pro allows you to choose your branding. Included local Free consent functions do not require a paid licence.

Product information and support: https://pmscripts.com/cookie-banner/

= Privacy policy review =

Activation does not change a published privacy page. Privacy and GPC provides a ready-to-copy draft and opens the public linked policy page without forcing a particular editor. The draft describes the saved consent duration, localStorage, decision logging, request retention, security processing, service inventory and optional PMS classification. The plugin includes its own English, Polish, French, German, Spanish and Swedish interface translations. Adapt the draft to your whole website in your chosen editor before publishing; it is neither a complete policy nor legal certification. Confirmation results and stale-configuration errors appear below the button without navigating away.

Confirm the review only after checking and updating your policy. Relevant setting, service, cookie inventory and linked local policy content changes require another review. Review metadata (configuration hash, time and administrator user ID) stays in WordPress. External policy changes cannot be detected; check those manually. Missing or unpublished local policy pages cannot be marked reviewed.

Decision logs are eligible for scheduled deletion after 180 days. Privacy request records are stored independently of decision logging and use the saved 730–3650-day retention setting, with the existing minimum of 24 calendar months. Daily batches depend on WordPress scheduling; deletion may be delayed. Browser consent validity is not automatic physical erasure of localStorage. Separate privacy restrictions have no automatic browser expiry. These technical periods do not determine your applicable legal obligations.

= External services and privacy =

PMS remote classification requires an explicitly saved administrator opt-in in Settings, with the data disclosure and terms beside the control. No PMS installation registration, classification request or retry runs before this opt-in, including upgrades without an explicit saved choice.

After opt-in, classification sends at most 50 cookie names and 50 script resource origins per request to https://pmscripts.com/licenses/v1/classification/register and /v1/classification/classify, using an installation ID and pseudonymous credential. PMS also sees your server request IP and technical headers. Cookie values, page content, URL queries and visitor consent records are not intentionally included. Names and origins can still reveal personal or website information.

If the PMS service operator enables AI assistance, unfamiliar names and resource origins may be sent by PMS to OpenAI for classification. The plugin does not require an OpenAI key. Disable the connection in Settings to stop new requests and pending retries; the existing local inventory is preserved.

After a completed scan, accepted signed classifications are imported automatically, including AI-assisted results, without per-cookie customer confirmation. Service identity, provider, purpose and consent category must be supported. Missing retention periods or provider privacy URLs remain marked unknown and do not by themselves prevent acceptance. Unresolved identities or categories remain private. Classification does not itself create a blanket script-blocking rule for a resource domain; review your actual integrations and update your privacy policy to match the saved configuration and inventory.

PMS privacy policy: https://pmscripts.com/privacy-policy/
PMS service terms: https://pmscripts.com/terms-and-payments/
OpenAI privacy policy: https://openai.com/policies/privacy-policy/
OpenAI service terms: https://openai.com/policies/services-agreement/

WordPress.org Free receives updates only through WordPress.org and includes no external updater or licence manager. Independently distributed store packages use a separate signed PMS update channel. These are distinct delivery profiles of the same local Free engine.

Visitor integrations such as Google tags are supplied and configured by the site administrator, not automatically installed by this plugin. Disclose those services in your website policies and verify their actual consent behavior.

== Installation ==

1. Install and activate PMS Cookie Banner.
2. Open PM Scripts > PMS Cookie Banner and follow the setup guide.
3. Review banner text, your privacy-policy URL, categories and configured services. In Privacy and GPC, copy the suggested section, adapt and publish it using your own editor, then confirm the administrator review.
4. Check representative pages and the cookie inventory. Enable PMS classification only if you choose the disclosed service connection.
5. Test rejection, acceptance, custom choices, reopening, withdrawal and your actual third-party integrations as an anonymous visitor.

== Frequently Asked Questions ==

= Is the Free edition a trial? =

No. Free does not expire, does not require a paid licence and includes no Pro implementation.

= Do I need to connect to PMS? =

No. Local consent, detection and configured blocking work without PMS classification. The optional connection requires administrator opt-in.

= Does Google Consent Mode mean my site sends no data before consent? =

Not by itself. Consent signals and blocking are separate controls. Verify the behavior of your installed tags and supported integrations on the actual site.

= Does the scanner prove that every tracker is blocked? =

No. The HTML baseline does not execute JavaScript. The runtime scan covers a representative queue, not every possible visitor interaction. Use the inventory as an aid and verify the relevant integrations.

= Can I remove the PMS logo and credit without Pro? =

In the WordPress.org edition, yes. This PMScripts Free download keeps its logo and credit enabled; Pro provides optional branding.

= Where are visitor consent records stored? =

In your WordPress installation, not in the PMS classification service. Local retention and configured logging affect what is kept.

= What does Pro add? =

Additional appearance layouts, color and typography controls, your own Media Library logo and higher-capacity path-aware classification in the separately distributed paid package.

== Changelog ==

= 1.0.79 =
* Isolate the browser scanner from theme styles, with explicit padding, section gaps and responsive typography.
* Show privacy-review success and errors inline below the button, preserving nonce, capability and stale-configuration checks.
* Center policy checkboxes and logging controls with their labels and adjacent inputs; punctuate links ending prose sentences.
* Privacy reminders, review controls and saved-configuration text are included locally in all six supported languages. Copy the draft directly from Privacy and GPC into any page editor; page content is never changed automatically.
* Adds spacing above the policy review card and removes forced WordPress guide/editor links.
* Provide non-blocking, localized contrast guidance for the separately installed Pro appearance editor.
* Keep default accessible palettes, HEX validation and consent behavior unchanged.

= 1.0.75 =
* Correct contrast guidance in all six interface languages without weakening contrast validation.
* Supply localized HEX input validation for the separate Pro appearance editor; no paid editor is included in Free.

= 1.0.74 =
* Give upgrade instructions, headings, lists and actions explicit spacing; prevent narrow administration layouts from overflowing.
* Put Customize first, Reject optional second and Accept all last, with identical accept/reject colours and theme-resistant banner spacing.
* Add a configuration-aware privacy policy guide and administrator review reminders, without changing published content.
* Respect the configured privacy-request retention period, retaining the existing 24-calendar-month minimum; remove the review record during opted-in uninstall cleanup.

== Upgrade Notice ==

= 1.0.75 =
Contrast guidance is corrected. The separate Pro editor uses HEX as its default colour input. Existing settings and consent remain intact.

== Service information ==

PMS privacy: https://pmscripts.com/privacy-policy/
PMS terms: https://pmscripts.com/terms-and-payments/
OpenAI privacy: https://openai.com/policies/privacy-policy/
OpenAI terms: https://openai.com/policies/services-agreement/
