*** Joinery Core Changelog ***

2026-10-27 - version 0.4.0
* New: A “More rule types” panel on Joinery → Rules links to the paid plugins that add rule types. It lists only plugins whose rule types aren’t registered, and “Hide this” keeps it hidden in that browser.

2026-10-19 - version 0.3.0
* New: Rule contexts know whether the customer has ordered before (Context::$returning), by account or billing email, for first-order offers.
* New: joinery_returning_customer_statuses filter.
* Fix: In the rules editor, labels, fields and Remove line up across each condition and action, with help text below.

2026-10-18 - version 0.2.0
* New: Event actions: rules that run once an order is paid or completed, in the background via Action Scheduler.
* New: The customer wallet spends the credit that expires soonest first, and can't be overspent by two checkouts at once.
* New: joinery_wallet() and the joinery_apply_rules_to_order_item filter for other plugins.
* New: Line discount actions (LineDiscountAction), shown as their own labelled line in the cart totals.
* Fix: Cart discounts take VAT off the lines they discount, so shops that enter prices with or without tax both get the right total.
* Fix: Lines kept out of pricing (such as gift cards) no longer count toward the cart's quantity and subtotal.
* Fix: The rules editor shows currency symbols such as $ instead of an HTML code, and has room for longer rule names.

2026-10-18 - version 0.1.0
* New: Rules engine with customer role, quantity, cart subtotal, product category and date conditions.
* New: Percentage off each item and percentage off the cart actions.
* New: Store API quantity breaks and the joinery/v1/price-preview REST endpoint for headless stores.
* New: Personal data export and erasure for store credit, and suggested privacy policy text.
