=== Purge Digital SEO ===
Contributors: devpurge
Tags: seo, publishing, content
Requires at least: 5.9
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Connects this site to Purge Digital's SEO platform with a single revocable
connect key. No user account, no application password.

== Description ==

Purge Digital SEO lets the Purge Digital platform publish and maintain your
content through a private, key-authorised endpoint: blog posts, pages (such
as service pages) and WooCommerce product content — creating and updating
them, uploading their images, and setting their category and featured image.
It can also place a single navigation link to that content in your footer or
a menu you choose, so a new service page appears where your existing pages
do. It cannot read users, change settings, or touch anything outside those
content types.

Posts are attributed to the account that activated the plugin, and every
action passes through WordPress's own capability checks.

Revoke access at any time: generate a new key under Settings → Purge Digital
SEO, or deactivate the plugin.

**Service dependency, stated plainly:** this plugin is a connector for the
Purge Digital platform (https://purgedigital.com.au) and is only useful to
clients of that service. Every feature in the plugin itself works without
payment or registration — the connect key is generated locally by the plugin
and is free; it authenticates inbound requests, it does not unlock features.
The plugin sends no data anywhere: it only accepts requests that carry your
key, and it never adds anything to your public-facing site.

== Installation ==

1. Plugins → Add New Plugin → Upload Plugin → choose purge-digital-seo.zip.
2. Install Now, then Activate.
3. Open Settings → Purge Digital SEO and copy the connect key.
4. Give the key to Purge Digital (or paste it into the platform's Connect
   dialog together with the site URL).

== Frequently Asked Questions ==

= What can the key do? =
Create and update blog posts, pages and product content, upload images for
them, set their category and featured image, and add or update a single
navigation link to that content in your footer or a chosen menu. Nothing
else.

= How do I cut off access? =
Generate a new key on the settings page, or deactivate the plugin. Either
stops the connection immediately.

== Changelog ==

= 1.4.0 =
* New: reports how many enquiries each form on the site has received, so lead
  reporting counts enquiries that actually arrived instead of button presses.
  Counts and dates only — no submitted field ever leaves the site.
* Supports Gravity Forms, Fluent Forms, WPForms, Formidable, Elementor Pro
  forms, and Contact Form 7 where Flamingo keeps an entry list.

= 1.3.1 =
* Posts can be moved to a new URL through the update endpoint; the old address
  redirects to the new one.
* Optional per-site switch: show a blog post's publish date where the theme
  prints its last-modified date. Off unless turned on.

= 1.3.0 =
* Source attribution for lead reporting: records the traffic source of each form
  submission (organic search, paid, referral, direct) as a count only — no name,
  email, message or IP is read or stored. New read-only /leads endpoint.
* Fixed: page content sent through the API had its backslashes stripped, which
  corrupted block JSON on pages built with ACF blocks.

= 1.2.3 =
* A menu link the platform placed can be removed again (by menu and url), so
  navigation entries can move between menus without leaving duplicates.

= 1.2.2 =
* A previously placed footer link can be removed again (by its url), with the
  same recovery copy the writers keep.
* Reading managed content now includes its Elementor document data, and
  writing a page's Elementor data keeps a recovery copy and clears the
  Elementor cache so the change is visible immediately.

= 1.2.1 =
* Footer links now work on sites whose footer services list is an Elementor
  icon-list rather than buttons: the entry is cloned from an existing list
  item so it matches the site's styling, chosen by the heading above the
  list. Same idempotency and recovery copy as button footers.

= 1.2.0 =
* Pages can be placed under a parent page (id or slug); the parent must be a
  published page, never a guess.
* Page publishes can set the page template and the Elementor document data
  (whitelisted keys only), so service pages render native to the theme.
* New read-only endpoint for the Elementor layout template a page is dressed
  from.

= 1.1.0 =
* Placement discovery (GET /placement): lists the site's nav menus and
  Elementor library templates, and which of them looks like the footer, so
  the platform can learn where links belong on this site instead of
  guessing.
* Footer link (POST /footer-link) and menu link (POST /menu-link): add or
  update one navigation link in the Elementor footer template (cloning an
  existing button so it matches the site's styling, with the prior data
  kept for recovery) or in a named menu. Idempotent — sending the same url
  twice updates the entry rather than duplicating it. Clears the Elementor
  cache after a footer write so the change is visible immediately.

= 1.0.0 =
* First release: handshake, post create/update/read, media upload, Yoast
  meta-description support, category and featured-image handling.
