Changelog

Every release of every plugin, newest first. Nothing here is written for the website. Each entry is read from the changelog.txt that ships inside the plugin itself.

69 releases and 211 recorded changes since 8 June 2026.

Laqi Unit Stock Manager

7 releases · latest 1.2.1 on 25 August 2026 · product page

  1. 25 Aug 2026 1.2.1 4 changes
    • Change The Activity ledger had two free-text boxes. The Search box already matched the reason as well as the pool, movement, source and actor, so the separate Reason box could never find anything Search would miss. There is now one search box.
    • Change The search filter starts its own row, so every filter bar reads the same way whether four narrowing filters precede it or six.
    • Change An add-on's action, such as the Pro CSV export, renders beside Filter in the filter bar rather than on its own line above the table.
    • Fix Search filters in the Activity ledger and the Pro tables cut their placeholder text off mid-word. The search filter now takes the width its row has spare, so the placeholder reads in full.
  2. 21 Aug 2026 1.2.0 3 changes
    • Add The Activity ledger shows who made each change in a new Actor column, and a search box matching pool, movement, source, reason, or actor. Both were previously only in the Pro Ledger tab.
    • Change The Source column no longer shows the acting user's name. Source now answers what caused a movement and Actor answers who performed it; a manual adjustment used to read as though a person were its source.
    • Add Extension API 1.2: `laqi_lusm_activity_actions` lets an add-on render actions beside the Activity filter bar, receiving the active filters, the pools in scope, and the matching total.
  3. 21 Aug 2026 1.1.0 7 changes
    • Add Filter the Activity ledger by inventory pool, movement, source, actor, date range, and recorded reason, with page links that keep the filters and an empty state that names them.
    • Add Shared dataset components (DatasetPage, DatasetFilters, DatasetView, DatasetRenderer, FilteredQuery) so Free and registered Pro tabs paginate and filter growing tables the same way.
    • Add Extension API 1.1: pool policies can be counted and paged by namespace, and movement reads accept categorical filters.
    • Change Movement reads run through one filtered query instead of three near-identical pairs. Existing reads keep working and now always carry the actor name.
    • Fix Filtering the Activity ledger keeps the product it was scoped to, instead of silently widening to every pool.
    • Add Extension API: ask whether one pool owns a policy namespace without loading the list, and without an unknown pool being an error.
    • Change Pools that own an extension policy are found through a keyed index instead of decoding every stored policy in PHP. Existing policies are indexed automatically on upgrade.
  4. 21 Aug 2026 1.0.3 2 changes
    • Tweak Declare compatibility with WordPress 7.1, tested against the 7.1 test suite.
    • Tweak Broadened the shared-pool example so it spans milligram to kilogram packages and decimal quantities, rather than whole grams alone.
  5. 21 Aug 2026 1.0.2 1 change
    • Fix The "WooCommerce is required" and "two editions are active" notices now appear only on the Plugins screen, where they can be acted on, and are dismissible. They no longer render on every wp-admin page.
  6. 18 Aug 2026 1.0.1 1 change
    • Update Improved the plugin description shown on the Plugins screen.
  7. 17 Aug 2026 1.0.0 8 changes
    • Add Initial WordPress.org release of the complete Free shared-stock engine.
    • Add Exact inventory pools shared by simple products and individual variations, with mass, volume, length, count, and custom merchant units.
    • Add Combined-cart availability checks for classic checkout and the Store API used by Cart and Checkout Blocks.
    • Add Immutable order-item mapping snapshots and idempotent reductions, restorations, refunds, and admin order-edit reconciliation.
    • Add Native simple-product and variation mapping controls, Products-list mapping coverage and filters, stock diagnostics, and synchronized stock status.
    • Add Searchable pool management, inline stock corrections, explicit existing-stock migration choices, and safe custom-unit conversion and retirement.
    • Add Paginated product-link and append-only activity views plus detailed pooled-stock audits on WooCommerce orders.
    • Add Privacy export and erasure support, uninstall cleanup, versioned REST endpoints, HPOS compatibility, and a stable extension API for the separate Pro add-on.

