=== Consent Guard ===
Contributors: ostaraventures
Tags: consent, youth, photos, media library, compliance
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.4.0
License: GPLv2 or later

Links every youth photo to the children in it and their parents' standalone consent, and keeps uncleared photos off the site.

== Description ==

Built for youth programs covered by California AB 2007 (Business and Professions Code Section 18985).

* Consent registry: one minimal record per child, with a yes or no for website, social, email, print and video.
* Media tagging: source, identifiable minor, which children are in frame, program and location.
* Statuses: Cleared, Needs review, Blocked, Out of scope, Revoked.
* Enforcement: uncleared images are swapped for a placeholder on in-scope pages and left out of the media picker.
* Revocations: the website stops showing the child's images at once, and staff get a dated checklist for other channels.
* Whole-site picture: how many images are live across the site, how many are cleared and how many still need review.
* Wide scan: page and post content, featured images, galleries, CSS background images, images inserted by URL, page builders, widgets, menus, theme settings, block templates, synced patterns and common sliders.
* Safe whole-site switch: before enforcing everywhere, see exactly how many images would be hidden on how many pages, and confirm. While review is in progress you can choose to hide only confirmed problems.
* Nightly check with a circuit breaker and an audit log.

Safety: new installs start in watch-only mode, scoped to test pages. Consent Guard never deletes, moves or edits an image or a page, so pausing or deactivating it restores the site instantly. No facial recognition. Consent data stays in your own WordPress database.

Consent Guard Pro adds a standalone parent consent form that fills the registry automatically, a revocation checklist for every channel an image was used on, roster import, registry and audit exports, and cleanup tools for large libraries: bulk tagging, page-by-page review, stock auto-sort, staff batches and progress by location. The free plugin is complete on its own and never limits or disables any of its features.

Licensing and optional usage data are handled by Freemius. Nothing is sent unless you opt in, and consent records are never sent anywhere.

Not legal advice.

== Changelog ==

= 0.4.0 =
* Pro: Swap photo. On any hidden photo, pick a Cleared photo from the media library to show in its place, on every page that uses the original or on one page only. Best matches (same program, same location, same shape) come first, and only Cleared photos can be chosen.
* Pro: stand-ins are safe by design. The page and the original file are not changed, a stand-in shows only while it is itself Cleared, and the original returns by itself once its consent clears.
* Pro: Make permanent writes the new photo into one page for good, after saving a revision so it can be undone.
* Pro: Swap photo and Remove on every card in Review images.
* New: choose your own placeholder image (for example your logo) in Settings, instead of the gray box.

= 0.3.7 =
* Plugin and author links now point to ostaraventures.co.

= 0.3.6 =
* Publisher is now Ostara Ventures LLC. Plugin and author links point to the Consent Guard page.

= 0.3.5 =
* Pro: when a parent fills in the consent form again (same registration ID and email), their child's existing record is updated, so every photo already tagged to that child follows the new choices right away.
* Pro: a parent who switches every answer to No after saying Yes is recorded as a revocation, with the checklist and alert email.
* Pro: a form that reuses a registration ID with a different parent email is saved separately and flagged in the activity log, so no one can change another family's choices.
* Pro: roster imports update children already on file (matched by registration ID) instead of adding duplicates. An import never undoes a revocation unless the file says so.
* Fix: roster files without a Status column now import correctly.

= 0.3.4 =
* The Pro tag stays beside the wordmark on phones.
* Centered selection checkboxes on Review images.

= 0.3.3 =
* Demo builder now uses realistic AI-generated example photos (no real children).

= 0.3.2 =
* New look: crisp white screens with one clear job per color. Status colors are tuned for contrast and mean only their status.
* Neutral gray placeholder for hidden images, so it fits any site.
* Small wording fixes.

= 0.3.0 =
* Whole-site picture on the Dashboard.
* Wider scan: CSS background images, images inserted by URL, lightbox links, widgets, menus, theme settings, block templates, synced patterns and sliders.
* Enforcement also swaps background images and linked images, not just image tags.
* Safe whole-site switch with a confirmation screen, and an option to hide only confirmed problems while review is in progress.

= 0.2.0 =
* The parent consent form, revocation checklist, roster import and exports move to Consent Guard Pro.
* Everything in this plugin is free with no limits.

= 0.1.1 =
* Demo builder: mock photos, fake consent records and password-protected test pages, from Settings.

= 0.1.0 =
* First working build.
