*** Ship To Verified Changelog *** 2026-07-14 - version 1.4.1 * Fixed - Failed verifications now surface in the order admin: the plugin handles the new verification.failed webhook, recording the failure with an order note (including the reason) and showing a red "Verification Failed" badge on the order screen instead of leaving it on "Pending Verification". A shiptoverified_order_id_verification_failed action fires for extensibility. 2026-07-09 - version 1.4.0 * Added - Order status changes are now gated by the merchant's "Statuses ShipToVerified may act on" allowlist: holds and releases only apply while the order is in an allowed status, so statuses set by fraud/payment tools (or cancellations) are never overwritten. The live status is re-read right before each write, and the status-changed listener runs at the lowest priority so other plugins act first. * Added - Releases are idempotent per verification: a re-delivered or re-emitted completion event can no longer release the same order twice, and terminal statuses (cancelled, refunded, failed, completed, trash) are never released over. * Added - When a status change is skipped, an order note explains why ("verification recorded; status change skipped"). Cancellation notifications fire once per verification cycle and never for already-verified orders. 2026-06-23 - version 1.3.3 * Fixed - Historical orders are no longer charged as verification usage. The order snapshot now carries the order creation time, and ShipToVerified only creates (or auto-verifies) a verification for a recently-placed order — so opening an old order's page, which mounts the widget, no longer pulls that order into billing. 2026-06-17 - version 1.3.2 * Fixed - Order edits sync to ShipToVerified on a single save: the order-updated notification fires after the order is fully saved and sends the edited shipping details inline, eliminating the read-after-write race that previously required saving twice. 2026-06-17 - version 1.3.1 * Fixed - Order update and cancellation sync now fire for still-pending orders. The 1.3.0 handlers gated on a stored verification id (only set once verification completes), so edits/cancellations of pending orders were never sent to ShipToVerified; they now gate on the requires-verification flag. 2026-06-16 - version 1.3.0 * Added - Order update sync: editing an order's customer name or shipping address after checkout notifies ShipToVerified so the verification is matched against the current details instead of the original checkout data. * Added - Order cancellation sync: cancelling an order moves its pending verification to a failed (terminal) state instead of leaving it pending. 2026-06-02 - version 1.2.0 * Added - Customer role filter for ID Verification: new /roles REST endpoint exposing WordPress roles, and customer roles included in order snapshots so merchants can scope verification rules to specific customer roles (with All/Guest options) from the ShipToVerified dashboard. 2026-03-04 - version 1.0.0 * Added - OAuth-based connection to the ShipToVerified service. * Added - Checkout eligibility evaluation to determine whether an order requires adult signature or identity verification based on shipping destination and cart contents. * Added - Order created notification to ShipToVerified when a qualifying order moves to Processing or Completed. * Added - Identity verification widget on the order confirmation page, account order-detail page, and order tracking page (each toggle configurable via plugin settings). * Added - Webhook receiver that validates HMAC-SHA256 signed events from ShipToVerified and updates WooCommerce order meta with verified name, address, and verification ID. * Added - Verification status panel in the WooCommerce order edit screen showing Pending, Verified, or Failed status and verified identity data. * Added - Manual verification order action ("Mark as Manually Verified") for exceptional cases. * Added - FFL exclusion — orders flagged as Federal Firearms License orders are automatically excluded from all verification workflows. * Added - Clean uninstall that removes all plugin options from the WordPress options table without affecting order meta.