Title: WCPOS &#8211; Point of Sale (POS) plugin for WooCommerce
Author: kilbot
Published: <strong>May 2, 2014</strong>
Last modified: July 31, 2026

---

Search plugins

![](https://ps.w.org/woocommerce-pos/assets/banner-772x250.jpg?rev=3599632)

![](https://ps.w.org/woocommerce-pos/assets/icon-256x256.png?rev=3109703)

# WCPOS – Point of Sale (POS) plugin for WooCommerce

 By [kilbot](https://profiles.wordpress.org/kilbot/)

[Download](https://downloads.wordpress.org/plugin/woocommerce-pos.1.9.14.zip)

 * [Details](https://wordpress.org/plugins/woocommerce-pos/#description)
 * [Reviews](https://wordpress.org/plugins/woocommerce-pos/#reviews)
 *  [Installation](https://wordpress.org/plugins/woocommerce-pos/#installation)
 * [Development](https://wordpress.org/plugins/woocommerce-pos/#developers)

 [Support](https://wordpress.org/support/plugin/woocommerce-pos/)

## Description

**WCPOS turns any device into a point of sale for your [WooCommerce](https://www.woocommerce.com/)
store.** Same catalog, same stock, same prices — at the counter, on the road, or
over the phone. Run it in a browser or as a native desktop, iOS or Android app, 
with offline product browsing and cart building during connection drops. _(WCPOS
was formerly known as WooCommerce POS.)_

> 🕒 Install and start taking orders in less than 2 minutes.

#### 🎥 DEMO

You can see a demo of the WCPOS plugin in action by going to [demo.wcpos.com/pos](https://demo.wcpos.com/pos)
with 🔑`login/pass` : `demo/demo`

**Desktop Apps:**
 ⬇️ [Windows](https://updates.wcpos.com/electron/download/win32-x64)
⬇️ [Mac (Intel)](https://updates.wcpos.com/electron/download/darwin-x64) ⬇️ [Mac (Apple Silicon)](https://updates.wcpos.com/electron/download/darwin-arm64)

**Mobile Apps (Beta):**
 📱 [iOS (TestFlight)](https://testflight.apple.com/join/JGBdVRrW)
📱 [Android (Google Play)](https://play.google.com/apps/testing/com.wcpos.main)

#### ✨ FEATURES

 * **Cross-platform:** Accessible via browser, desktop, iOS & Android _(mobile apps
   in beta)_
 * **Offline Storage:** Fast product search and order processing
 * **Flexible Cart:** Add products not listed in WooCommerce
 * **Barcode Support:** Scan products directly into the cart
 * **Receipt Templates:** Pick from a built-in gallery — receipts, invoices, quotes,
   packing slips, gift receipts, kitchen tickets — or design your own
 * **Thermal Printing:** Print directly to 58mm and 80mm thermal printers over network,
   Bluetooth, or USB
 * **Customer Tax IDs:** Built-in field for VAT, ABN, GST, and other regional tax
   numbers
 * **Multilingual:** Available in most major languages
 * **Built-in Support:** Access live chat for instant help

#### 🔓 PRO FEATURES

 * **Stock Management:** quickly adjust stock levels, pricing and more
 * **Order Management:** re-open and print receipts for older orders
 * **Customer Management:** create new customers and edit customer details
 * **Payment Terminals:** take in-person card payments with Stripe Terminal and 
   SumUp readers
 * **Payment Gateways:** check out with any WooCommerce gateway — Stripe, PayPal,
   Square, Mollie and more
 * **Coupons:** apply coupons at the POS with search, coupon pills, and sequential
   discounts
 * **Refunds:** refund POS orders directly from the till
 * **End of Day Reports:** summarise daily sales, transactions, and cash flow for
   reconciliation
 * **Stores:** Manage locations with unique tax settings, pricing and receipts
 * **Priority [Discord support](https://wcpos.com/discord):** one-on-one support
   via private chat

_Discover all PRO features at [wcpos.com/pro](https://wcpos.com/pro)_

#### 📋 REQUIREMENTS

 * WordPress >= 5.6
 * WooCommerce >= 5.3
 * PHP >= 7.4

## Screenshots

[⌊WCPOS main screen⌉⌊WCPOS main screen⌉[

WCPOS main screen

## Installation

#### Automatic installation

 1. Go to Plugins screen and select Add New.
 2. Search for “WCPOS” in the WordPress Plugin Directory.
 3. Install the plugin
 4. Click Activate Plugin to activate it.

#### Pro installation

If you have purchased a license for [WCPOS Pro](http://wcpos.com/pro) please follow
the steps below to install and activate the plugin:

 1. Go to: http://wcpos.com/my-account/
 2. Under My Downloads, click the download link and save the plugin to your desktop.
 3. Then go to your site, login and go to the Add New Plugin page, eg: http://<yourstore.
    com>/wp-admin/plugin-install.php?tab=upload
 4. Upload the plugin zip file from your desktop and activate.
 5. Next, go to the POS Settings page and enter your License Key and License Email 
    to complete the activation.

#### Manual installation

To install a WordPress Plugin manually:

 1. Download the WCPOS plugin to your desktop.
 2. If downloaded as a zip archive, extract the Plugin folder to your desktop.
 3. With your FTP program, upload the Plugin folder to the wp-content/plugins folder
    in your WordPress directory online.
 4. Go to Plugins screen and find the newly uploaded Plugin in the list.
 5. Click Activate Plugin to activate it.

## FAQ

### Is WCPOS really free?

Yes. The free plugin is a complete point of sale — unlimited products, orders and
customers, with no transaction fees and no per-register charges. Pro adds advanced
tools (see below), but you never need it to start selling.

### Do I need anything besides WooCommerce?

No. If you have a WooCommerce store, install WCPOS and you’re taking orders in under
two minutes — same catalog, same stock, same prices, at the counter.

### Which devices does it run on?

Any modern browser, plus native desktop apps (Windows, macOS) and iOS & Android 
apps (mobile in beta). One login, everything stays in sync.

### Does it work offline?

Yes. Products are stored locally for instant search, so you can keep browsing products
and building carts during a connection drop. Reconnect before completing checkout
so the order can be created in WooCommerce.

### What hardware do I need?

Whatever you already have. WCPOS works with standard barcode scanners, 58mm and 
80mm thermal receipt printers (network, Bluetooth or USB), and cash drawers — no
proprietary equipment and no lock-in.

### Can I take card payments?

Cash and manual card payments are built in. WCPOS Pro adds integrated payment terminals(
Stripe Terminal, SumUp) so you can take chip-and-PIN payments right from the register.

### What’s the difference between free and Pro?

Free is a full POS for taking orders. Pro lets you run your whole store from the
register without opening wp-admin: adjust stock and prices, manage orders and customers,
apply coupons and refunds, use supported payment gateways and integrated terminals
such as Stripe Terminal and SumUp, and print end-of-day reports. See [wcpos.com/pro](https://wcpos.com/pro).

### Can I try it before installing?

Yes — there’s a live demo at [demo.wcpos.com/pos](https://demo.wcpos.com/pos) (login`
demo` / `demo`).

### Where do I get help?

Browse the documentation at [docs.wcpos.com](https://docs.wcpos.com), or reach the
community and Pro priority support on [Discord](https://wcpos.com/discord).

### What data does WCPOS send outside my site?

WCPOS keeps your data in your own WooCommerce database, unless you turn on a feature
that relies on an outside service. It contacts outside services to: load translations
from a CDN (jsDelivr); send anonymous usage analytics to wcpos.com **if you opt 
in** (withdraw any time in settings); validate your license key, site identifier(`
site_uuid`), and anonymous identifier (`anon_id`) with wcpos.com when you activate
Pro; and relay cloud print jobs through the WCPOS Cloud Print relay at cloudprint.
wcpos.com **if you use cloud printing** — your site registers with the relay automatically
when you open the Cloud Print settings, and each print job for a relay-addressed
printer is then passed through the relay to your configured cloud printer, so the
receipt contents (which include order details) leave your site (developers can opt
out with the `woocommerce_pos_cloud_print_relay_enabled` filter). Full details are
in our [privacy policy](https://wcpos.com/privacy).

## Reviews

![](https://secure.gravatar.com/avatar/1aa601f2c69c5338ee58e7487c6eaaff94c647f776decf64e5189763d1e5dc61?
s=60&d=retro&r=g)

### 󠀁[Plus d’un an d’utilisation, je recommande](https://wordpress.org/support/topic/plus-dun-an-dutilisation-je-recommande/)󠁿

 [adeline](https://profiles.wordpress.org/adelinel/) May 22, 2026

On prend rarement le temps de laisser un avis quand tout va bien. Du coup je le 
fais ici. Je suis céramiste à Annecy et je vends sur ma boutique WooCommerce et 
sur les marchés. Ça fait plus d’un an que j’utilise WCPOS, et j’ai pris la licence
Pro à vie il y a quelques mois, qui vaut le coup je pense. Paul est réactif sur 
Discord. Il a toujours répondu rapidement à mes questions, même le week-end. Apparememnt
il a eu sa propre boutique en Australie il y a quelques années, donc il connaît 
nos besoins en tant que commerçants indépendants. Ça se ressent dans le produit 
et dans les échanges. Ce que j’aime : – La rapidité en caisse, même en plein rush
les samedis– La synchro automatique des stocks entre mon site et la caisse, ce qui
est hyper important pour moi car je fait des pièces uniques– Pas d’abonnement mensuel–
L’interface est assez simple pour que je forme une copine rapidement si besoin d’être
dépannée sur le stand Merci Paul, je recommande.

![](https://secure.gravatar.com/avatar/0125d0a974b2084a38305a5c739d0a10f678c2435680d29c22ca4a9486fbdde0?
s=60&d=retro&r=g)

### 󠀁[sobre pos](https://wordpress.org/support/topic/sobre-pos/)󠁿

 [letorresp](https://profiles.wordpress.org/letorresp/) March 26, 2026

sobre pos

![](https://secure.gravatar.com/avatar/5b99e353c4c9848d716db4bf1c73027888549bd26e9a5c487928593e6a085a15?
s=60&d=retro&r=g)

### 󠀁[Super slow and cumbersome](https://wordpress.org/support/topic/super-slow-and-cumbersome/)󠁿

 [chaosheld](https://profiles.wordpress.org/chaosheld/) November 28, 2025

We were looking for an easy solution to connect our WooCommerce webstore with a 
physical store. We sell books and currently have roughly 380k products online, which
works perfectly with WooCommerce, ElasticPress, and some customizations, of course.
Let’s face it: all plugins that aim to connect a physical store with WooCommerce
are crap, and this one even costs around 120 euros and still doesn’t work as expected.
It keeps freezing, not responding at all, or the EAN search simply returns no results,
even though the products exist and are managed by ATUM (which is actually pretty
good). The issue seems to be that under the hood, the products are mirrored through
a super slow API, which bottlenecks everything very quickly.I’m really frustrated
and will need to build my own solution over the next few weeks and months.On top
of that, the support is nonexistent. Thank you very much for nothing. TL;DR: Can’t
recommend.

![](https://secure.gravatar.com/avatar/5308e660722ff0ec8986d2563306db49d0d71f1562dc305a8a2517d8a1544281?
s=60&d=retro&r=g)

### 󠀁[about pos](https://wordpress.org/support/topic/about-pos/)󠁿

 [sonalione](https://profiles.wordpress.org/sonalione/) November 5, 2025

i would like to suggest you this pos is the best pos for woo commerce for our business
thankyou

![](https://secure.gravatar.com/avatar/6b1b543d837cfb778a70564c1246ef345631196c982fbd2b7f4b89fbc612418f?
s=60&d=retro&r=g)

### 󠀁[Good plugin](https://wordpress.org/support/topic/good-plugin-7221/)󠁿

 [kogarhd13](https://profiles.wordpress.org/kogarhd13/) October 27, 2025

Really good

![](https://secure.gravatar.com/avatar/155fb32311a73958172a2ee4465b6c1db2ff1c33ab200c94e10e9ac9848879f6?
s=60&d=retro&r=g)

### 󠀁[Great Support](https://wordpress.org/support/topic/great-support-6201/)󠁿

 [robotlawnmowersaustralia](https://profiles.wordpress.org/robotlawnmowersaustralia/)
June 23, 2025

I ran in to some tax table issues and jumped on the Discord support. “Kilbot” user
name of support guy had me up and running in just a few minutes. Having this rapid
response makes the difference between a small inconvenience and a massive headache.
Highly recommend these guys.

 [ Read all 81 reviews ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/)

## Contributors & Developers

“WCPOS – Point of Sale (POS) plugin for WooCommerce” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ kilbot ](https://profiles.wordpress.org/kilbot/)

“WCPOS – Point of Sale (POS) plugin for WooCommerce” has been translated into 12
locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pos/contributors)
for their contributions.

[Translate “WCPOS – Point of Sale (POS) plugin for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pos)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/woocommerce-pos/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/woocommerce-pos/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/woocommerce-pos/)
by [RSS](https://plugins.trac.wordpress.org/log/woocommerce-pos/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.9.14 – 2026/07/31

 * **Receipt timestamps now respect your WordPress time format** — receipts could
   force 12-hour AM/PM times even when your site is set to a 24-hour clock. The 
   receipt date formatter now follows the time format configured under Settings 
   > General, while the store locale continues to control the date language.
 * **Hardened cloud-print job handling** — bulk-cancelling print jobs now verifies
   it is acting on actual print jobs (a POS-level user could previously trigger 
   status changes on unrelated posts), and cancelling is refused for jobs that are
   not waiting (so a failed job keeps its payload and stays retryable). Also adds
   regression coverage proving receipt text cannot inject printer control bytes 
   into thermal output — a protection already shipped in earlier releases.
 * **PHP 8.4+ build hardening** — the plugin’s bundled PDF engine now calls PHP 
   8.4’s new functions directly instead of relying on runtime compatibility shims.
   Installs that loaded the shims were already protected, but a bootstrap that missed
   them (eg: a partial plugin update) could still hit a fatal error when rendering
   PDF receipts — that failure class is now gone entirely. The same issue broke 
   PDF receipts on WCPOS Pro on PHP 8.4+, fixed separately in Pro 1.9.14.
 * **Updated translations.**

#### 1.9.13 – 2026/07/26

 * **Fixed garbled prints on Star CloudPRNT printers** — after 1.9.12, receipts 
   sent to Star CloudPRNT printers (the TSP100 line) could print the plain text 
   lines followed by a metre of garbage characters, because cashier-initiated prints
   were still rendered as ESC/POS, which no Star CloudPRNT printer can decode. WCPOS
   now serves these printers native StarPRNT for cashier prints too, and automatically
   corrects the stored printer language on existing installs on the next settings
   sync — no reconfiguration needed. Other cloud printers are unaffected.

#### 1.9.12 – 2026/07/24

 * **Fixed cloud printing to Star TSP100 printers** — StarPRNT-native Star printers(
   the TSP100/TSP100IV line) rejected Cloud Print jobs with a “510 Incompatible 
   Media Type” error and never printed, because WCPOS sent them ESC/POS. WCPOS now
   serves these printers native StarPRNT, so Cloud Print works on the whole TSP100
   family. Other cloud printers are unaffected.
 * **Customer receipt downloads are now opt-in** — the Receipt button on My Account
   > Orders (added in 1.9.11) is now off by default and turned on under Settings
   > General > Customers, with an optional picker to choose which template customers
   get. Stores that want it must enable it; the [wcpos_receipt] shortcode is unaffected.
 * **Fixed the Cloud Print printer name being squeezed** — a long or translated 
   status label (eg: French “En attente de l’imprimante”) no longer shrinks the 
   editable printer-name field to a few characters; the status now sits on its own
   row.
 * **Fixed receipt template selection for downloaded receipts** — gallery templates
   now resolve correctly for customer receipt links, and the storefront receipt 
   uses the template you selected.
 * **Updated translations.**

#### 1.9.11 – 2026/07/24

 * **New: WCPOS Cloud Print relay** — if your hosting or firewall blocks a cloud
   printer’s direct connection (a permanent “Waiting for printer”), WCPOS now routes
   Star CloudPRNT and Epson Server Direct Print polling through the WCPOS Cloud 
   Print relay automatically, and print jobs start on the printer’s next poll instead
   of waiting for the next heartbeat. Printer cards tell you when a security layer
   is blocking cloud print. When the relay is used, print jobs (receipt contents)
   pass through cloudprint.wcpos.com — see the privacy FAQ. Site owners can opt 
   out in code.
 * **New: Cloud Print queue** — the Cloud Print settings screen now shows a live
   queue of your print jobs and their status, so you can see what has printed, retry
   a failed job, and clear the backlog. Completed job payloads are stripped and 
   old jobs are purged automatically.
 * **New: receipts on your online store** — customers can download their order receipt
   as a PDF, rendered with your WCPOS receipt template, from a new Receipt button
   on My Account > Orders. A [wcpos_receipt] shortcode is also available for the
   order-received or custom pages.
 * **Fixed cloud printers that mangle the poll URL** — printer credentials now travel
   in the URL path, so printer firmware that URL-encodes the query string (eg: Star
   TSP100IV) can authenticate. Existing configured printer URLs keep working.
 * **Fixed the WCPOS Pro license image** — the Pro panel now loads its image correctly.
 * **Updated translations.**

#### 1.9.10 – 2026/07/22

 * **Fixed stale prices on products converted from simple to variable** — variable
   products now show the lowest price of their current visible variations in the
   POS, instead of a leftover price left behind by the conversion.
 * **Fixed a fatal error in the receipt template editor on translated stores** —
   receipt previews no longer crash when a translated label contains a literal percent
   sign (reported on Czech stores).
 * **Fixed cloud printer polling** — Star CloudPRNT and Epson Server Direct Print
   polling URLs now include the marker WCPOS requires, so the URL you copy from 
   the settings screen works as-is. Star results in the 2xx family (eg: 211 Paper
   Low) now count as printed rather than failed, and polling problems are recorded
   in the WCPOS logs with enough detail to act on.
 * **Refresh button on the Extensions screen** — re-check the extensions catalogue
   on demand instead of waiting for the hourly cache to expire.
 * **Fixed the missing POS favicon** — POS browser tabs and home-screen shortcuts
   show the WCPOS icon again.
 * **Updated translations.**

#### 1.9.9 – 2026/07/18

 * **Security: hardened receipt/report template file resolution** — the templates
   REST endpoint now strictly validates the requested template type and confirms
   that resolved template files stay inside the plugin’s trusted template directories,
   closing a path-traversal issue. All stores should update.
 * **Fixed payment links blocked by trailing-slash rewrite rules** — POS checkout,
   receipt and login URLs now follow your site’s permalink trailing-slash style,
   so rewrite rules that force a trailing slash no longer redirect these links to
   an http target and get blocked as mixed content.
 * **Updated translations.**

#### 1.9.8 – 2026/07/17

 * **Fixed blocked payment and receipt links on https stores** — checkout payment,
   receipt and login links now respect the Force SSL setting, so the order-pay popup
   is no longer blocked as mixed content on stores served over https while the WordPress
   home URL is still http (eg: behind Cloudflare Flexible SSL or other SSL-terminating
   proxies).
 * **Force SSL toggle restored** — the Force SSL setting is back in the WCPOS settings
   under a new Advanced section, so stores that intentionally run over http can 
   turn it off.

#### 1.9.7 – 2026/07/15

 * **Receipts can now show savings** — receipt templates can display regular prices,
   per-line savings and a Total Saved line, with correct right-to-left (RTL) previews
   and localized labels.
 * **Better black & white printing** — gallery receipt templates now print safely
   on B&W receipt printers, while PDF receipts keep their colours.
 * **Resizable template editor panel** — drag to resize the fields panel in the 
   receipt template editor.
 * **Improved welcome-screen analytics** — consented admin landing payloads now 
   include hostname-only site and admin domains so WCPOS can understand where opted-
   in stores come from without sending full URLs or paths.
 * **Fixes** — order version stamping now only happens when the POS creates an order;
   safer file-permission fallback when WCPOS writes files.
 * **Updated translations.**

#### 1.9.6 – 2026/06/17

 * **Cash drawer support** — open a connected cash drawer automatically after payment
   or on demand with a new Open Drawer button. Choose a drawer connector per printer,
   with support for thermal/ESC-POS printers, Epson, PrintNode, and cloud/remote
   print jobs.
 * **Fixed an analytics event firing too often** — the upgrade prompt “viewed” event
   no longer fires on every admin page load.
 * **Updated translations.**

#### 1.9.5 – 2026/06/15

 * **Fixed a payment gateways API crash** — the POS payment-gateways endpoint no
   longer initialises every gateway’s admin settings, which could cause a fatal 
   error (HTTP 500) on stores using certain third-party payment gateways (e.g. ToyyibPay)
   that only register their settings in the WordPress admin.

#### 1.9.4 – 2026/06/13

 * **Redesigned Bluetooth printer setup** — a managed Bluetooth chooser with connection
   timeouts, paired-device discovery on macOS and Linux, clearer scan feedback, 
   and guidance to add a printer manually when none are found.
 * **Added serial printing** — OS-paired Bluetooth Classic printers can now print
   over a serial connection.
 * **Improved Windows printing** — raw printing routes through the Windows print
   spooler, with a dedicated installed-printers section for Windows.
 * **Improved USB printer flow** — the USB printer list loads automatically when
   you open the tab, and the Scan button becomes Refresh.
 * **Clearer network printer scans** — empty network scans now explain how to add
   a printer by manual IP entry, and a crash when closing network printer connections
   was fixed.
 * **Improved PDF receipts for legacy templates** — the legacy receipt template 
   renders through the PDF preprocessor with inline layout styles so downloaded 
   PDFs match previews, and the receipt logo uses the correct image type.
 * **Fixed template syncing** — stopped an infinite sync loop affecting receipt 
   templates.
 * **Added an anonymous analytics identifier** — a random, consent-gated identifier(`
   wcpos_anon_id`) used only on the plugin’s admin welcome screen to keep its first-
   party analytics consistent; it contains no store data, can be rotated or removed
   via WP-CLI, and is deleted on uninstall (see the Privacy section).
 * **Updated translations** — latest POT and translation metadata through 2026.6.4.

#### 1.9.3 – 2026/06/12

 * **Improved web printer setup** — network printer scans now explain browser limitations,
   show structured connection diagnostics, and give protocol-aware error guidance
   for web printing.
 * **Added Local Network Access support** — web print requests and printer probes
   opt into Chrome’s Local Network Access permission so printers on your LAN keep
   working in newer browsers.
 * **Fixed Star WebPRNT connections** — the print protocol is now derived from the
   printer port instead of the page origin, and scanned printer ports are preserved
   when switching vendors.
 * **Improved product sorting settings** — expanded sort options with a more compact
   sort settings row in POS product settings.
 * **Fixed stale variation images** — product variations no longer briefly show 
   a previous variation’s image.
 * **Fixed receipt tax breakdown** — client-rendered receipts keep the tax breakdown,
   and the tax summary stays hidden when taxes are hidden.
 * **Fixed PDF receipt rendering** — receipt markup rewritten for Dompdf so downloaded
   PDFs match previews, with fixed image and column rendering and aligned status-
   chip dots.
 * **Fixed order date syncing** — bare GMT order creation dates are accepted and
   legacy order date validation retries, fixing failed order syncs for some stores.
 * **Added WooCommerce 10.9 compatibility** — accepts the new variation gallery 
   field in the WooCommerce 10.9 REST API.
 * **Updated translations** — includes the latest POT and translation metadata through
   2026.6.2.

#### 1.9.2 – 2026/06/09

 * **Added Star Online cloud printing support** — connect Star Online printers, 
   fetch registered devices, validate printer settings, and submit cloud print jobs
   from WCPOS.
 * **Redesigned printer settings** — refreshed the printer setup screens with shared
   tabs, clearer printer profile fields, improved select styling, and better vendor/
   provider handling.
 * **Improved responsive controls** — tabs can collapse into a select control on
   smaller screens, and native comboboxes scroll and search more reliably on Android
   and other native layouts.
 * **Improved printer discovery UI** — network scans show progress, collapse candidate
   printer lists, and keep web network scanning focused on the Add Printer flow.
 * **Added product sorting controls** — POS product grid and list views now support
   Sort By controls and Meta Data Key selection for custom catalog ordering.
 * **Improved cloud print setup** — the Add Printer wizard no longer pre-selects
   a provider, shows clearer Star Online permission messages, and supports explicit
   encoding settings.
 * **Added server-side PDF receipt downloads** — receipt PDFs now use native WP 
   Overnight PDF bytes where available and render flex/grid layouts and barcodes
   more reliably.
 * **Fixed cloud printer access** — POS clients can read configured cloud printers
   without requiring broader admin permissions.
 * **Fixed blank template titles** — POS templates now get fallback names when the
   saved title is empty.
 * **Updated translations** — includes the latest POT and translation metadata through
   2026.6.0.

#### 1.9.1 – 2026/05/19

 * **Improved session recovery** — expired POS sessions now refresh or ask for login
   correctly, while real permission errors no longer look like login problems.
 * **Fixed theme display issues** — web navigation backgrounds now update correctly
   after changing themes.
 * **Fixed printer setup navigation** — printer vendor tabs now respond correctly
   after the 1.9.0 printer flow changes.
 * **Updated translations** — includes the latest translation metadata for improved
   app language support.

#### 1.9.0 – 2026/05/15

Almost three months of work — here are the highlights:

 * **New receipt template gallery** — pick from ready-made receipt, invoice, quote,
   packing slip, gift receipt, kitchen ticket, and right-to-left templates, and 
   switch between them in settings.
 * **Multiple receipt templates** — install and enable several templates side by
   side instead of being stuck with one.
 * **Thermal printer support** — print receipts directly to thermal printers (58mm
   and 80mm) over network, Bluetooth, or USB, with a guided setup wizard in the 
   WCPOS apps.
 * **Customer Tax IDs** — a new Tax ID field on the customer form, ready for VAT,
   ABN, GST, and other regional tax numbers.
 * **Pro: Coupons at the POS** — search for and apply coupons at checkout, with 
   coupon pills in the cart and support for sequential discounts.
 * **Pro: Refunds at the POS** — refund POS orders directly from the till, with 
   a full audit trail.
 * **Pro: Per-store receipt templates** — assign different templates to different
   stores, and drag-and-drop to reorder them.
 * Plus lots of smaller fixes — tax and coupon calculations, third-party plugin 
   compatibility, faster syncs, and better translations.

#### 1.8.14 – 2026/02/19

 * **Hardened DB migration locking** — upgrade now uses the WordPress core upgrader
   lock (`WP_Upgrading`) with an atomic acquisition check and a shutdown fallback,
   preventing concurrent migrations on high-traffic sites ([#540](https://github.com/wcpos/woocommerce-pos/pull/540))
 * **Fixed offline gateway ignoring POS checkout status** — orders placed with the
   Cash or Card gateway while offline now respect the configured POS checkout status
   instead of defaulting to “processing” ([#544](https://github.com/wcpos/woocommerce-pos/pull/544))
 * **Fixed i18n locale fallback and caching** — translation lookups no longer retry
   locales that returned a definitive 404, reducing unnecessary network requests
   on every page load ([#543](https://github.com/wcpos/woocommerce-pos/pull/543))
 * **Fixed settings page clipping on some WordPress themes** — the left side of 
   the settings panel was being cut off on sites where `#wpcontent` has extra padding(
   [#545](https://github.com/wcpos/woocommerce-pos/pull/545))
 * **Reduced extensions catalog cache TTL** — the extension directory now refreshes
   every hour instead of daily, so newly published extensions appear faster ([#546](https://github.com/wcpos/woocommerce-pos/pull/546))
 * **Allowed php-jwt advisory on PHP 7.4** — resolved a PHP Scoper install failure
   caused by a security advisory that only affects newer PHP versions ([#541](https://github.com/wcpos/woocommerce-pos/pull/541))

#### 1.8.13 – 2026/02/17

 * **Fixed root cause of duplicate product metadata** — POS order processing no 
   longer clones product objects in the stock/coupon path, preventing repeated meta
   rows from being re-saved on each stock update ([#537](https://github.com/wcpos/woocommerce-pos/pull/537))
 * **Added a safer duplicate-meta repair migration** — a new one-time cleanup removes
   only exact duplicate `(post_id, meta_key, meta_value)` rows for POS-touched products/
   variations, reducing API payload size and memory pressure without deleting distinct
   meta values ([#537](https://github.com/wcpos/woocommerce-pos/pull/537))
 * **Expanded regression coverage for discount and stock edge cases** — added tests
   for coupon recalculation behavior, variation pricing paths, and stock-reduction
   lifecycle to prevent regressions ([#537](https://github.com/wcpos/woocommerce-pos/pull/537))
 * **Reduced diagnostic log noise** — high-volume top-meta-key context is now opt-
   in so normal logs stay readable while deep diagnostics remain available when 
   needed ([#537](https://github.com/wcpos/woocommerce-pos/pull/537))

#### 1.8.12 – 2026/02/13

 * **One-time cleanup of duplicate metadata** — a migration automatically removes
   thousands of junk meta rows that accumulated on POS-touched products and orders,
   resolving memory exhaustion and slow API responses on affected stores ([#532](https://github.com/wcpos/woocommerce-pos/pull/532))
 * **Reduced redundant order saves in payment gateways** — Card and Cash gateways
   no longer call `$order->save()` before `payment_complete()` / `update_status()`,
   which already save internally ([#532](https://github.com/wcpos/woocommerce-pos/pull/532))

#### 1.8.11 – 2026/02/13

 * **Fixed critical memory exhaustion on large stores** — API responses were re-
   reading all metadata from the database on every request, causing extreme memory
   usage on stores with large catalogs ([#519](https://github.com/wcpos/woocommerce-pos/pull/519))
 * **Fixed O(n²) loop in order tax calculation** — variable shadowing caused quadratic
   iteration over line item meta ([#519](https://github.com/wcpos/woocommerce-pos/pull/519))
 * **New meta data monitoring** — REST API responses now detect resources with excessive
   metadata and fall back to a safe response mode, preventing out-of-memory crashes(
   [#521](https://github.com/wcpos/woocommerce-pos/pull/521))
 * **Security hardening** — masked auth tokens in test endpoint, added directory
   protection for temp receipt templates ([#519](https://github.com/wcpos/woocommerce-pos/pull/519))
 * Updated all JS and PHP dependencies to latest stable versions ([#521](https://github.com/wcpos/woocommerce-pos/pull/521),
   [#526](https://github.com/wcpos/woocommerce-pos/pull/526))
 * Pro: Redesigned Edit Store page with modern React/Tailwind UI
 * Pro: Fixed SQL injection vulnerability in analytics and store authorization bypass

#### 1.8.9 – 2026/02/11

 * **Completely rebuilt settings page** — new modern architecture with Vite, TanStack
   Router, headless UI components, zustand state management, and responsive layout
   with grouped sidebar navigation ([#495](https://github.com/wcpos/woocommerce-pos/pull/495),
   [#498](https://github.com/wcpos/woocommerce-pos/pull/498), [#505](https://github.com/wcpos/woocommerce-pos/pull/505))
 * **New Extensions directory** — browse, discover, and manage extensions directly
   from POS settings, with Pro integration hooks, GitHub links, and new-extension
   badges ([#497](https://github.com/wcpos/woocommerce-pos/pull/497), [#500](https://github.com/wcpos/woocommerce-pos/pull/500),
   [#510](https://github.com/wcpos/woocommerce-pos/pull/510))
 * **New Logs page** — view, filter, and paginate log entries from file and database
   sources with expandable details and unread counts ([#504](https://github.com/wcpos/woocommerce-pos/pull/504),
   [#511](https://github.com/wcpos/woocommerce-pos/pull/511))
 * **Redesigned email settings** — granular per-email toggles replace the old on/
   off switch, with new cashier notification options ([#502](https://github.com/wcpos/woocommerce-pos/pull/502),
   [#508](https://github.com/wcpos/woocommerce-pos/pull/508))
 * **Fixed POS prices persisting to product database** — price modifications made
   at the POS no longer overwrite the stored product price ([#509](https://github.com/wcpos/woocommerce-pos/pull/509))
 * **Fixed coupon calculations ignoring tax** — coupon subtotal filters are now 
   tax-aware, preventing incorrect discount amounts ([#507](https://github.com/wcpos/woocommerce-pos/pull/507))
 * **Fixed security plugin conflicts** — CSP headers are now stripped on POS pages
   so Content-Security-Policy rules from security plugins no longer break the interface(
   [#503](https://github.com/wcpos/woocommerce-pos/pull/503))
 * **Fixed WordPress 6.7+ compatibility** — deferred translation calls in the Activator
   to avoid the “too early” notice ([#498](https://github.com/wcpos/woocommerce-pos/pull/498))

#### 1.8.8 – 2026/02/06

 * **Completely rebuilt translation system** — switched to i18next with proper plural
   handling and regional locale fallback, loaded on-demand from jsDelivr and decoupled
   from plugin version updates ([#37](https://github.com/wcpos/monorepo/pull/37),
   [#75](https://github.com/wcpos/monorepo/pull/75), [#76](https://github.com/wcpos/monorepo/pull/76),
   [#438](https://github.com/wcpos/woocommerce-pos/pull/438), [#439](https://github.com/wcpos/woocommerce-pos/pull/439),
   [#474](https://github.com/wcpos/woocommerce-pos/pull/474))
 * **Fixed conflict with REST API caching plugins** — POS requests could break entirely
   when a REST API caching plugin was active, this is now resolved ([#421](https://github.com/wcpos/woocommerce-pos/pull/421))
 * **Fixed expired JWT overriding valid authentication** — an expired token could
   silently override a valid cookie session, locking users out unnecessarily ([#472](https://github.com/wcpos/woocommerce-pos/pull/472))
 * **POS discounts no longer wiped by coupons** — applying a coupon to an order 
   with POS-discounted items no longer resets those discounts back to the original
   price ([#464](https://github.com/wcpos/woocommerce-pos/pull/464))
 * **Fixed misc products showing $0 on receipts** — miscellaneous products now display
   the correct price on receipts and order emails ([#436](https://github.com/wcpos/woocommerce-pos/pull/436))
 * **Fixed checkout-to-receipt navigation** — no more crashes or lost order links
   when completing a sale ([#77](https://github.com/wcpos/monorepo/pull/77))
 * **Fixed token refresh on 403 errors** — sessions that appeared “stuck” requiring
   a re-login should now refresh automatically ([#74](https://github.com/wcpos/monorepo/pull/74))
 * **Fixed store switching issues** — switching between stores no longer causes 
   errors or blank screens ([da8c05d](https://github.com/wcpos/monorepo/commit/da8c05d))
 * **Fixed missing data in received template** — the order received page was missing
   link data, now restored ([#476](https://github.com/wcpos/woocommerce-pos/pull/476))
 * **Tightened permission checks** — capability checks now properly match what’s
   configured on the Access settings page ([#467](https://github.com/wcpos/woocommerce-pos/pull/467))
 * **Improved performance during large syncs** — the UI stays responsive while syncing
   large product catalogs ([8657e1f](https://github.com/wcpos/monorepo/commit/8657e1f))
 * **Fixed web hydration in standalone mode** — the web app loads correctly when
   accessed directly without the desktop wrapper ([#19](https://github.com/wcpos/monorepo/pull/19))

## Meta

 *  Version **1.9.14**
 *  Last updated **13 hours ago**
 *  Active installations **5,000+**
 *  WordPress version ** 5.6 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Czech](https://cs.wordpress.org/plugins/woocommerce-pos/), [Dutch](https://nl.wordpress.org/plugins/woocommerce-pos/),
   [English (US)](https://wordpress.org/plugins/woocommerce-pos/), [French (France)](https://fr.wordpress.org/plugins/woocommerce-pos/),
   [Greek](https://el.wordpress.org/plugins/woocommerce-pos/), [Portuguese (Brazil)](https://br.wordpress.org/plugins/woocommerce-pos/),
   [Romanian](https://ro.wordpress.org/plugins/woocommerce-pos/), [Russian](https://ru.wordpress.org/plugins/woocommerce-pos/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/woocommerce-pos/), [Spanish (Colombia)](https://es-co.wordpress.org/plugins/woocommerce-pos/),
   [Spanish (Mexico)](https://es-mx.wordpress.org/plugins/woocommerce-pos/), [Spanish (Spain)](https://es.wordpress.org/plugins/woocommerce-pos/),
   and [Spanish (Venezuela)](https://ve.wordpress.org/plugins/woocommerce-pos/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/woocommerce-pos)
 * Tags
 * [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[inventory](https://wordpress.org/plugins/tags/inventory/)
   [point-of-sale](https://wordpress.org/plugins/tags/point-of-sale/)[pos](https://wordpress.org/plugins/tags/pos/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/woocommerce-pos/advanced/)

## Ratings

 3.7 out of 5 stars.

 *  [  50 5-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/?filter=5)
 *  [  3 4-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/?filter=4)
 *  [  2 3-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/?filter=3)
 *  [  5 2-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/?filter=2)
 *  [  21 1-star reviews     ](https://wordpress.org/support/plugin/woocommerce-pos/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/woocommerce-pos/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/woocommerce-pos/reviews/)

## Contributors

 *   [ kilbot ](https://profiles.wordpress.org/kilbot/)

## Support

Issues resolved in last two months:

     0 out of 2

 [View support forum](https://wordpress.org/support/plugin/woocommerce-pos/)