PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.9.17
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.9.17
1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 1.9.14 All 163 releases
woocommerce-pos / CHANGELOG.md
Plugin root
assets 1 month ago includes 1 month ago templates 1 month ago vendor 1 month ago vendor_prefixed 1 month ago CHANGELOG.md 8.8 KB 3 months ago LICENSE 34.3 KB 3 years ago SECURITY.md 2.1 KB 4 months ago readme.txt 33.7 KB 1 month ago uninstall.php 1.2 KB 3 months ago woocommerce-pos.php 7.3 KB 1 month ago

CHANGELOG.md in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.9.17, at CHANGELOG.md

133 lines 8.8 KB Raw Download Zip
1 # WCPOS 1.8.15 — Changelog Draft
2
3 > **The biggest WCPOS release ever.** Almost three months of work, ~330 substantive PRs. Highlights below.
4
5 ## Unreleased
6
7 - Added: anonymous analytics identifier (`wcpos_anon_id`) for the admin welcome screen — random UUID, no store data, deleted on uninstall, manageable via `wp wcpos anon-id rotate|delete`. Landing data contract `schema_version` bumped to 2.
8 - Added: `woocommerce_pos_consent_copy` filter so the tracking-consent prompt copy can be overridden.
9 - Added: `woocommerce_pos_get_anon_id()` accessor (used by the Pro licence-activation request).
10
11 ---
12
13 ## 🧾 Receipt Templates — Complete Rebuild
14
15 This release introduces an entirely new receipt template system. It started in early March as a "receipt data + multi-engine rendering" foundation and grew into a full template platform.
16
17 - **New Template Gallery** with starter templates for every common use case — thermal (58mm, 80mm, narrow), A4 receipts, invoices, quotes, packing slips, gift receipts, kitchen tickets, and right-to-left languages (Arabic, Hebrew, Persian, Urdu).
18 - **New Template Editor** built on CodeMirror 6 with a field picker, live preview, paper-size + engine locking, and a Sample/Order preview pill toggle.
19 - **Multi-engine rendering** — HTML, Logicless (Mustache), PHP, and Thermal engines. Each template can declare which engine it uses; the active template is resolved per-store and per-order.
20 - **Receipt Data v1 contract** — a stable, branchable data shape that custom templates can rely on: refunds, transaction IDs, line tax labels, per-row meta, fiscal/refund context, customer notes, store address composed via `WC_Countries`, structured `store.tax_ids[]`, customer tax-id labels, localized `status_label`, and a render-time `order.printed` timestamp.
21 - **Store-aware presentation** — receipts now respect store currency, locale, timezone, tax display setting, price presentation, opening hours, and site logo, instead of falling back to global WooCommerce options.
22 - **Refund-aware totals** — refunded orders keep totals positive and add Refunded/Net rows so receipts stay readable.
23 - **Discounts as first-class data** — each coupon emits its own discount row, with `discounts[].code` as the canonical reference and `discounts[].label` taking the coupon description when available.
24 - **Tax-summary guard** so templates correctly distinguish tax-inclusive vs tax-exclusive stores, and summaries use real post-discount taxable bases instead of reverse-calculating from rounded tax.
25 - **Black-and-white safe printing** — light tints actually print, dark reverse-out fills removed, thermal receipts made 42-column-safe with star-column support.
26 - **PHP gallery catalogue registry** (#1035) replaces JSON tracking for shipped templates, keeping the gallery cleaner and easier to extend.
27 - **Template-management admin redesign** — unified Templates table with sidebar filters, drag-and-drop ordering, inactive-but-visible status, and a kebab menu replacing the old card "Settings" link.
28
29 ## 🪪 Customer & Store Tax IDs (new feature)
30
31 - **Customer tax IDs** end-to-end — reader, writer, REST exposure, persistence (#850, #863).
32 - **Store Tax IDs settings UI** with dedicated REST endpoints and country defaults (#851, #859, #872, #883).
33 - **Consolidation** — Tax IDs folded into General → Customers and into the Store Details block (#860, #924, #942).
34 - **Structured `store.tax_ids[]`** exposed on receipts with a derived `tax_id` scalar for legacy templates (#853, #874, #875).
35
36 ## 📈 Tracking Consent & Analytics (new feature)
37
38 - **GDPR-friendly consent prompt** with a two-tier landing page (#787, #788, #790, #792, #801, #804).
39 - **PostHog analytics foundation** with consent gating; session recording is explicitly disabled (#795, #799).
40 - **Reusable `@wcpos/consent` package** so the same consent flow can be embedded elsewhere (#822, #824, #829).
41 - **Landing Profile service** for personalized A/B testing (#781, #784, #797).
42 - **Upgrade-funnel instrumentation** (#798).
43
44 ## ⚙️ Settings Overhaul
45
46 - **General tab redesign** with a new Callout primitive (#864).
47 - **Store Details block** extracted with a Pro override slot (#868, #877, #1015).
48 - **General settings grouped** into Products and Customers sections (#733, #740).
49 - **Snackbar improvements** — pinned to viewport, aligned to content area (#867, #878).
50
51 ## 🧱 Shared UI Package (`@wcpos/ui`)
52
53 Many components extracted into a shared workspace package and reused across settings, templates, and consent:
54
55 - Button (with ghost-destructive variant, form primitives) (#782, #783, #802)
56 - Table (#879), Combobox (#880), searchable CountrySelect (#871)
57 - FormSection / FormRow with `headerRight` and divider props (#796, #800)
58 - Toggle hardened for hosts without Tailwind preflight (#841, #842, #843)
59 - Skeleton loading states (#703, #704)
60 - Filter sidebar with horizontal rule (#998)
61 - Shared `@wcpos/thermal-utils` workspace package (#730)
62
63 ## 🧩 Extensions Catalog
64
65 - **Redesigned cards** with body/footer layout, update badges, has-update flag, responsive grid, smaller buttons (#580, #778, #779, #780, #808, #809).
66 - **Auto-update field** exposed in the catalog (#566).
67 - **Extension settings and logs** now surface in POS admin (#821).
68
69 ## 📋 Sessions & Logs
70
71 - **Sessions page** redesigned as master/detail with a shared Avatar component (#826).
72 - **Logs page** redesigned with grouped-by-day view, copy boxes, and a new Chip primitive (#825).
73
74 ## 💳 Payments
75
76 - **Per-gateway order status settings** — Cash and Card gateways now have their own configurable post-checkout statuses (#564).
77 - **Refund support** added to POS Cash and Card gateways (#632).
78 - **POS payment gateway contract** — gateway catalog, bootstrap, and checkout coverage (#828, #830).
79
80 ## 🐞 Major Bug Fixes
81
82 ### POS order reliability
83 - Fixed `WC_Data_Exception` crash on misc product duplicate SKU (#573).
84 - Prevent line-item tax overrides from mutating products (#563).
85 - Cashier capabilities synced on plugin update, stripped on deactivation (#623, #768).
86 - POS capability checks added to checkout routes; cashier roles included in auth payloads (#624, #806).
87 - Cashier can now update orders with HPOS enabled (#662).
88 - New misc product meta fields handled: category, virtual, downloadable (#690).
89 - Variable-product empty sale prices filtered (#692).
90 - Optional stock restore when POS orders are deleted, with admin toggle (#701, #732).
91 - Line-item image IDs cast to integer in order responses (#756).
92 - Client-provided order creation date honored (#915).
93 - Historical store lookup works for trashed stores (#940).
94 - Receipt permission error code corrected (#1014).
95
96 ### Coupon calculations (multi-round WooCommerce interaction fixes)
97 - Strip coupon line IDs to prevent readonly errors on order update (#613).
98 - Deactivate subtotal filter before `calculate_totals()` (#674).
99 - Preserve subtotals during coupon recalculation (WC compound-tax bug) (#675, #677, #684).
100 - Use POS price directly as subtotal, remove fragile filter mechanism (#686).
101 - Clean up temporary cache entries after coupon validation (#693).
102 - Coupon include/exclude sync filters fixed (#840).
103 - Coupon REST API: shipped (#518), moved to Pro (#588), then restored as a standard controller (#766).
104
105 ### Auth & compatibility
106 - Prevent third-party JWT plugins from blocking WCPOS Bearer token auth (#744).
107 - Fix `require()` in IIFE bundle from Vite 8 CJS interop (#659, #664).
108 - Analytics tsconfig updated for TypeScript 6 (#708).
109
110 ### Memory & performance
111 - Log-spam memory exhaustion from i18n thundering herd resolved (#702).
112 - OPFS worker added for RxDB 17 storage migration (#739, #897).
113
114 ### Localization
115 - Translation write-location fallback and failure caching (#567).
116 - jsDelivr CDN trailing-slash redirect-loop fixed (#931).
117 - `TRANSLATION_VERSION` used for JS translation URLs (#707).
118 - `loadPath` interpolation conflict fixed (#729).
119 - Receipt dates and timestamps respect store timezone and locale (#666, #919, #937, #1029).
120 - Receipt gallery, template editor, Combobox, CountrySelect, and Skeleton strings all localized (#669, #681, #903, #925, #927).
121
122 ## 🔧 Behind the Scenes
123
124 - **CI/build** — root build script, simpler workflows, dynamic test matrix with RC/beta auto-detection, merge gate for bot PRs, hook-docs gh-pages deploy, release-draft idempotency, GitHub App tokens for POT and update-matrix automation, Dependabot auto-merge.
125 - **Dependencies** — Vite 8, TypeScript 6, RxDB 17, codecov-action 6, many action upgrades; pnpm supply-chain settings tightened.
126 - **Wiki** — moved to a `wcpos/wiki` submodule; deprecated `.kb/` folder removed (#759, #760).
127 - **Security**`TemplatesManager::save_raw_post_content` hardened with structural guards (#984).
128 - **Docs**`_woocommerce_pos_data` explainer, web bundle architecture KB article (#672, #753).
129
130 ---
131
132 **Stats:** 329 substantive PRs since v1.8.14, plus 60 routine translation/dependency-bot PRs folded into "Behind the Scenes".
133