Changelog: Impact API Connector

Changelog: Impact API Connector - Our tracked changes to our excellent plugin.

1.1.4 - (2026-09-09)

  • Enforced the configured automatic-backfill interval at execution time so stale or duplicate triggers cannot start early scans.
  • Removed the retired pre-plugin automatic-backfill listener and cleared its legacy WP-Cron and Action Scheduler events during upgrade.
  • Rebuilt a single canonical automatic schedule during upgrade and added an atomic start lock for simultaneous triggers.
  • Deferred Action Scheduler cleanup until its data store is initialized to prevent activation-time notices and header warnings.
  • Resolved Plugin Check warnings for uninstall globals, intentional custom-table queries, and a redundant customer-history exclusion.

1.1.3 - (2026-09-09)

  • Restored the quiet dash for orders with no ClickId or eligible coupon.
  • Reserved the red Impact order indicator for genuine delivery failures.
  • Corrected existing version 1.1.2 skip markers at display time without requiring a database migration.

1.1.2 - (2026-09-04)

  • Restored nonce fields on all admin forms so WordPress accepts settings and action submissions.
  • Added privacy-policy guidance and WooCommerce personal-data export and erasure integration for connector order metadata and logs.
  • Prevented disabled or incomplete configurations from scheduling automatic backfills or promo-code synchronization.
  • Made brand-new installs opt in to conversion sending only after the minimum API settings are complete; existing saved enablement is preserved.
  • Moved manual promo-code refreshes to background processing and added an overlap-safe synchronization lock.
  • Cancelled all plugin-owned Action Scheduler work during deactivation and uninstall, including per-order retries and dynamic backfill actions.
  • Preserved stored settings and logs on uninstall when requested while always removing operational locks and schedules.
  • Hardened Impact HTTP requests, cookie attributes, credential form fields, and order status rendering.
  • Added public-release plugin headers and aligned the release metadata with version 1.1.2, WordPress 7.1, and WooCommerce 11.1.

1.1.1 - (2026-08-24)

  • Made Impact customer-status classification durable and auditable on each order.
  • Counted only earlier paid purchases when determining New versus Existing, including configured custom paid statuses.
  • Added billing-email fallback for logged-in customers with earlier guest purchases or recreated accounts.
  • Prevented later purchases from changing a historical order's customer status during backfills or resends.

1.1.0 - (2026-08-21)

  • Added a daily, paginated Impact promo-code synchronization job and durable local registry.
  • Added a searchable Promo Codes admin tab with health, last-success, manual-sync, and filter controls.
  • Added an explicit administrator override to submit every coupon-bearing order without registry filtering.
  • Expanded the WordPress plugin-details modal with a formatted feature overview, operating details, setup guide, and FAQ.
  • Declared compatibility through WordPress 7.0.
  • Limited coupon-triggered and companion requests to active partner-assigned Impact codes when the registry is healthy.
  • Used WooCommerce coupon normalization for case-insensitive matching, so mixed-case forms of the same code are equivalent.
  • Kept ClickId attribution independent from coupon filtering.
  • Added fail-open behavior for missing, stale, mismatched, or failed registries so an Impact API problem does not suppress potential affiliate orders.
  • Retained historical promo-code records for order-date-aware backfills and made filtered orders eligible for reconsideration after a newer successful sync.
  • Added a configurable automatic-backfill interval from 1 to 720 hours, with a 24-hour default.
  • Replaced legacy hourly recurring actions automatically when the configured interval changes.
  • Added Kestrel variation IDs 1045, 1046, and 1047.
  • Disabled conversion capture and sending, retries, schedules, backfills, promo-code synchronization, order tools, and status columns in inactive licensed builds.
  • Kept the settings shell and License tab available so customers can activate the licensed build; the free build remains unrestricted.

1.0.5 - (2026-08-09)

  • Treated Impact Status=QUEUED as accepted delivery and marked the order sent immediately.
  • Recorded queued conversion responses as successful log entries while preserving the explicit Status=QUEUED wording.
  • Removed follow-up API Submissions polling and the resulting confirmation-permission failures.
  • Promoted existing accepted/yellow orders to sent during upgrade without resubmitting their conversion payloads.
  • Reconciled legacy queued backfill counts into accepted totals.

