{"id":29233,"date":"2014-05-02T06:04:47","date_gmt":"2014-05-02T06:04:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/woocommerce-pos\/"},"modified":"2026-08-26T07:09:30","modified_gmt":"2026-08-26T07:09:30","slug":"woocommerce-pos","status":"publish","type":"plugin","link":"https:\/\/frp.wordpress.org\/plugins\/woocommerce-pos\/","author":50617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.10.2","stable_tag":"1.10.2","tested":"7.1","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"WCPOS \u2013 Point of Sale for WooCommerce","header_author":"kilbot","header_description":"","assets_banners_color":"726b62","last_updated":"2026-08-26 07:09:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/woocommerce-pos\/","header_author_uri":"http:\/\/wcpos.com","rating":3.7,"author_block_rating":0,"active_installs":5000,"downloads":455657,"num_ratings":83,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.11":{"tag":"0.2.11","author":"kilbot","date":"2014-05-16 01:23:53"},"0.2.12":{"tag":"0.2.12","author":"kilbot","date":"2014-05-31 07:19:41"},"0.2.13":{"tag":"0.2.13","author":"kilbot","date":"2014-06-03 10:26:05"},"0.2.14":{"tag":"0.2.14","author":"kilbot","date":"2014-06-09 08:15:03"},"0.2.15":{"tag":"0.2.15","author":"kilbot","date":"2014-06-20 02:53:40"},"0.3":{"tag":"0.3","author":"kilbot","date":"2014-06-28 15:35:31"},"0.3.1":{"tag":"0.3.1","author":"kilbot","date":"2014-08-31 15:43:03"},"0.3.2":{"tag":"0.3.2","author":"kilbot","date":"2014-09-02 09:00:31"},"0.3.3":{"tag":"0.3.3","author":"kilbot","date":"2014-10-11 23:52:00"},"0.3.4":{"tag":"0.3.4","author":"kilbot","date":"2014-10-16 05:02:03"},"0.3.5":{"tag":"0.3.5","author":"kilbot","date":"2015-05-31 04:38:01"},"0.4.0":{"tag":"0.4.0","author":"kilbot","date":"2015-06-02 07:31:26"},"0.4.1":{"tag":"0.4.1","author":"kilbot","date":"2015-07-10 12:28:46"},"0.4.10":{"tag":"0.4.10","author":"kilbot","date":"2017-05-26 12:02:39"},"0.4.11":{"tag":"0.4.11","author":"kilbot","date":"2017-05-31 11:43:09"},"0.4.12":{"tag":"0.4.12","author":"kilbot","date":"2017-06-05 10:06:33"},"0.4.13":{"tag":"0.4.13","author":"kilbot","date":"2017-06-15 09:17:11"},"0.4.14":{"tag":"0.4.14","author":"kilbot","date":"2017-08-03 11:29:35"},"0.4.15":{"tag":"0.4.15","author":"kilbot","date":"2017-10-12 15:06:11"},"0.4.16":{"tag":"0.4.16","author":"kilbot","date":"2017-11-24 00:43:37"},"0.4.17":{"tag":"0.4.17","author":"kilbot","date":"2017-11-24 00:43:37"},"0.4.18":{"tag":"0.4.18","author":"kilbot","date":"2018-03-08 10:21:54"},"0.4.19":{"tag":"0.4.19","author":"kilbot","date":"2018-09-24 16:53:19"},"0.4.2":{"tag":"0.4.2","author":"kilbot","date":"2015-08-24 09:28:53"},"0.4.20":{"tag":"0.4.20","author":"kilbot","date":"2018-10-23 18:10:34"},"0.4.21":{"tag":"0.4.21","author":"kilbot","date":"2018-11-27 05:28:10"},"0.4.22":{"tag":"0.4.22","author":"kilbot","date":"2019-04-19 06:22:43"},"0.4.23":{"tag":"0.4.23","author":"kilbot","date":"2019-04-22 08:58:53"},"0.4.24":{"tag":"0.4.24","author":"kilbot","date":"2020-04-02 12:42:17"},"0.4.25":{"tag":"0.4.25","author":"kilbot","date":"2020-11-11 11:41:57"},"0.4.26":{"tag":"0.4.26","author":"kilbot","date":"2021-03-30 14:23:41"},"0.4.27":{"tag":"0.4.27","author":"kilbot","date":"2023-01-09 13:50:16"},"0.4.3":{"tag":"0.4.3","author":"kilbot","date":"2015-08-24 12:43:00"},"0.4.4":{"tag":"0.4.4","author":"kilbot","date":"2015-09-27 10:10:10"},"0.4.5":{"tag":"0.4.5","author":"kilbot","date":"2015-10-29 14:38:28"},"0.4.6":{"tag":"0.4.6","author":"kilbot","date":"2016-06-15 09:20:36"},"0.4.7":{"tag":"0.4.7","author":"kilbot","date":"2017-04-20 11:56:24"},"0.4.8":{"tag":"0.4.8","author":"kilbot","date":"2017-04-27 09:02:50"},"0.4.9":{"tag":"0.4.9","author":"kilbot","date":"2017-05-05 10:52:40"},"1.0.0":{"tag":"1.0.0","author":"kilbot","date":"2023-05-03 20:37:15"},"1.0.0-alpha.1":{"tag":"1.0.0-alpha.1","author":"kilbot","date":"2023-01-09 14:07:07"},"1.0.0-alpha.2":{"tag":"1.0.0-alpha.2","author":"kilbot","date":"2023-02-07 17:53:37"},"1.0.0-alpha.3":{"tag":"1.0.0-alpha.3","author":"kilbot","date":"2023-03-04 19:01:39"},"1.0.0-beta.1":{"tag":"1.0.0-beta.1","author":"kilbot","date":"2023-03-18 21:04:57"},"1.0.0-beta.2":{"tag":"1.0.0-beta.2","author":"kilbot","date":"2023-03-27 21:37:49"},"1.0.0-beta.3":{"tag":"1.0.0-beta.3","author":"kilbot","date":"2023-04-04 17:17:37"},"1.0.0-beta.4":{"tag":"1.0.0-beta.4","author":"kilbot","date":"2023-04-06 18:28:46"},"1.0.0-rc.1":{"tag":"1.0.0-rc.1","author":"kilbot","date":"2023-05-01 11:17:49"},"1.0.1":{"tag":"1.0.1","author":"kilbot","date":"2023-05-05 20:19:08"},"1.0.2":{"tag":"1.0.2","author":"kilbot","date":"2023-05-05 20:35:20"},"1.1.0":{"tag":"1.1.0","author":"kilbot","date":"2023-05-19 16:00:44"},"1.10.0":{"tag":"1.10.0","author":"kilbot","date":"2026-08-25 08:05:03"},"1.10.1":{"tag":"1.10.1","author":"kilbot","date":"2026-08-25 20:38:24"},"1.10.2":{"tag":"1.10.2","author":"kilbot","date":"2026-08-26 07:09:30"},"1.2.0":{"tag":"1.2.0","author":"kilbot","date":"2023-06-12 13:19:38"},"1.2.1":{"tag":"1.2.1","author":"kilbot","date":"2023-06-12 14:16:10"},"1.2.2":{"tag":"1.2.2","author":"kilbot","date":"2023-06-21 16:44:13"},"1.2.3":{"tag":"1.2.3","author":"kilbot","date":"2023-06-21 22:51:46"},"1.2.4":{"tag":"1.2.4","author":"kilbot","date":"2023-06-25 18:51:18"},"1.3.0":{"tag":"1.3.0","author":"kilbot","date":"2023-07-27 12:30:29"},"1.3.1":{"tag":"1.3.1","author":"kilbot","date":"2023-07-27 15:42:16"},"1.3.10":{"tag":"1.3.10","author":"kilbot","date":"2023-08-29 10:12:15"},"1.3.11":{"tag":"1.3.11","author":"kilbot","date":"2023-09-27 21:39:15"},"1.3.12":{"tag":"1.3.12","author":"kilbot","date":"2023-09-29 10:48:25"},"1.3.2":{"tag":"1.3.2","author":"kilbot","date":"2023-07-27 18:20:32"},"1.3.3":{"tag":"1.3.3","author":"kilbot","date":"2023-07-28 09:38:48"},"1.3.4":{"tag":"1.3.4","author":"kilbot","date":"2023-07-29 03:29:25"},"1.3.5":{"tag":"1.3.5","author":"kilbot","date":"2023-07-29 08:14:03"},"1.3.6.1":{"tag":"1.3.6.1","author":"kilbot","date":"2023-07-31 11:22:18"},"1.3.7":{"tag":"1.3.7","author":"kilbot","date":"2023-07-31 11:32:39"},"1.3.8":{"tag":"1.3.8","author":"kilbot","date":"2023-08-08 13:08:29"},"1.3.9":{"tag":"1.3.9","author":"kilbot","date":"2023-08-18 18:42:55"},"1.4.0":{"tag":"1.4.0","author":"kilbot","date":"2024-01-11 23:12:54"},"1.4.1":{"tag":"1.4.1","author":"kilbot","date":"2024-01-11 23:26:34"},"1.4.10":{"tag":"1.4.10","author":"kilbot","date":"2024-01-23 22:21:18"},"1.4.11":{"tag":"1.4.11","author":"kilbot","date":"2024-03-09 14:58:06"},"1.4.12":{"tag":"1.4.12","author":"kilbot","date":"2024-03-18 18:27:15"},"1.4.13":{"tag":"1.4.13","author":"kilbot","date":"2024-03-20 00:05:07"},"1.4.14":{"tag":"1.4.14","author":"kilbot","date":"2024-03-20 23:42:52"},"1.4.15":{"tag":"1.4.15","author":"kilbot","date":"2024-03-24 23:24:10"},"1.4.16":{"tag":"1.4.16","author":"kilbot","date":"2024-03-28 23:57:46"},"1.4.2":{"tag":"1.4.2","author":"kilbot","date":"2024-01-12 02:15:29"},"1.4.3":{"tag":"1.4.3","author":"kilbot","date":"2024-01-12 10:09:32"},"1.4.4":{"tag":"1.4.4","author":"kilbot","date":"2024-01-12 12:13:01"},"1.4.5":{"tag":"1.4.5","author":"kilbot","date":"2024-01-14 18:23:01"},"1.4.6":{"tag":"1.4.6","author":"kilbot","date":"2024-01-16 11:00:08"},"1.4.7":{"tag":"1.4.7","author":"kilbot","date":"2024-01-18 19:43:01"},"1.4.8":{"tag":"1.4.8","author":"kilbot","date":"2024-01-21 21:01:06"},"1.4.9":{"tag":"1.4.9","author":"kilbot","date":"2024-01-21 23:03:18"},"1.5.0":{"tag":"1.5.0","author":"kilbot","date":"2024-06-03 13:49:36"},"1.5.1":{"tag":"1.5.1","author":"kilbot","date":"2024-06-03 16:07:51"},"1.6.0":{"tag":"1.6.0","author":"kilbot","date":"2024-06-12 19:47:59"},"1.6.1":{"tag":"1.6.1","author":"kilbot","date":"2024-06-18 21:24:58"},"1.6.2":{"tag":"1.6.2","author":"kilbot","date":"2024-06-20 07:49:50"},"1.6.3":{"tag":"1.6.3","author":"kilbot","date":"2024-06-29 14:06:08"},"1.6.4":{"tag":"1.6.4","author":"kilbot","date":"2024-09-04 20:56:40"},"1.6.5":{"tag":"1.6.5","author":"kilbot","date":"2024-09-04 21:19:30"},"1.6.6":{"tag":"1.6.6","author":"kilbot","date":"2024-09-05 18:40:58"},"1.7.0":{"tag":"1.7.0","author":"kilbot","date":"2024-11-13 12:08:25"},"1.7.1":{"tag":"1.7.1","author":"kilbot","date":"2024-11-20 17:54:47"},"1.7.10":{"tag":"1.7.10","author":"kilbot","date":"2025-05-27 09:53:33"},"1.7.11":{"tag":"1.7.11","author":"kilbot","date":"2025-06-18 11:48:50"},"1.7.12":{"tag":"1.7.12","author":"kilbot","date":"2025-11-13 15:44:21"},"1.7.13":{"tag":"1.7.13","author":"kilbot","date":"2025-11-13 15:47:19"},"1.7.14":{"tag":"1.7.14","author":"kilbot","date":"2025-11-19 16:08:58"},"1.7.2":{"tag":"1.7.2","author":"kilbot","date":"2024-12-27 17:08:10"},"1.7.3":{"tag":"1.7.3","author":"kilbot","date":"2025-03-21 16:52:03"},"1.7.4":{"tag":"1.7.4","author":"kilbot","date":"2025-03-22 12:51:02"},"1.7.5":{"tag":"1.7.5","author":"kilbot","date":"2025-04-09 18:37:39"},"1.7.6":{"tag":"1.7.6","author":"kilbot","date":"2025-04-14 17:42:18"},"1.7.7":{"tag":"1.7.7","author":"kilbot","date":"2025-04-14 20:16:31"},"1.7.8":{"tag":"1.7.8","author":"kilbot","date":"2025-05-06 14:20:45"},"1.7.9":{"tag":"1.7.9","author":"kilbot","date":"2025-05-21 16:08:09"},"1.8.0":{"tag":"1.8.0","author":"kilbot","date":"2025-12-18 18:45:07"},"1.8.1":{"tag":"1.8.1","author":"kilbot","date":"2025-12-19 05:56:22"},"1.8.11":{"tag":"1.8.11","author":"kilbot","date":"2026-02-13 16:37:11"},"1.8.12":{"tag":"1.8.12","author":"kilbot","date":"2026-02-13 18:51:50"},"1.8.13":{"tag":"1.8.13","author":"kilbot","date":"2026-02-17 10:35:58"},"1.8.14":{"tag":"1.8.14","author":"kilbot","date":"2026-02-19 01:13:24"},"1.8.2":{"tag":"1.8.2","author":"kilbot","date":"2025-12-19 19:20:27"},"1.8.3":{"tag":"1.8.3","author":"kilbot","date":"2026-01-04 15:21:31"},"1.8.4":{"tag":"1.8.4","author":"kilbot","date":"2026-01-05 17:36:47"},"1.8.5":{"tag":"1.8.5","author":"kilbot","date":"2026-01-05 18:11:17"},"1.8.6":{"tag":"1.8.6","author":"kilbot","date":"2026-01-06 16:36:52"},"1.8.7":{"tag":"1.8.7","author":"kilbot","date":"2026-01-13 17:03:33"},"1.8.8":{"tag":"1.8.8","author":"kilbot","date":"2026-02-06 20:51:24"},"1.8.9":{"tag":"1.8.9","author":"kilbot","date":"2026-02-11 21:36:49"},"1.9.0":{"tag":"1.9.0","author":"kilbot","date":"2026-05-15 18:28:39"},"1.9.1":{"tag":"1.9.1","author":"kilbot","date":"2026-05-19 16:05:25"},"1.9.10":{"tag":"1.9.10","author":"kilbot","date":"2026-07-21 22:35:58"},"1.9.11":{"tag":"1.9.11","author":"kilbot","date":"2026-07-24 13:52:00"},"1.9.12":{"tag":"1.9.12","author":"kilbot","date":"2026-07-24 18:21:12"},"1.9.13":{"tag":"1.9.13","author":"kilbot","date":"2026-07-26 15:59:57"},"1.9.14":{"tag":"1.9.14","author":"kilbot","date":"2026-07-31 18:55:40"},"1.9.15":{"tag":"1.9.15","author":"kilbot","date":"2026-08-04 14:21:58"},"1.9.16":{"tag":"1.9.16","author":"kilbot","date":"2026-08-04 23:11:05"},"1.9.17":{"tag":"1.9.17","author":"kilbot","date":"2026-08-07 20:07:11"},"1.9.2":{"tag":"1.9.2","author":"kilbot","date":"2026-06-09 13:55:25"},"1.9.3":{"tag":"1.9.3","author":"kilbot","date":"2026-06-12 14:49:26"},"1.9.4":{"tag":"1.9.4","author":"kilbot","date":"2026-06-13 11:58:46"},"1.9.5":{"tag":"1.9.5","author":"kilbot","date":"2026-06-15 14:19:13"},"1.9.6":{"tag":"1.9.6","author":"kilbot","date":"2026-07-08 10:15:50"},"1.9.7":{"tag":"1.9.7","author":"kilbot","date":"2026-07-15 18:15:13"},"1.9.9":{"tag":"1.9.9","author":"kilbot","date":"2026-07-18 15:01:05"}},"upgrade_notice":{"1.10.1":"<p>Fixes variations: readable names on products with three or more attributes, variation images on orders and receipts, and disabled variations no longer for sale at the till. Recommended for anyone selling variable products.<\/p>","1.10.0":"<p>This is a major update. Please don&#039;t update while your store is busy -- pick a time when you have some free time to check everything over, and be ready to roll back if you run into a problem. Don&#039;t update lightly.<\/p>","1.9.0":"<p>This is a big update with breaking changes. If you&#039;re busy, please wait \u2014 there&#039;s nothing urgent in 1.9.0, and it&#039;s safer to give any early bugs a few days to be worked out. Update during quiet time, and always make a backup first.<\/p>"},"ratings":{"1":21,"2":5,"3":2,"4":3,"5":52},"assets_icons":{"icon-128x128-old.png":{"filename":"icon-128x128-old.png","revision":3109703,"resolution":"128x128","location":"assets","locale":"old","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3108986,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3109703,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3599632,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-old.jpg":{"filename":"banner-772x250-old.jpg","revision":3395152,"resolution":"772x250","location":"assets","locale":"old","width":772,"height":250},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3599632,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.11","0.2.12","0.2.13","0.2.14","0.2.15","0.3","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.4.0","0.4.1","0.4.10","0.4.11","0.4.12","0.4.13","0.4.14","0.4.15","0.4.16","0.4.17","0.4.18","0.4.19","0.4.2","0.4.20","0.4.21","0.4.22","0.4.23","0.4.24","0.4.25","0.4.26","0.4.27","0.4.3","0.4.4","0.4.5","0.4.6","0.4.7","0.4.8","0.4.9","1.0.0","1.0.0-alpha.1","1.0.0-alpha.2","1.0.0-alpha.3","1.0.0-beta.1","1.0.0-beta.2","1.0.0-beta.3","1.0.0-beta.4","1.0.0-rc.1","1.0.1","1.0.2","1.1.0","1.10.0","1.10.1","1.10.2","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.3.0","1.3.1","1.3.10","1.3.11","1.3.12","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6.1","1.3.7","1.3.8","1.3.9","1.4.0","1.4.1","1.4.10","1.4.11","1.4.12","1.4.13","1.4.14","1.4.15","1.4.16","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8","1.4.9","1.5.0","1.5.1","1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.7.0","1.7.1","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.8.0","1.8.1","1.8.11","1.8.12","1.8.13","1.8.14","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8","1.8.9","1.9.0","1.9.1","1.9.10","1.9.11","1.9.12","1.9.13","1.9.14","1.9.15","1.9.16","1.9.17","1.9.2","1.9.3","1.9.4","1.9.5","1.9.6","1.9.7","1.9.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3193393,"resolution":"1","location":"assets","locale":"","width":2048,"height":1536}},"screenshots":{"1":"WCPOS main screen"}},"plugin_section":[],"plugin_tags":[282,6601,26270,10229,286],"plugin_category":[45],"plugin_contributors":[80866],"plugin_business_model":[],"class_list":["post-29233","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-inventory","plugin_tags-point-of-sale","plugin_tags-pos","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kilbot","plugin_committers-kilbot"],"banners":{"banner":"https:\/\/ps.w.org\/woocommerce-pos\/assets\/banner-772x250.jpg?rev=3599632","banner_2x":"https:\/\/ps.w.org\/woocommerce-pos\/assets\/banner-1544x500.jpg?rev=3599632","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/woocommerce-pos\/assets\/icon-128x128.png?rev=3108986","icon_2x":"https:\/\/ps.w.org\/woocommerce-pos\/assets\/icon-256x256.png?rev=3109703","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/woocommerce-pos\/assets\/screenshot-1.png?rev=3193393","caption":"WCPOS main screen"}],"raw_content":"<!--section=description-->\n<p><strong>WCPOS turns any device into a point of sale for your <a href=\"https:\/\/www.woocommerce.com\/\">WooCommerce<\/a> store.<\/strong> Same catalog, same stock, same prices \u2014 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. <em>(WCPOS was formerly known as WooCommerce POS.)<\/em><\/p>\n\n<blockquote>\n  <p>\ud83d\udd52 Install and start taking orders in less than 2 minutes.<\/p>\n<\/blockquote>\n\n<h4>\ud83c\udfa5 DEMO<\/h4>\n\n<p>You can see a demo of the WCPOS plugin in action by going to <a href=\"https:\/\/demo.wcpos.com\/pos\">demo.wcpos.com\/pos<\/a> with \ud83d\udd11<code>login\/pass<\/code> : <code>demo\/demo<\/code><\/p>\n\n<p><strong>Desktop Apps:<\/strong>\n\u2b07\ufe0f <a href=\"https:\/\/updates.wcpos.com\/electron\/download\/win32-x64\">Windows<\/a>\n\u2b07\ufe0f <a href=\"https:\/\/updates.wcpos.com\/electron\/download\/darwin-x64\">Mac (Intel)<\/a>\n\u2b07\ufe0f <a href=\"https:\/\/updates.wcpos.com\/electron\/download\/darwin-arm64\">Mac (Apple Silicon)<\/a><\/p>\n\n<p><strong>Mobile Apps (Beta):<\/strong>\n\ud83d\udcf1 <a href=\"https:\/\/testflight.apple.com\/join\/JGBdVRrW\">iOS (TestFlight)<\/a>\n\ud83d\udcf1 <a href=\"https:\/\/play.google.com\/apps\/testing\/com.wcpos.main\">Android (Google Play)<\/a><\/p>\n\n<h4>\u2728 FEATURES<\/h4>\n\n<ul>\n<li><strong>Cross-platform:<\/strong> Accessible via browser, desktop, iOS &amp; Android <em>(mobile apps in beta)<\/em><\/li>\n<li><strong>Offline Storage:<\/strong> Fast product search and order processing<\/li>\n<li><strong>Flexible Cart:<\/strong> Add products not listed in WooCommerce<\/li>\n<li><strong>Barcode Support:<\/strong> Scan products directly into the cart<\/li>\n<li><strong>Receipt Templates:<\/strong> Pick from a built-in gallery \u2014 receipts, invoices, quotes, packing slips, gift receipts, kitchen tickets \u2014 or design your own<\/li>\n<li><strong>Thermal Printing:<\/strong> Print directly to 58mm and 80mm thermal printers over network, Bluetooth, or USB<\/li>\n<li><strong>Customer Tax IDs:<\/strong> Built-in field for VAT, ABN, GST, and other regional tax numbers<\/li>\n<li><strong>Multilingual:<\/strong> Available in most major languages<\/li>\n<li><strong>Built-in Support:<\/strong> Access live chat for instant help<\/li>\n<\/ul>\n\n<h4>\ud83d\udd13 PRO FEATURES<\/h4>\n\n<ul>\n<li><strong>Stock Management:<\/strong> quickly adjust stock levels, pricing and more<\/li>\n<li><strong>Order Management:<\/strong> re-open and print receipts for older orders<\/li>\n<li><strong>Customer Management:<\/strong> create new customers and edit customer details<\/li>\n<li><strong>Payment Terminals:<\/strong> take in-person card payments with Stripe Terminal and SumUp readers<\/li>\n<li><strong>Payment Gateways:<\/strong> check out with any WooCommerce gateway \u2014 Stripe, PayPal, Square, Mollie and more<\/li>\n<li><strong>Coupons:<\/strong> apply coupons at the POS with search, coupon pills, and sequential discounts<\/li>\n<li><strong>Refunds:<\/strong> refund POS orders directly from the till<\/li>\n<li><strong>End of Day Reports:<\/strong> summarise daily sales, transactions, and cash flow for reconciliation<\/li>\n<li><strong>Stores:<\/strong> Manage locations with unique tax settings, pricing and receipts<\/li>\n<li><strong>Priority <a href=\"https:\/\/wcpos.com\/discord\">Discord support<\/a>:<\/strong> one-on-one support via private chat<\/li>\n<\/ul>\n\n<p><em>Discover all PRO features at <a href=\"https:\/\/wcpos.com\/pro\">wcpos.com\/pro<\/a><\/em><\/p>\n\n<h4>\ud83d\udccb REQUIREMENTS<\/h4>\n\n<ul>\n<li>WordPress &gt;= 5.6<\/li>\n<li>WooCommerce &gt;= 5.3<\/li>\n<li>PHP &gt;= 7.4<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic installation<\/h4>\n\n<ol>\n<li>Go to Plugins screen and select Add New.<\/li>\n<li>Search for \"WCPOS\" in the WordPress Plugin Directory.<\/li>\n<li>Install the plugin<\/li>\n<li>Click Activate Plugin to activate it.<\/li>\n<\/ol>\n\n<h4>Pro installation<\/h4>\n\n<p>If you have purchased a license for <a href=\"https:\/\/wcpos.com\/pro\">WCPOS Pro<\/a> please follow the steps below to install and activate the plugin:<\/p>\n\n<ol>\n<li>Go to: https:\/\/wcpos.com\/my-account\/<\/li>\n<li>Under My Downloads, click the download link and save the plugin to your desktop.<\/li>\n<li>Then go to your site, login and go to the Add New Plugin page, eg: http:\/\/&lt;yourstore.com&gt;\/wp-admin\/plugin-install.php?tab=upload<\/li>\n<li>Upload the plugin zip file from your desktop and activate.<\/li>\n<li>Next, go to the POS Settings page and enter your License Key and License Email to complete the activation.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<p>To install a WordPress Plugin manually:<\/p>\n\n<ol>\n<li>Download the WCPOS plugin to your desktop.<\/li>\n<li>If downloaded as a zip archive, extract the Plugin folder to your desktop.<\/li>\n<li>With your FTP program, upload the Plugin folder to the wp-content\/plugins folder in your WordPress directory online.<\/li>\n<li>Go to Plugins screen and find the newly uploaded Plugin in the list.<\/li>\n<li>Click Activate Plugin to activate it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20wcpos%20really%20free%3F\"><h3>Is WCPOS really free?<\/h3><\/dt>\n<dd><p>Yes. The free plugin is a complete point of sale \u2014 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.<\/p><\/dd>\n<dt id=\"do%20i%20need%20anything%20besides%20woocommerce%3F\"><h3>Do I need anything besides WooCommerce?<\/h3><\/dt>\n<dd><p>No. If you have a WooCommerce store, install WCPOS and you're taking orders in under two minutes \u2014 same catalog, same stock, same prices, at the counter.<\/p><\/dd>\n<dt id=\"which%20devices%20does%20it%20run%20on%3F\"><h3>Which devices does it run on?<\/h3><\/dt>\n<dd><p>Any modern browser, plus native desktop apps (Windows, macOS) and iOS &amp; Android apps (mobile in beta). One login, everything stays in sync.<\/p><\/dd>\n<dt id=\"does%20it%20work%20offline%3F\"><h3>Does it work offline?<\/h3><\/dt>\n<dd><p>Yes. Products are stored locally for instant search, so you can keep browsing, building carts and saving orders during a connection drop, and your changes sync automatically when you reconnect. Taking payment is the one step that still needs a connection -- offline checkout is coming in a future release.<\/p><\/dd>\n<dt id=\"what%20hardware%20do%20i%20need%3F\"><h3>What hardware do I need?<\/h3><\/dt>\n<dd><p>Whatever you already have. WCPOS works with standard barcode scanners, 58mm and 80mm thermal receipt printers (network, Bluetooth or USB), and cash drawers \u2014 no proprietary equipment and no lock-in.<\/p><\/dd>\n<dt id=\"can%20i%20take%20card%20payments%3F\"><h3>Can I take card payments?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20free%20and%20pro%3F\"><h3>What's the difference between free and Pro?<\/h3><\/dt>\n<dd><p>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 <a href=\"https:\/\/wcpos.com\/pro\">wcpos.com\/pro<\/a>.<\/p><\/dd>\n<dt id=\"can%20i%20try%20it%20before%20installing%3F\"><h3>Can I try it before installing?<\/h3><\/dt>\n<dd><p>Yes \u2014 there's a live demo at <a href=\"https:\/\/demo.wcpos.com\/pos\">demo.wcpos.com\/pos<\/a> (login <code>demo<\/code> \/ <code>demo<\/code>).<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20help%3F\"><h3>Where do I get help?<\/h3><\/dt>\n<dd><p>Browse the documentation at <a href=\"https:\/\/docs.wcpos.com\">docs.wcpos.com<\/a>, or reach the community and Pro priority support on <a href=\"https:\/\/wcpos.com\/discord\">Discord<\/a>.<\/p><\/dd>\n<dt id=\"what%20data%20does%20wcpos%20send%20outside%20my%20site%3F\"><h3>What data does WCPOS send outside my site?<\/h3><\/dt>\n<dd><p>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 the POS web bundle, other interface assets, and translations from a CDN (jsDelivr); send anonymous usage analytics to wcpos.com <strong>if you opt in<\/strong> (withdraw any time in settings); validate your license key, site identifier (<code>site_uuid<\/code>), and anonymous identifier (<code>anon_id<\/code>) with wcpos.com when you activate Pro; and relay cloud print jobs through the WCPOS Cloud Print relay at cloudprint.wcpos.com <strong>if you use cloud printing<\/strong> \u2014 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 <code>woocommerce_pos_cloud_print_relay_enabled<\/code> filter). Full details are in our <a href=\"https:\/\/wcpos.com\/privacy\">privacy policy<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.10.2 - 2026\/08\/26<\/h4>\n\n<ul>\n<li><strong>Fixed a regression in order save speed for CPT orders<\/strong> -- HPOS orders are not affected.<\/li>\n<\/ul>\n\n<h4>1.10.1 - 2026\/08\/26<\/h4>\n\n<p><strong>A fix for product variations.<\/strong> In 1.10.0 the POS asked WooCommerce for variations the wrong way, and got back data shaped like a product instead of a variation. If you sell variable products, this release matters.<\/p>\n\n<ul>\n<li><strong>Variation names are readable again.<\/strong> On a product with three or more attributes -- say Colour, Size and Fabric -- every variation row showed the same text, so there was no way to tell them apart at the till. They now read as their own attributes, like \"Blue, Large, Cotton\".<\/li>\n<li><strong>Variation images are back.<\/strong> Variation thumbnails were blank in the product list, and a variation added to the cart carried its parent's picture onto the order and the printed receipt. Orders already saved with the wrong picture are left alone -- reaching into completed orders to correct a thumbnail is riskier than the wrong thumbnail.<\/li>\n<li><strong>Disabled variations are no longer for sale in the POS.<\/strong> If you untick \"Enabled\" on a variation in WooCommerce, it now disappears from the POS the same way it disappears from your storefront. Previously it stayed on sale at the till.<\/li>\n<li><strong>Variations you have hidden from the POS no longer count.<\/strong> The variation list showed \"Showing 2 of 3\" for a product with a hidden variation, with no way to reach the third. Hidden and disabled variations are now left out of the list, the count, and the totals on Store Health.<\/li>\n<li><strong>Hiding or showing a product now reaches the tills.<\/strong> Changing POS visibility did not always tell the app anything had changed, so a hidden product could linger on a device. It is announced properly now, and un-hiding brings the product back.<\/li>\n<li><strong>\"Records need attention\" clears when it should.<\/strong> The repair checks looked at products the POS is never allowed to see, so a store with hidden products could show a warning that never went away no matter how many times it synced.<\/li>\n<\/ul>\n\n<p><strong>Please update.<\/strong> If you sell variable products, 1.10.0 is showing your cashiers the wrong information. After updating, the POS re-syncs your variations once on its own -- no action needed.<\/p>\n\n<p><strong>Note for developers:<\/strong> <code>wcpos\/v2<\/code> variations are now served by WooCommerce's own <code>WC_REST_Product_Variations_Controller<\/code>, so a variation document is the wc\/v3 variation shape -- a singular <code>image<\/code>, <code>wc_get_formatted_variation()<\/code> for <code>name<\/code>, and none of the product-only fields 1.10.0 included. <code>GET wcpos\/v2\/variations<\/code> also accepts a plain collection request and returns <code>X-WP-Total<\/code>.<\/p>\n\n<h4>1.10.0 - 2026\/08\/25<\/h4>\n\n<p><strong>A new sync engine.<\/strong> The biggest update since we rebuilt WCPOS in React Native back in 2023. Your store now syncs through a change log -- the POS asks what changed since it last checked, instead of re-downloading your catalogue every time. It is the foundation the offline queue and Store Health below are built on.<\/p>\n\n<ul>\n<li><strong>Prevent overselling (new, optional).<\/strong> Turn it on in Checkout settings: the POS stops you adding more than you have, and the server refuses the order too, so a stale device can't oversell either. Backorders are respected.<\/li>\n<li><strong>Built to survive a dropped connection.<\/strong> Browsing, cart building and saving orders keep working offline, and the new sync engine queues the changes you make and replays them when you reconnect -- receipt emails, and customer, coupon and stock edits on Pro. Anything the server rejects is listed with the reason so you can fix and resend it, instead of disappearing silently. Taking payment is the one step that still needs a connection -- offline checkout, starting with cash, is the focus of 1.11.<\/li>\n<li><strong>Barcode scanning, rebuilt.<\/strong> Scan with the device camera on any platform. Support for USB, serial, Bluetooth and Bluetooth LE scanners alongside keyboard-wedge. A setup wizard and a test panel that measures your scanner and tells you what to fix. Optional scan sounds.<\/li>\n<li><strong>Store Health.<\/strong> New screens showing what's on the device versus the server, real storage usage, sync performance over time, and a searchable log where every warning links to an explanation.<\/li>\n<li><strong>Search that finds what WooCommerce finds.<\/strong> Product search now matches inside words, so compound words work (searching \"saippua\" finds \"Kuorintasaippua\"). Customer search matches full names.<\/li>\n<li><strong>Printing.<\/strong> Star cloud printers negotiate their format properly, receipts can be rendered server-side as an image for printers that need it, and auto-print rules can fire on order creation or only once paid. Offline receipts print in the right language.<\/li>\n<li><strong>Settings redesigned.<\/strong> A calmer, row-based layout with shorter labels. Settings and Store Health now open as panels rather than modals.<\/li>\n<li><strong>Cashiers can create and edit products by default.<\/strong> Deleting stays opt-in, and catalogue edits are checked against real WordPress permissions -- a rejected edit is reverted with the server's reason shown.<\/li>\n<li><strong>Fixed dropdowns not opening on iPad<\/strong>, and language changes not reaching every part of the app.<\/li>\n<\/ul>\n\n<p><strong>Note for developers:<\/strong> 1.10.0 introduces the <code>wcpos\/v2<\/code> REST namespace. The POS now uses it for syncing and for the shared POS services that were previously served from <code>wcpos\/v1<\/code>. The <code>wcpos\/v1<\/code> routes still register but are frozen, and some legacy <code>API\\Settings<\/code> controller methods have been removed. See the full release notes for the complete list of breaking changes.<\/p>\n\n<p><strong>Please don't update lightly.<\/strong> This is a major update -- update when your store is quiet and you have time to check everything over.<\/p>\n\n<h4>1.9.17 - 2026\/08\/07<\/h4>\n\n<ul>\n<li><strong>Smaller plugin package<\/strong> -- the download is around 2.4 MB smaller (optimized template gallery images, removed unused bundled files). This also shrinks the Pro package and resolves installation failures on hosts with restrictive upload or disk limits.<\/li>\n<li><strong>Fixed Pro update downloads using a stale licence key<\/strong> -- changing or re-activating a WCPOS Pro licence now clears WordPress's cached update information, so the next update download always uses the current licence key.<\/li>\n<li><strong>Fixed duplicate cashier identity on multisite<\/strong> -- on multisite networks a cashier could be assigned two different internal IDs depending on which endpoint served them, splitting one user into two identities in the POS. All endpoints now serve a single ID per user.<\/li>\n<li><strong>Hardened the orders API against malformed metadata<\/strong> -- a malformed metadata entry in a batch create\/update could cause a server error partway through the batch, risking duplicate orders on retry. Malformed entries are now safely skipped and invalid IDs rejected up front.<\/li>\n<li><strong>POS audit metadata is now server-authoritative<\/strong> -- order metadata recording which cashier and store created an order is now stamped by the server and can no longer be altered by the client. Cash amounts are also validated more strictly.<\/li>\n<li><strong>Internal cloud print improvements<\/strong> -- consolidated printer-provider handling and the server now reports which template engines each print provider supports.<\/li>\n<\/ul>\n\n<h4>1.9.16 - 2026\/08\/05<\/h4>\n\n<ul>\n<li><strong>Fixed stale price ranges on variable products<\/strong> -- the POS product grid could show an outdated price or price range for a variable product even after variation prices changed, and clearing local data did not help, because the freshly recomputed range was discarded in favour of an old stored value when building the server response. Responses now always serve the current values, so the displayed range matches the live variation prices. The price charged at checkout was always correct -- this fixes what the grid displays. Server-side fix; no app update needed.<\/li>\n<\/ul>\n\n<h4>1.9.15 - 2026\/08\/04<\/h4>\n\n<ul>\n<li><strong>Security: custom thermal receipt templates can no longer run PHP<\/strong> -- a user with POS management access (eg: a shop manager) could embed PHP in a custom thermal receipt template and have it execute when a receipt was rendered, because the thermal engine fell through to the legacy PHP renderer. Thermal templates now render exclusively through the safe Mustache\/XML pipeline, which discards embedded PHP; malformed markup fails closed. <strong>If you use custom receipt templates, please update.<\/strong><\/li>\n<li><strong>More reliable thermal receipt rendering<\/strong> -- thermal render failures are now logged so a broken template is diagnosable, and browser-printed HTML receipts are constrained to the configured paper width so wide rows no longer overflow the roll.<\/li>\n<\/ul>\n\n<h4>1.9.14 - 2026\/07\/31<\/h4>\n\n<ul>\n<li><strong>Receipt timestamps now respect your WordPress time format<\/strong> -- 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 &gt; General, while the store locale continues to control the date language.<\/li>\n<li><strong>Hardened cloud-print job handling<\/strong> -- 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.<\/li>\n<li><strong>PHP 8.4+ build hardening<\/strong> -- 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.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.13 - 2026\/07\/26<\/h4>\n\n<ul>\n<li><strong>Fixed garbled prints on Star CloudPRNT printers<\/strong> -- 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.<\/li>\n<\/ul>\n\n<h4>1.9.12 - 2026\/07\/24<\/h4>\n\n<ul>\n<li><strong>Fixed cloud printing to Star TSP100 printers<\/strong> -- 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.<\/li>\n<li><strong>Customer receipt downloads are now opt-in<\/strong> -- the Receipt button on My Account &gt; Orders (added in 1.9.11) is now off by default and turned on under Settings &gt; General &gt; Customers, with an optional picker to choose which template customers get. Stores that want it must enable it; the [wcpos_receipt] shortcode is unaffected.<\/li>\n<li><strong>Fixed the Cloud Print printer name being squeezed<\/strong> -- 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.<\/li>\n<li><strong>Fixed receipt template selection for downloaded receipts<\/strong> -- gallery templates now resolve correctly for customer receipt links, and the storefront receipt uses the template you selected.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.11 - 2026\/07\/24<\/h4>\n\n<ul>\n<li><strong>New: WCPOS Cloud Print relay<\/strong> -- 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.<\/li>\n<li><strong>New: Cloud Print queue<\/strong> -- 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.<\/li>\n<li><strong>New: receipts on your online store<\/strong> -- customers can download their order receipt as a PDF, rendered with your WCPOS receipt template, from a new Receipt button on My Account &gt; Orders. A [wcpos_receipt] shortcode is also available for the order-received or custom pages.<\/li>\n<li><strong>Fixed cloud printers that mangle the poll URL<\/strong> -- 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.<\/li>\n<li><strong>Fixed the WCPOS Pro license image<\/strong> -- the Pro panel now loads its image correctly.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.10 - 2026\/07\/22<\/h4>\n\n<ul>\n<li><strong>Fixed stale prices on products converted from simple to variable<\/strong> -- 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.<\/li>\n<li><strong>Fixed a fatal error in the receipt template editor on translated stores<\/strong> -- receipt previews no longer crash when a translated label contains a literal percent sign (reported on Czech stores).<\/li>\n<li><strong>Fixed cloud printer polling<\/strong> -- 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.<\/li>\n<li><strong>Refresh button on the Extensions screen<\/strong> -- re-check the extensions catalogue on demand instead of waiting for the hourly cache to expire.<\/li>\n<li><strong>Fixed the missing POS favicon<\/strong> -- POS browser tabs and home-screen shortcuts show the WCPOS icon again.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.9 - 2026\/07\/18<\/h4>\n\n<ul>\n<li><strong>Security: hardened receipt\/report template file resolution<\/strong> -- 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.<\/li>\n<li><strong>Fixed payment links blocked by trailing-slash rewrite rules<\/strong> -- 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.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.8 - 2026\/07\/17<\/h4>\n\n<ul>\n<li><strong>Fixed blocked payment and receipt links on https stores<\/strong> -- 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).<\/li>\n<li><strong>Force SSL toggle restored<\/strong> -- 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.<\/li>\n<\/ul>\n\n<h4>1.9.7 - 2026\/07\/15<\/h4>\n\n<ul>\n<li><strong>Receipts can now show savings<\/strong> -- receipt templates can display regular prices, per-line savings and a Total Saved line, with correct right-to-left (RTL) previews and localized labels.<\/li>\n<li><strong>Better black &amp; white printing<\/strong> -- gallery receipt templates now print safely on B&amp;W receipt printers, while PDF receipts keep their colours.<\/li>\n<li><strong>Resizable template editor panel<\/strong> -- drag to resize the fields panel in the receipt template editor.<\/li>\n<li><strong>Improved welcome-screen analytics<\/strong> -- 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.<\/li>\n<li><strong>Fixes<\/strong> -- order version stamping now only happens when the POS creates an order; safer file-permission fallback when WCPOS writes files.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.6 - 2026\/06\/17<\/h4>\n\n<ul>\n<li><strong>Cash drawer support<\/strong> -- 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.<\/li>\n<li><strong>Fixed an analytics event firing too often<\/strong> -- the upgrade prompt \"viewed\" event no longer fires on every admin page load.<\/li>\n<li><strong>Updated translations.<\/strong><\/li>\n<\/ul>\n\n<h4>1.9.5 - 2026\/06\/15<\/h4>\n\n<ul>\n<li><strong>Fixed a payment gateways API crash<\/strong> -- 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.<\/li>\n<\/ul>\n\n<h4>1.9.4 - 2026\/06\/13<\/h4>\n\n<ul>\n<li><strong>Redesigned Bluetooth printer setup<\/strong> -- 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.<\/li>\n<li><strong>Added serial printing<\/strong> -- OS-paired Bluetooth Classic printers can now print over a serial connection.<\/li>\n<li><strong>Improved Windows printing<\/strong> -- raw printing routes through the Windows print spooler, with a dedicated installed-printers section for Windows.<\/li>\n<li><strong>Improved USB printer flow<\/strong> -- the USB printer list loads automatically when you open the tab, and the Scan button becomes Refresh.<\/li>\n<li><strong>Clearer network printer scans<\/strong> -- empty network scans now explain how to add a printer by manual IP entry, and a crash when closing network printer connections was fixed.<\/li>\n<li><strong>Improved PDF receipts for legacy templates<\/strong> -- 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.<\/li>\n<li><strong>Fixed template syncing<\/strong> -- stopped an infinite sync loop affecting receipt templates.<\/li>\n<li><strong>Added an anonymous analytics identifier<\/strong> -- a random, consent-gated identifier (<code>wcpos_anon_id<\/code>) 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).<\/li>\n<li><strong>Updated translations<\/strong> -- latest POT and translation metadata through 2026.6.4.<\/li>\n<\/ul>\n\n<h4>1.9.3 - 2026\/06\/12<\/h4>\n\n<ul>\n<li><strong>Improved web printer setup<\/strong> -- network printer scans now explain browser limitations, show structured connection diagnostics, and give protocol-aware error guidance for web printing.<\/li>\n<li><strong>Added Local Network Access support<\/strong> -- web print requests and printer probes opt into Chrome's Local Network Access permission so printers on your LAN keep working in newer browsers.<\/li>\n<li><strong>Fixed Star WebPRNT connections<\/strong> -- the print protocol is now derived from the printer port instead of the page origin, and scanned printer ports are preserved when switching vendors.<\/li>\n<li><strong>Improved product sorting settings<\/strong> -- expanded sort options with a more compact sort settings row in POS product settings.<\/li>\n<li><strong>Fixed stale variation images<\/strong> -- product variations no longer briefly show a previous variation's image.<\/li>\n<li><strong>Fixed receipt tax breakdown<\/strong> -- client-rendered receipts keep the tax breakdown, and the tax summary stays hidden when taxes are hidden.<\/li>\n<li><strong>Fixed PDF receipt rendering<\/strong> -- receipt markup rewritten for Dompdf so downloaded PDFs match previews, with fixed image and column rendering and aligned status-chip dots.<\/li>\n<li><strong>Fixed order date syncing<\/strong> -- bare GMT order creation dates are accepted and legacy order date validation retries, fixing failed order syncs for some stores.<\/li>\n<li><strong>Added WooCommerce 10.9 compatibility<\/strong> -- accepts the new variation gallery field in the WooCommerce 10.9 REST API.<\/li>\n<li><strong>Updated translations<\/strong> -- includes the latest POT and translation metadata through 2026.6.2.<\/li>\n<\/ul>\n\n<h4>1.9.2 - 2026\/06\/09<\/h4>\n\n<ul>\n<li><strong>Added Star Online cloud printing support<\/strong> -- connect Star Online printers, fetch registered devices, validate printer settings, and submit cloud print jobs from WCPOS.<\/li>\n<li><strong>Redesigned printer settings<\/strong> -- refreshed the printer setup screens with shared tabs, clearer printer profile fields, improved select styling, and better vendor\/provider handling.<\/li>\n<li><strong>Improved responsive controls<\/strong> -- tabs can collapse into a select control on smaller screens, and native comboboxes scroll and search more reliably on Android and other native layouts.<\/li>\n<li><strong>Improved printer discovery UI<\/strong> -- network scans show progress, collapse candidate printer lists, and keep web network scanning focused on the Add Printer flow.<\/li>\n<li><strong>Added product sorting controls<\/strong> -- POS product grid and list views now support Sort By controls and Meta Data Key selection for custom catalog ordering.<\/li>\n<li><strong>Improved cloud print setup<\/strong> -- the Add Printer wizard no longer pre-selects a provider, shows clearer Star Online permission messages, and supports explicit encoding settings.<\/li>\n<li><strong>Added server-side PDF receipt downloads<\/strong> -- receipt PDFs now use native WP Overnight PDF bytes where available and render flex\/grid layouts and barcodes more reliably.<\/li>\n<li><strong>Fixed cloud printer access<\/strong> -- POS clients can read configured cloud printers without requiring broader admin permissions.<\/li>\n<li><strong>Fixed blank template titles<\/strong> -- POS templates now get fallback names when the saved title is empty.<\/li>\n<li><strong>Updated translations<\/strong> -- includes the latest POT and translation metadata through 2026.6.0.<\/li>\n<\/ul>\n\n<h4>1.9.1 - 2026\/05\/19<\/h4>\n\n<ul>\n<li><strong>Improved session recovery<\/strong> -- expired POS sessions now refresh or ask for login correctly, while real permission errors no longer look like login problems.<\/li>\n<li><strong>Fixed theme display issues<\/strong> -- web navigation backgrounds now update correctly after changing themes.<\/li>\n<li><strong>Fixed printer setup navigation<\/strong> -- printer vendor tabs now respond correctly after the 1.9.0 printer flow changes.<\/li>\n<li><strong>Updated translations<\/strong> -- includes the latest translation metadata for improved app language support.<\/li>\n<\/ul>\n\n<h4>1.9.0 - 2026\/05\/15<\/h4>\n\n<p>Almost three months of work \u2014 here are the highlights:<\/p>\n\n<ul>\n<li><strong>New receipt template gallery<\/strong> \u2014 pick from ready-made receipt, invoice, quote, packing slip, gift receipt, kitchen ticket, and right-to-left templates, and switch between them in settings.<\/li>\n<li><strong>Multiple receipt templates<\/strong> \u2014 install and enable several templates side by side instead of being stuck with one.<\/li>\n<li><strong>Thermal printer support<\/strong> \u2014 print receipts directly to thermal printers (58mm and 80mm) over network, Bluetooth, or USB, with a guided setup wizard in the WCPOS apps.<\/li>\n<li><strong>Customer Tax IDs<\/strong> \u2014 a new Tax ID field on the customer form, ready for VAT, ABN, GST, and other regional tax numbers.<\/li>\n<li><strong>Pro: Coupons at the POS<\/strong> \u2014 search for and apply coupons at checkout, with coupon pills in the cart and support for sequential discounts.<\/li>\n<li><strong>Pro: Refunds at the POS<\/strong> \u2014 refund POS orders directly from the till, with a full audit trail.<\/li>\n<li><strong>Pro: Per-store receipt templates<\/strong> \u2014 assign different templates to different stores, and drag-and-drop to reorder them.<\/li>\n<li>Plus lots of smaller fixes \u2014 tax and coupon calculations, third-party plugin compatibility, faster syncs, and better translations.<\/li>\n<\/ul>","raw_excerpt":"Turn any device into a register for your WooCommerce store \u2014 same catalog, stock and prices, online or off.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/29233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=29233"}],"author":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kilbot"}],"wp:attachment":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=29233"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=29233"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=29233"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=29233"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=29233"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=29233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}