Laqi CSV Order Status Changer

33 releases · latest 1.15.1 on 13 August 2026 · product page

  1. 13 Aug 2026 1.15.1 1 change
    • Tweak Declare compatibility with WordPress 7.1 after testing against WordPress 7.1 RC2.
  2. 11 Aug 2026 1.15.0 5 changes
    • Tweak Rename to Laqi CSV Order Status Changer for WooCommerce, matching the naming used across the plugin range. The slug and text domain are deliberately unchanged, so stored settings and history are untouched.
    • Fix Raise the WordPress minimum to 6.8 and stop calling load_plugin_textdomain(). Just-in-time translation loading only covers plugins outside the WordPress.org directory from 6.8, so on 6.5 to 6.7 a bundled .mo never loaded and a translated copy ran in English regardless.
    • Tweak Declare compatibility with WooCommerce 11.0, verified against WordPress 7.0.3 and WooCommerce 11.0.0.
    • Dev Publish the release manifest to R2 so the website reads version and compatibility from the release instead of a hand-typed copy.
    • Dev Set cache lifetimes on published objects, and stop the R2 verification passing on a stale edge cache.
  3. 3 Aug 2026 1.14.4 2 changes
    • Fix Extract ten interface strings that had never reached the translation template and so could not be translated in any locale: the CSV format explanation on the import screen, both confirmation dialogs, and their buttons.
    • Dev Exclude the gitignored build directory when regenerating the translation template, so the result no longer depends on whether the generating machine had run a build.
  4. 3 Aug 2026 1.14.3 1 change
    • Fix Open the LAQI-prefixed admin page in the release browser-quality check.
  5. 3 Aug 2026 1.14.2 1 change
    • Dev Prefix plugin-owned global identifiers with `laqi_cosc_` before public distribution.
  6. 2 Aug 2026 1.14.1 2 changes
    • Fix Exclude test results, hidden files, and nested ZIP archives from production packages.
    • Dev Stop the build if a development artifact reaches package staging.
  7. 2 Aug 2026 1.14.0 4 changes
    • Add Let an optional `notify` column decide customer email delivery per row. Accepted true values are 1, yes, true, and y; false values suppress the email; a blank value follows the file-wide setting.
    • Fix Accept custom order statuses whether their registered key uses WooCommerce's `wc-` prefix or not.
    • Tweak Put `notify` last in the sample CSV, preserve older two-column files, and indent the file-wide notification fallback beneath its controlling option.
    • Tweak Color-code the sample CSV columns so order IDs, statuses, and notification values are easier to distinguish at a glance.
  8. 30 Jul 2026 1.13.1 3 changes
    • Fix Pass the enclosure and escape characters explicitly to every CSV read and write. PHP 8.4 deprecates relying on the default escape character, which raised compatibility warnings in the WooCommerce Marketplace code compatibility test.
    • Tweak Disable PHP's proprietary backslash escaping on import and export (RFC 4180), so a quoted field containing a backslash no longer swallows the rest of the row.
    • Dev Add a CI job that runs current PHPCompatibility sniffs across PHP 7.4-8.5, matching the Marketplace code compatibility test. The bundled PHPCS ruleset pins PHPCompatibility 9.3.5, which cannot see PHP 8.1+ deprecations.
  9. 25 Jul 2026 1.13.0 5 changes
    • Tweak Stream CSV uploads into fixed-size option pages instead of first holding the complete parsed file in memory.
    • Fix Add an atomic per-job lock so overlapping Action Scheduler or browser workers cannot apply the same row twice.
    • Add Add opt-in failure diagnostics through WC_Logger using the laqi_cosc_enable_logging filter.
    • Dev Add PHPCS and PHPUnit CI across PHP 7.4/8.3 and WordPress 6.9/7.0, and require it before release builds.
    • Tweak Correct Marketplace headers, menu names, scalability guidance, and development documentation.
  10. 22 Jul 2026 1.12.4 1 change
    • Tweak Update the Freemius sales-channel build to WordPress SDK 2.13.4. The WooCommerce Marketplace build remains unchanged and excludes the SDK.
  11. 22 Jul 2026 1.12.3 1 change
    • Fix Build the WooCommerce Marketplace package without Composer's Freemius autoload map, which otherwise required an SDK file intentionally excluded from that sales channel.
  12. 23 Jun 2026 1.12.2 1 change
    • Tweak Reword the background-mode helper text on the upload form so the live-vs-background choice reads more clearly.
  13. 23 Jun 2026 1.12.1 1 change
    • Tweak Clarify the background-processing screen: explain that work runs in batches on the site's schedule (so the count moves in steps and can pause between batches), that "Refresh status" only re-checks and does not speed up the next batch, roughly what counts as a very large file, and that the on-screen results and the downloaded CSV list up to the first 1,000 rows while the summary counts every row. Also removed em-dashes from the on-screen text.
  14. 23 Jun 2026 1.12.0 1 change
    • Tweak Replace the browser's native confirmation prompt for "Clear log" and "Cancel job" with a styled, accessible in-page dialog that matches the WordPress admin (dimmed backdrop, Escape/click-outside to dismiss, focus handling, and a clearly destructive confirm button). The links still work without JavaScript.
  15. 23 Jun 2026 1.11.3 1 change
    • Tweak Point the plugin and author links to the laqi-logistics.com website instead of the source repository.
  16. 22 Jun 2026 1.11.2 1 change
    • Tweak Remove the extra WooCommerce submenu items the licensing SDK added by default (Account, Contact Us, Pricing, Support) so the plugin contributes only its own menu entry. Manage licences from your account portal; activation still happens on the plugin page.
  17. 22 Jun 2026 1.11.1 1 change
    • Tweak Route delete-time cleanup through the licensing SDK's uninstall hook in copies sold through our own store, so uninstalls report correctly. The same plugin data is removed; no functional change.
  18. 22 Jun 2026 1.11.0 1 change
    • Add License management and automatic updates for copies sold through our own store. No change to functionality; copies installed from the WooCommerce Marketplace are unaffected.
  19. 14 Jun 2026 1.10.0 3 changes
    • Fix Catch a status change that throws (e.g. a payment or shipping integration rejecting the transition): the row is recorded as an error and the run continues, instead of one bad order stalling the whole job and retrying it indefinitely.
    • Tweak Store and read pending rows in pages, so very large files no longer deserialize the entire row set into memory on every batch.
    • Tweak Reject a non-text file renamed to .csv (a spreadsheet, zip, image, etc.) before processing, with a clear message.
  20. 9 Jun 2026 1.9.0 1 change
    • Remove The result-log order quick-preview (eye icon). The order number remains a direct link to the order; removing the modal drops a dependency on WooCommerce-internal code for a cleaner, marketplace-ready build.
  21. 8 Jun 2026 1.8.4 1 change
    • Add Choose the delimiter (comma, semicolon, or tab) when downloading the result log, so the export round-trips with how you upload. Defaults to the delimiter of the file you uploaded.
  22. 8 Jun 2026 1.8.3 2 changes
    • Tweak Group the processing options, file picker, and Upload button into a single bordered panel so the upload form reads as one connected unit.
    • Tweak Correct the plugin author name to "Laqi Logistics".
  23. 8 Jun 2026 1.8.2 3 changes
    • Tweak Constrain the intro text and upload form to a readable column width so they no longer stretch the full screen on large monitors.
    • Tweak The result log now uses more of the screen height (up to 65% of the viewport) before scrolling, so more rows are visible at once.
    • Tweak Shorten the WooCommerce submenu label to "Order Status CSV" (the page heading is unchanged) so it no longer wraps in the admin sidebar.
  24. 8 Jun 2026 1.8.1 2 changes
    • Tweak Mention on the upload screen that columns may be separated by a comma, semicolon, or tab (matching what the parser already accepts).
    • Tweak Reword the background-mode hint from "if I close this page" to "if you close this page".
  25. 8 Jun 2026 1.8.0 1 change
    • Add Quick-preview each order right from the result log: a small eye icon next to the order number opens WooCommerce's own order-preview modal (status, addresses, items) without leaving the page. Shown only to users who can edit orders.
  26. 8 Jun 2026 1.7.0 1 change
    • Add Search the result log by order number, status, or result text, and filter it to just Changed / Skipped / Needs-attention / Errored rows. Filtering is live and applies to rows as they stream in.
  27. 8 Jun 2026 1.6.0 6 changes
    • Add "Validate only" mode - preview what would change without changing anything.
    • Add "Do not send customer emails" option - apply status changes silently (order notes are still recorded).
    • Add "Download results" button - export the run's result log as a CSV.
    • Tweak Handle CSVs that use a UTF-8 BOM (Excel/Windows) or a semicolon/tab delimiter (common in European locales), instead of silently dropping rows.
    • Tweak Interactive processing now streams one row at a time and appends each result to the table, so progress is always visible and the scrollbar stays put (no more "is it doing anything?" pauses).
    • Tweak The sample-template download is now an inline link, and the processing options sit above the file picker.
  28. 8 Jun 2026 1.5.0 4 changes
    • Add "Download sample CSV template" button on the upload screen - includes the header and example rows using this store's own registered order statuses.
    • Tweak Distinguish skips that may need attention (order not found, unknown status) from benign ones (already in that status) with a clearer "warning" style.
    • Tweak Result log shows a visible scrollbar when it overflows, so it's obvious the list scrolls.
    • Fix Removed an inaccurate note implying all large files process in the background (interactive is the default; background is opt-in).
  29. 8 Jun 2026 1.4.0 5 changes
    • Add Interactive processing (now the default): the browser streams the work in small chunks so the bar and table fill smoothly in real time - no cron, no waiting.
    • Add "Process in the background" checkbox on the upload form for very large files / set-and-forget (uses Action Scheduler; keeps running if you close the page).
    • Dev New filter `laqi_cosc_chunk_size` (rows per interactive chunk, default 10). Shared work loop (`process_next()`) powers both modes.
    • Tweak Result log is now scrollable (max height, sticky header) so a long run no longer stretches the page.
    • Fix The "Processing…" banner no longer lingers above the results after a job completes.
  30. 8 Jun 2026 1.3.0 3 changes
    • Add Live progress: while a job runs, the page auto-updates the progress bar, counts, and result table (which now fills as orders are processed) without a manual refresh.
    • Tweak Moved the "Clear log" button to the top of the results table so you don't have to scroll.
    • Dev New filter `laqi_cosc_batch_delay` (seconds between batches; default 0 = immediate) to spread processing across runs for visible step-by-step progress.
  31. 8 Jun 2026 1.2.0 1 change
    • Add Detect a stuck job (no queued batch, or no progress for a while - e.g. when WP-Cron / Action Scheduler isn't running) and offer a "Resume" button to re-queue it. Tracks a per-job heartbeat.
  32. 8 Jun 2026 1.1.0 3 changes
    • Change New - Process uploads in the background via Action Scheduler (bundled with WooCommerce), in batches, with a live progress bar, cancel, and per-row result log on completion. Large files no longer risk request timeouts.
    • Dev New filter `laqi_cosc_batch_size` (rows per batch, default 25). Removed `laqi_cosc_max_rows` (the synchronous row cap it gated is gone). `laqi_cosc_order_note` and `laqi_cosc_after_process` are unchanged.
    • Tweak Unschedule pending batches on deactivation; uninstall removes job state too.
  33. 8 Jun 2026 1.0.0 2 changes
    • Change New - Initial release: bulk-change WooCommerce order statuses from a CSV upload, HPOS-safe via WooCommerce CRUD, with a per-row result log.
    • Dev Filters `laqi_cosc_max_rows` and `laqi_cosc_order_note`, and action `laqi_cosc_after_process`.

Laqi Order Status Workflows

29 releases · latest 1.12.3 on 13 August 2026 · product page

  1. 13 Aug 2026 1.12.3 1 change
    • Tweak Declare compatibility with WordPress 7.1 after testing against WordPress 7.1 RC2.
  2. 12 Aug 2026 1.12.2 2 changes
    • Tweak Name paid WooCommerce and Freemius packages Laqi Order Status Workflows Pro for WooCommerce on the Plugins screen, so the Free and Pro editions are easy to distinguish when both are installed. Slugs, shared data, and runtime behaviour are unchanged.
    • Dev Verify the expected Free or Pro plugin name inside every channel archive during quality and release workflows.
  3. 12 Aug 2026 1.12.1 3 changes
    • Fix Keep rules and settings when one edition is removed while another is still installed. Deleting the Free edition after upgrading to a paid one previously ran the full uninstall cleanup and emptied the rule list that the paid edition was still using. Cleanup now runs only when the last edition is removed.
    • Tweak Say in the two-editions notice that both editions share the same rules and settings, so removing the one that is no longer needed keeps them.
    • Dev Regenerate the translation template so the reworded notice can be translated.
  4. 11 Aug 2026 1.12.0 4 changes
    • Tweak Rename the plugin to Laqi Order Status Workflows for WooCommerce, changing the slug and text domain to laqi-order-status-workflows. Stored rules, settings, and history are untouched, because the laqi_osa_ prefix on every option, metadata, and hook name is deliberately unchanged, and no feature moved between editions.
    • Fix Remove the --file option from `wp osa export`, which wrote to any path the caller supplied. Redirect the command's output instead, for example `wp osa export > rules.json`.
    • Tweak Move the edition comparison out of the notice area at the top of the rules screen and into a single line beneath the rules list.
    • Dev Remove the unused licensing SDK bootstrap from the WooCommerce Marketplace archive, which referenced an SDK that channel has never shipped. No behaviour changes.
  5. 6 Aug 2026 1.11.4 2 changes
    • Fix Correct the WordPress.org package descriptions so they match the SDK-free Free edition.
    • Dev Include the human-readable Free admin source and reproducible build configuration in the WordPress.org package.
  6. 6 Aug 2026 1.11.3 1 change
    • Dev Stabilize the authenticated browser release gate on clean WordPress installations and across both supported REST URL formats.
  7. 6 Aug 2026 1.11.2 1 change
    • Fix Pass the CSV escape character explicitly when exporting the Premium audit trail, preserving current output and compatibility with future PHP versions.
  8. 6 Aug 2026 1.11.1 5 changes
    • Add Manage signed inbound credentials from a dedicated paid-edition screen, including rotation, revocation, endpoint guidance, and last-used visibility.
    • Tweak Clarify trigger conditions and actions in the rule editor, improve label and segment management, and expose stop-after-match priority in the rule list.
    • Fix Keep all paid scan controls and implementation assets out of the Free edition.
    • Security Harden signed inbound requests against replay, oversized payloads, unsafe rotation, and timing inconsistencies.
    • Dev Strengthen release gates for the exact WordPress.org package and shorten its public changelog to the initial Free release.
  9. 4 Aug 2026 1.11.0 5 changes
    • Add Reusable condition segments in paid editions, compiled into safe per-rule snapshots and refreshed when their named definition changes.
    • Add Signed inbound endpoints for saved rules in paid editions, with one-time secrets, rotation grace, replay protection, and rate limiting.
    • Add Resumable background saved-rule runs in paid editions, with complete previews for large selections, bounded batches, progress, cancellation, status sets, and a capped paginated result log.
    • Add Multi-step sequences in paid editions: up to 20 ordered delayed steps, with 20 actions per step, per-step rule re-checks, durable per-order state, and automatic cancellation when the order or rule no longer matches.
    • Fix Prefix plugin UI selectors with the full Laqi and plugin identifier to prevent collisions with other extensions.
  10. 3 Aug 2026 1.11.0 8 changes
    • Add Audit trail in paid editions: age- and size-bounded per-action history, filters, CSV export, and conflict-safe undo for reversible actions.
    • Add Shadow mode in paid editions: continuously observe what an active rule would do without running its actions, with a compact configurable log.
    • Add Preview and apply saved rules to existing orders within a required, inclusive order-created date range.
    • Add Split the plugin into a useful free edition and full paid editions from one source tree.
    • Add Offer unlimited rules, nested condition groups, and starter templates in the free edition.
    • Add Build a reproducible, SDK-free WordPress.org submission archive and run official Plugin Check against it in CI.
    • Fix Keep the update source channel-specific so WordPress.org updates the free edition without downgrading paid WooCommerce.com installs.
    • Fix Align the directory readme with the actual free feature set, disclose external behavior, and link to the human-readable React source.
  11. 3 Aug 2026 1.10.2 1 change
    • Dev Prefix plugin-owned global identifiers with `laqi_osa_` before public distribution.
  12. 2 Aug 2026 1.10.1 2 changes
    • Fix Exclude test results, hidden files, and nested ZIP archives from production packages.
    • Dev Stop the build if a development artifact reaches package staging.
  13. 25 Jul 2026 1.10.0 5 changes
    • Add Run coding standards, frontend asset checks, unit tests, and the WordPress/WooCommerce integration suite in continuous integration across PHP 7.4 and 8.3.
    • Add Build and inspect both sales-channel archives in CI, proving that WooCommerce excludes Freemius and the Freemius build includes its SDK.
    • Fix Let the shared source load safely in PHPUnit when Freemius declines to initialize outside the normal WordPress plugins directory.
    • Change Performance - Restrict privacy export and erasure order lookups to the capped activity log rather than querying a customer's complete order history.
    • Security Reject imported or REST-submitted condition trees deeper than 10 levels or larger than 100 nodes, preventing unbounded recursive processing.
  14. 22 Jul 2026 1.9.1 4 changes
    • Fix Build the WooCommerce Marketplace package without Composer's Freemius autoload map, which otherwise required an SDK file intentionally excluded from that sales channel.
    • Tweak Update the Freemius sales-channel build to WordPress SDK 2.13.4. The WooCommerce Marketplace build remains unchanged and excludes the SDK.
    • Fix Cancel queued order evaluations and outbound deliveries as well as the recurring scan when the plugin is deactivated.
    • Fix Refuse to package the plugin without its generated rule-builder assets, and verify those assets in the release workflow.
  15. 27 Jun 2026 1.9.0 3 changes
    • Add More order placeholders for the email, Slack/Teams, and add-note actions: {customer_name}, {billing_address}, {shipping_address}, {order_phone}.
    • Fix The email "Send to" field now resolves placeholders, so {order_email} routes the message to the customer instead of being treated as a literal address and falling back to the site admin.
    • Fix The add-note action now resolves placeholders in the note text; previously a note written with {order_status} (etc.) was saved with the raw placeholder.
  16. 23 Jun 2026 1.8.1 1 change
    • Tweak Show the author name as "Laqi Logistics" (was "LAQI Logistics").
  17. 23 Jun 2026 1.8.0 1 change
    • Add License management and automatic updates for copies sold through our own store (Freemius). No change to functionality; copies installed from the WooCommerce Marketplace are unaffected.
  18. 23 Jun 2026 1.7.2 1 change
    • Add Plugin and author website links (Plugin URI / Author URI) pointing to laqi-logistics.com.
  19. 15 Jun 2026 1.7.1 1 change
    • Tweak The rule editor now opens as a focused full-screen view: while editing, the Rules / Activity / Settings tabs are hidden, so an in-progress edit can no longer be lost by switching tabs. Leave via Save, Cancel, or “Back to rules”.
  20. 15 Jun 2026 1.7.0 7 changes
    • Add Unsaved-changes guard in the rule editor: Cancel asks before discarding edits, and the browser warns before a refresh/close drops them.
    • Add Reorder a rule's actions with up/down controls (actions run in order, so order matters).
    • Add Pre-save warning when a rule wouldn't do anything (no actions, or an action with a blank target), with a "Save anyway" option.
    • Add A "Back to rules" button at the top of the rule editor (next to Save/Cancel at the bottom), so you don't have to scroll to leave a long form.
    • Add Bulk-delete selected rules from the rule list's selection bar (alongside Enable / Disable), with a confirmation.
    • Tweak Replace the browser's native confirm popups (delete rule, clear log, run-on-existing) with the styled WordPress confirm dialog.
    • Tweak Collapse the per-row icon buttons into a single labelled actions menu; the rule title still opens the editor in one click.
  21. 14 Jun 2026 1.6.0 3 changes
    • Add Developer extension points so add-ons can extend the engine without forking: register a custom action (laqi_osa_action_registry + laqi_osa_action_types), a custom order-level condition field (laqi_osa_fields), a custom operator (laqi_osa_operators), and a starter template (laqi_osa_rule_templates).
    • Add Rule lifecycle hooks: laqi_osa_should_apply_rule (veto a firing before any action runs) and laqi_osa_before_action / laqi_osa_after_action (audit each action).
    • Tweak Internal refactor with no behaviour change: shared RestController base for the REST controllers, AbstractAction base for action type keys, a Support\Dates date validator, and centralised outbound-URL validation in Delivery.
  22. 14 Jun 2026 1.5.0 6 changes
    • Fix A rule action that throws (a payment/shipping integration, an email, or a third-party hook) is now caught and logged, so it no longer aborts the rule's remaining actions nor stalls the rest of a time-based scan batch.
    • Add Keyboard-accessible rule reordering: move-up / move-down buttons beside each rule's drag handle, so priority can be set without a mouse (WCAG 2.1.1).
    • Tweak Security: the "set order meta" guard now matches protected keys case-insensitively and covers more WooCommerce operational keys (stock-reduced, recorded sales, email-sent flags, order version, cart hash, …).
    • Tweak The `wp osa scan` CLI command now confirms before applying actions to live orders (bypass with --yes); use `wp osa preview` to dry-run without changes.
    • Tweak Operator labels and the item-quantifier phrases in the rule builder are now translatable.
    • Tweak Failed REST calls in the admin app always surface a message instead of an occasional empty error notice.
  23. 10 Jun 2026 1.4.2 4 changes
    • Fix Security (SSRF): the webhook and Slack actions now use wp_safe_remote_post with no redirects, so a rule can't make the site POST to internal/loopback addresses.
    • Fix Security: the "set order meta" action refuses WooCommerce core financial and identity keys (order total, customer, payment method, billing/shipping address); filterable via laqi_osa_protected_meta_keys.
    • Change Performance - Cache the customer order-count / lifetime-spend lookups during evaluation, cutting repeated queries on the time-based scan and the "run on existing orders" backfill.
    • Change Performance - Removed unused boilerplate CSS/JS that was being loaded on every front-end and admin page.
  24. 10 Jun 2026 1.4.1 3 changes
    • Add "Run on existing orders": apply a rule (including on-entry rules) to the orders already in its trigger status, with a match preview and a confirmation before the actions run.
    • Tweak Promoted Rules / Activity / Settings to a top-level tab header; Pause automation and the Add rule / Templates actions now live within the Rules tab.
    • Tweak Clarified the on-demand scan. Renamed it "Run time-based scan", gave it a tooltip and an honest result message, since it only runs time-based rules (on-entry rules fire when an order changes status).
  25. 10 Jun 2026 1.4.0 5 changes
    • Tweak Reorganised the header into Pause / Activity & Settings / Templates & Add rule, and moved import/export into a tabbed Settings screen (General, Time-based scan, Import / export).
    • Tweak Cleaner action editor: "Add action" sits inside the Then panel; Remove is a trash icon; fields top-align and the email/Slack/note actions stack their fields on their own rows.
    • Tweak Condition rows use trash-icon Remove buttons, a tidier nested-group connector, and an alphabetised Field dropdown.
    • Tweak Rule editor: the Enabled toggle sits above the title, a save error scrolls into view, and inputs share a consistent height.
    • Tweak The "Send a Slack message" action is now labelled "Send a Slack/Teams message".
  26. 10 Jun 2026 1.3.0 7 changes
    • Add Date-window scheduling: limit a rule to an "active from / until" date range.
    • Add Customer history conditions: customer order count and lifetime spend, for repeat-customer / VIP rules.
    • Add Per-rule "last fired" time, shown on the rules list.
    • Add Onboarding empty state with a "Browse templates" shortcut for new installs.
    • Tweak Rules list shows each rule's day-of-week / date-window schedule, and the enabled state is a hover tooltip on the toggle.
    • Tweak Row actions are compact icon buttons; the action editor and the top editor rows lay out tidily, with the email action's fields on their own rows.
    • Fix Reject a date window whose "active until" is before "active from", with a clear message instead of a silently inert rule.
  27. 10 Jun 2026 1.2.0 6 changes
    • Add Activity log: an Activity screen showing recent rule firings (rule, time, order, actions), with paging and a clear action.
    • Add Slack/Teams action: post a templated message to an incoming webhook when a rule fires.
    • Add Starter templates: one-click common automations (cancel unpaid, chase processing, auto-complete, flag high-value), opened in the editor to review before saving.
    • Add Duplicate a rule from the list.
    • Add "Run scan now" to trigger the time-based scan on demand from the Activity screen.
    • Tweak Share the {order_*} placeholder substitution between the email and Slack actions.
  28. 10 Jun 2026 1.1.0 9 changes
    • Add Webhook action: POST a signed JSON order snapshot to an external URL when a rule fires.
    • Add Email action: send an email (to a chosen address or the site admin) with {order_number}/{order_status}/{order_total}/{order_email} placeholders.
    • Add Public holidays setting: business-day rules skip listed YYYY-MM-DD dates as well as weekends.
    • Add Per-rule day-of-week scheduling: restrict a rule to chosen weekdays (Mon-Sun), for both on-entry and time-based triggers.
    • Add "Is any of" / "is none of" multi-select, so one condition can match a list of values (tags, shipping methods, categories, ...).
    • Add Type-ahead search for product and coupon condition values instead of free text.
    • Tweak Group the rules list into a collapsible section per trigger status; reorder priority within a status.
    • Tweak Enable/disable a rule inline from the list, and pause all automation from the rules screen.
    • Tweak Label the equality operators "is (=)" and "is not (≠)" for clarity.
  29. 10 Jun 2026 1.0.0 13 changes
    • Add Initial release.
    • Add Visual rule builder: nested AND/OR condition groups with a plain-English summary of each rule.
    • Add Two trigger kinds - when an order enters a status, or when it has been in a status for N days, the latter via a recurring background scan.
    • Add Time-based thresholds can count calendar days or business days (skipping weekends; holidays via the laqi_osa_is_business_day filter).
    • Add Conditions across order and item fields - shipping/billing country, shipping/payment method, order total, currency, customer type, coupon, item count, and item-level product/category/tag/shipping class with any/all/none quantifiers - using field-aware value pickers.
    • Add Multiple actions per rule - set status, add order note, set order meta.
    • Add Priority ordering by drag-and-drop, first-match-wins with optional stop-on-match.
    • Add Three-tier settling delay (global default, per-rule override, immediate); asynchronous evaluation via Action Scheduler with a loop guard and depth cap.
    • Add Dry-run - test a rule's conditions against recent orders before saving.
    • Add Import and export rules as a JSON file, with validation on import.
    • Add Global controls - pause all automation, and toggle the per-fire audit order note; configurable scan frequency and per-status batch size.
    • Add HPOS (custom order tables) and Cart & Checkout Blocks compatibility; full internationalization.
    • Add Complete data removal on uninstall (settings, rules, order bookkeeping, scheduled jobs); orders are never touched.