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.
