Polished, clearer listing. Rewrote the Description so it’s obvious what the plugin is: the WordPress connector for Flowgration, the all-in-one CRM. Made the “works with anything” story explicit (store, forms, or just users), tightened the short description within the 150-character limit, and improved the overall flow. Copy-only — no functional or runtime changes.
1.0.2 — 2026-07-09
Repositioned as the WordPress connector for Flowgration, not a WooCommerce-only tool. Renamed the plugin to “Flowgration – CRM & Email Marketing” and reworked the listing copy: Flowgration builds your CRM from whatever your site has — a WooCommerce store, forms, or just users — and WooCommerce is now correctly documented as optional (store sync) rather than a hard requirement. No functional/runtime changes; WooCommerce integration and HPOS compatibility are unchanged.
1.0.1 — 2026-06-30
WordPress.org review fixes. Documented the Flowgration external service in the readme (new “External services” section) with the data sent, when, and Terms of Service + Privacy Policy links — including the WooCommerce REST API key pair sent during onboarding for the historical import. Corrected the Privacy section to match.
Hardened the public /health REST endpoint. It now returns only non-sensitive liveness (ok/version, has_api_key boolean, backfill counts/status, error flag) — no integration id, store URL, API-key prefix, raw error text or connection status on the unauthenticated route.
No more inline admin <script>. Moved the dashboard backfill progress-polling + auto-kick JavaScript out of an inline <script> and into the enqueued admin/assets/admin.js (passing the auto-kick flag via wp_localize_script).
1.0.0 — 2026-06-22
Listing polish + WordPress.org submission readiness. Plugin Name, Tested up to, Requires at least, and Requires PHP headers aligned to the current supported stack (WP 6.0+, WC 8.0+, PHP 8.1+, tested on WP 7.0). Added WC requires/tested headers per WooCommerce HPOS compatibility declaration.
Forms capture, expanded. Captures WooCommerce checkout + WP comments and adds Forminator, Bricks, WS Form, JetFormBuilder, HappyForms and MetForm alongside Gravity Forms, WPForms, CF7, Ninja, Elementor, Formidable, Fluent and SureForms — every submission flows into the CRM with field mapping. Fixed the abandoned-cart session sweep.
Field mapping = one source of truth. The CRM owns the mapping; the plugin reflects it and now surfaces CRM-locked sources (no editing twice), caches the config, adds a global field-routing panel, a static “add tag on submit” action, and GDPR consent + UTM/attribution capture into the CRM.
i18n + WordPress.org compliance. Text Domain set to flowgration-crm to match the plugin slug (fixes the Plugin Check Text-Domain-Mismatch errors). Language files renamed to flowgration-crm-*; admin JS strings now translatable via wp.i18n. Spanish (es_ES) included.
Security. esc_sql() applied to WC API key table references in Flowgration_WC_Keys. JSON-decoded AJAX payloads routed through sanitize_decoded_payload() helper.
0.5.23
Internationalization (i18n) — English source strings, locale-driven translations. All admin-page strings previously hardcoded in Spanish are now English source strings wrapped in WordPress gettext functions (esc_html_e, esc_html__, __). A Spanish translation is delivered via languages/flowgration-es_ES.po + .mo. The Text Domain plugin header is now flowgration (was flowgration-crm) and load_plugin_textdomain is called on plugins_loaded. Required change for WP.org directory listing.
Spanish copy on the “Import historical data” action tile replaced with English. The Spanish description is now served via the es_ES translation file.
0.5.22
Field Mappings tab now shows real fields_count for every WooCommerce source card. Canonical field-name tables per WC entity (35 order fields, 24 customer fields, 27 product fields, 18 coupon fields) replace the previous hard-coded fields_count => 0.
“0 fields detected” status line fixed. buildRows() in admin.js now flattens the discovery TREE shape emitted by Flowgration_Discovery::build_schema() into editor rows with per-source tagging.
“Suggest with AI” now consumes _suggest_mappings response correctly. Walks contact_fields and per-form field_mapping sub-trees so suggestions land on the rows.
Cache transient bumped to flowgration_integrations_summary_v2. New payload shape ships with a fresh cache key; legacy v1 key is deleted on first v2 read.
0.5.21
Opt-in historical backfill on API-key reconnect. Paste-existing-key flow no longer auto-imports into a CRM that already has data. A dedicated “Import historical data from WooCommerce” tile provides the opt-in affordance.
0.5.20
P0 persistence fix: per-WooCommerce-source Field Mappings page now hydrates from mapping_config.sources[<bucket>] on render.
Custom field create: added order to the entity allow-list.
Forensics: PII-safe breadcrumbs added to ajax_create_custom_field and render_per_woocommerce_source.
0.5.18
Plugin Check fix: esc_sql() added to $table assignment in class-flowgration-wc-keys.php lines 109, 195, 233.
0.5.17
AI auto-mapping auto-fires on first visit to the Field Mappings tab (latched so manual un-maps are not reverted).
New “Cart abandoned tracking” diagnostic card in the WP admin Diagnostic tab.
0.5.16
P0 ARCHITECTURE: WooCommerce REST API backfill. Plugin now generates a read-only WC consumer key/secret pair at onboarding so the Flowgration backend can pull historical data via the WC REST API — WAF-proof, matching the Mailchimp/Klaviyo/HubSpot pattern.
New Flowgration_WC_Keys class with idempotent generation and encrypted-at-rest storage.
Disconnect now revokes the WC keys from wp_woocommerce_api_keys.
Plain-WP installs gracefully skipped when WooCommerce is absent.
0.5.15
Plugin Check fix: explicit (int) cast on max(0, …) result in dashboard-page.php line 357.
0.5.14
P0 ARCHITECTURE: Plugin-initiated backfill drain (WAF-friendly). New admin-ajax action flowgration_admin_drain plus admin_init fallback drain so no inbound WAF-blocked traffic from the backend is required after onboarding.
Dashboard UX: live progress widget for historical import with real-time counter and progress bar.
0.5.13
New PUBLIC REST endpoint /wp-json/flowgration/v1/health for backend diagnostics (no PII, no auth required).
New HMAC-protected endpoint /wp-json/flowgration/v1/echo-signed for HMAC roundtrip diagnostics.
All wp_ajax_flowgration_* handlers wrapped in ob_start() to strip pre-JSON noise from sibling plugins.
Flowgration_API_Key_Vault::store() post-write assertion guards against silent write failures.
0.5.12
Flowgration_Backfill::start() now runs the first chunk inline for hosts with DISABLE_WP_CRON=true.
0.5.11
New REST endpoint /wp-json/flowgration/v1/drain-backfill-chunk for server-side backfill pumping without WP-Cron dependency.
Discovery payload now includes wp_cron_disabled flag.
0.5.10
New REST endpoint /wp-json/flowgration/v1/disconnect for HMAC-signed remote org_deleted signals.
0.5.9
Backfill payload enrichment — customer.created backfill events now include full addresses, roles, and WC stats; order.created events include full line items, payment details, and addresses.
0.5.8
Tested-up-to header updated. No code changes.
0.5.7
New REST endpoint /wp-json/flowgration/v1/kick-backfill so the backend can trigger historical backfill immediately after magic-link activation.
0.5.6
Security hardening for WP.org Plugin Review T2: raw $_POST reads moved after nonce/capability gates; new sanitize_decoded_payload() helper for JSON AJAX bodies.
0.5.5
Auto-start full historical backfill on connect. ajax_save_api_key auto-discovers integration_id.
0.5.4
WooCommerce order capture extended to all creation paths (woocommerce_thankyou, woocommerce_new_order, woocommerce_checkout_order_processed).
Forminator forms captured out of the box.
Every WooCommerce hook handler wrapped in try/catch.
Outbound HMAC requests now carry X-Flowgration-Timestamp (Stripe-style replay protection).
0.5.3
Compound form fields (Name, Address, Date/Time) split into sub-inputs in WPForms and Gravity Forms.
0.5.2
Auto-drain redundancy stack: five independent triggers ensure queue drains within seconds even with DISABLE_WP_CRON=true.
0.5.1
Hotfix: WPForms Lite submissions no longer collide as DEDUP. Content-addressed external IDs across all form adapters.