1.0.4 - (2026-08-08)

  • Corrected queued conversion handling when Impact accepts the submission but the configured credentials receive HTTP 403 while reading the API Submissions confirmation resource.
  • Kept accepted-but-unverified orders yellow instead of incorrectly marking them as failed or scheduling conversion retries.
  • Logged confirmation-resource permission failures as informational while retaining the original response for diagnosis.
  • Added an automatic upgrade repair for version 1.0.3 orders that were falsely marked failed after an accepted queued response.
  • Added Connection-page guidance explaining that green confirmation requires API Submissions read access.

1.0.3 - (2026-08-08)

  • Stopped using the official Impact plugin's checkout-generated irclickid order meta as proof of affiliate attribution.
  • Prioritized explicitly captured landing ClickIds and rejected canonical values that older releases copied from irclickid order meta.
  • Ignored ~cglic Direct Tracking identifiers by default, with a developer filter available for deliberately configured direct-traffic programs.
  • Enforced Impact's documented 64-character ClickId limit before submission.
  • Required Impact Status=OK/COMPLETE/COMPLETED before marking an order successful instead of trusting every HTTP 2xx response.
  • Added asynchronous confirmation checks for Status=QUEUED responses, keeping orders yellow until Impact confirms or rejects the submission.
  • Extracted Action IDs from Impact response URIs and made API body errors visible in logs and order notes.
  • Added a recovery-mode Bulk Backfill option that can deliberately retry orders previously marked successful.
  • Added separate backfill counts for confirmed, awaiting-confirmation, and failed/skipped submissions.
  • Prevented automatic backfills from replacing a running manual backfill.

1.0.2 - (2026-08-08)

  • Added an optional HIPAA mode that strictly removes customer identifiers, hashed email, IP address, user agent, location, payment, and item data from requests and logs.
  • Added fuller standard Impact conversion payloads with hashed customer email, opaque customer ID, device and location data, order financials, and indexed line-item details.
  • Preserved minimized payload behavior by automatically enabling HIPAA mode when upgrading an existing pre-1.0.2 installation.
  • Added an HPOS-compatible Impact status column to WooCommerce Orders: gray for no attribution, yellow for queued/awaiting send, green for sent, and red for errors.
  • Added explicit queued-order metadata to improve operational visibility.
  • Removed the retired standalone impact_api.php source snippet from the plugin project.
  • Corrected ZIP entry separators so WordPress can locate the plugin bootstrap file on install.
  • Corrected nonce rendering on settings, backfill, log, and license forms so WordPress accepts form submissions.
  • Updated the settings footer signature and linked Syllable in a new tab.
  • Corrected manual backfill job-ID normalization so Action Scheduler batches no longer exit at zero when a generated ID contains uppercase characters.
  • Made backfills checkpoint after every order, run in bounded five-order slices, and use a delayed watchdog to resume after interrupted PHP or Action Scheduler requests.
  • Replaced the watchdog cancellation chain with pre-scheduled successor actions, an overlap-safe worker lock, and automatic recovery when a running backfill has no pending action.
  • Excluded WooCommerce refund objects from backfill and customer-history queries, added defensive order-type guards, and safely reset active pagination when moving to the corrected order-only query.
  • Clarified on the Bulk Backfill page that progress updates on page refresh and that leaving or refreshing the page does not interrupt background processing.

1.0.0 - (2026-08-08)

  • Initial standalone WordPress/WooCommerce plugin release.
  • Migrated the original Impact conversion snippet into a class-based architecture.
  • Added encrypted Impact auth-token storage and legacy wp-config constant import.
  • Added classic checkout, Checkout Block, payment, status, thank-you, and durable queue triggers.
  • Added per-order idempotency locks, retries, and hourly automatic reconciliation.
  • Added ClickId-first and coupon-companion requests using the same OrderId.
  • Added visible irclickid order-meta support and safe canonical attribution persistence.
  • Added manual Resend to Impact order action.
  • Added bounded bulk backfill with progress status.
  • Added indexed, searchable, scrollable payload/response logs with configurable retention.
  • Added WooCommerce submenu settings with Connection, Automation, Bulk Backfill, Logs, and License tabs.
  • Added HPOS compatibility declaration, plugin-list links, readme metadata, uninstall cleanup, and free/licensed build scripts.