Removed redirect user roles administrator and shop manager directly to the POS screen upon login. If you still need this fictionality its better to use a dedicated web browser link.
Removed much of the debugging code.
Fixed a bug in the refund code were partial refunds were failing due to a rounding error.
Removed more debugging code.
Fixing i18n comments and removing DS_Store files
Fixed a bug in loycart-pos-ajax-handlers.php
= 1.0.4 – 2025-12-26
High Priority: Mobile & WebView Compatibility
This update focuses on resolving critical execution issues when the plugin is used within the official WordPress mobile app and other integrated WebView environments.
Changed
Removed Native Confirmations: Eliminated all window.confirm() calls that previously caused the POS to hang or fail in mobile applications.
Cart Management: Clearing the cart and removing a customer now executes immediately upon button click for a faster, non-blocking experience.
Held Sales: Deleting a held sale now processes instantly, removing the requirement for browser-level interaction.
Removed Native Prompts: Replaced window.prompt() in the Hold Sale workflow.
Auto-Naming Logic: The system now automatically generates a descriptive name for held orders based on the selected customer’s name or the current timestamp (e.g., “Held Order for John Doe” or “Order held at 14:30”).
Enhanced UI Feedback: Transitioned from blocking system alerts to non-blocking, integrated notifications using the showNotification utility to maintain user awareness of background actions.
Fixed
WebView Execution Lock: Resolved an issue where the POS would become unresponsive in hybrid apps due to unhandled JavaScript UI threads.
Workflow Efficiency: Reduced the number of “taps” required for common administrative actions (Clearing, Holding, and Deleting), optimizing the interface for high-volume retail environments.
Technical Details
Modified File: trunk/assets/js/loycart-pos-app.js.
Namespace Updates: Refined loycart.cartManager.clearCartAndCustomer and loycart.heldSalesManager event listeners to support direct execution.
= 1.0.5 – 2025-12-27
Improvements
Workflow Automation: Appended a hidden carriage return (r) to shipping label barcodes. Scanning a label into the WooCommerce order search field now automatically triggers the search, eliminating the need for a manual “Enter” key press.
Human-Readable Labels: Refined the barcode text display on labels to show only numeric order IDs, providing a cleaner, more professional appearance.
🛠️ Bug Fixes
Data Sanitization: Fixed an issue where the “ORD” prefix was being included in the barcode encoding, which caused search failures in standard WooCommerce configurations.
Mobile App Stability
WebView Performance: Fine-tuned the print delay in the WordPress iOS app environment to ensure high-density barcodes have fully rendered before the print dialog appears.
= 1.0.6 – 2026-01-05
🏗️ Major Architectural Overhaul
JavaScript Modularization: Decoupled the massive POS logic into independent, specialized modules.
This prevents variable collisions, improves load times, and makes the codebase maintainable.
loycart.cartManager: Handles all state, math, and UI rendering for the shopping cart.
loycart.customerManager: Manages registered customer search, selection, and guest checkout states.
loycart.refundManager: Specialized logic for processing returns and order history.
loycart.productManager: Manages the grid display and real-time stock updates.
Namespace Isolation: Wrapped all modules in the window.loycart namespace to protect global variables and ensure cross-module communication is secure.
= 1.0.7 – 2026-01-19
New Features & Enhancements
Added woocommerce coupons
Enhanced Product Visibility Control: Added a third visibility tier, “Hidden from POS & Store,” which sets products to a “Privately Published” (private) status.
Persistent Cart for Hidden Items: Updated cart validation and calculation logic to recognize and retain private products, preventing them from being removed during session reloads.
Targeted Product Queries: Refined the product retrieval logic to allow private items during specific detail lookups (such as cart reloads and barcode scans) while maintaining their exclusion from the standard POS grid.
Bug Fixes
Refund Mode Validation: Implemented strict server-side validation in the Refund Manager to prevent the UI from transitioning into “Return Mode” when an invalid or non-existent Order ID is entered.
Image Path Resolution: Resolved a console 404 (Not Found) error where missing product images or false return values caused invalid URL requests; the system now correctly defaults to the standard WooCommerce placeholder.
UI State Consistency: Fixed an issue where standard checkout action buttons remained visible during refund operations; the UI now correctly toggles between Sale and Refund action groups based on the active mode.
Transients and Caching: Optimized product transients to ensure that changes to visibility settings are reflected accurately across the POS interface.
= 1.0.8 – 2026-01-26
Search reliability and UX
– Enter-to-search: Text searches now execute only when pressing Enter, preventing unintended scans from partial input and avoiding conflicts with barcode scanning.
– Mid-word matching: Partial queries like “Tra” now match “Trading” and similar mid-word substrings so relevant products consistently appear.
– Deterministic results: Implemented ANDed-term matching across title, slug, and excerpt with phrase fallback; added partial SKU matching; bypassed category filters for free-text searches; and improved transient cache keys for consistent results.
Compliance and security
– Prepared SQL statements and scoped PHPCS ignores with documented rationale; removed disallowed hidden files (e.g., .DS_Store).
– Hardened AJAX handlers with additional capability checks and input validation.
Internationalization
– Full i18n sweep across PHP and JavaScript; added text domain loader and languages/ directory; regenerated a complete POT with source references.
– Fixed translation quality warnings by ordering placeholders and adding translators comments in server messages.
UI polish and accessibility
– Product card spacing: Tightened spacing between product name and price in both default and compact densities without increasing the image/icon area height.
– Improved accessibility labels (alt/aria) across product, coupon, and modal controls; localized help content and keyboard shortcut notifications.
Performance and stability
– Cache key updates to avoid stale search results; reduced noisy logs; minor consistency fixes across modals and notifications.
Urgent hotfix
– Fixed a regression where the “Apply Coupon” action no longer responded due to a JavaScript module parse error in assets/js/loycart-pos-couponManager.js. Restored correct event bindings (open modal, select/clear coupon, remove coupon, Escape-to-close) and eliminated duplicate lines causing syntax failures.
– Ensured coupon availability prompt updates reliably and modal presence is validated.
Release safety
– Hardened the release script to honor dry-run mode and added an interactive confirmation for non-dry-run actions to prevent accidental submissions.
Dark mode improvements
– Refund context header and details now use theme variables for color (instead of hard-coded light theme colors), improving text contrast in Dark Mode.
🛠️ Bug Fixes
Data Sanitization: Fixed an issue in the barcode encoding, which caused search failures in standard WooCommerce configurations.
Mobile App Stability
WebView Performance: Fine-tuned the print delay in the WordPress iOS app environment to ensure high-density barcodes have fully rendered before the print dialog appears.
UI polish and accessibility
– Product card spacing: Tightened spacing between product name and price in both default and compact densities without increasing the image/icon area height.
– Further Improved accessibility labels (alt/aria) across product, coupon, and modal controls; localized help content and keyboard shortcut notifications.
Fixed: Prevented the add-to-cart animation from playing when the button is disabled for products limited to one per customer already in the cart.
On the wordpress plugin directory page it states: This plugin hasn’t been tested with the latest three major releases of WordPress.
It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
This notice appeared due to a versioning typo in version 1.0.16 in our ‘Tested up to’ tag (it was listed as 6.91 instead of 6.9).
Please be assured that we always test the plugin against the most recent stable release of WordPress to ensure full compatibility.
We have updated this readme.txt to reflect the correct versioning and clear this notice.
UI Enhancements
– Enhanced search input focus styling for better visibility.
– Improved accessibility with ARIA labels added to key buttons and controls.
– Refined product grid hover effects and transitions.
– Polished modal animations and dark mode consistency.
– Added checkbox in the POS settings to hide or show notification messages in the POS header (default: hidden).
UI & Workflow Enhancements:
– Added confirmation modal for Hold Sale: Users are now prompted to add a note and confirm before holding a sale, preventing accidental holds and improving workflow clarity.
– Added confirmation modal for Clear Cart: Users must now confirm before clearing the cart, reducing accidental cart clearing and improving user experience.
Store Credit System Improvements:
– Store credit coupons are now unpublished (set to draft) when store credit is disabled, and republished when re-enabled.
– Existing store credit coupons are always reused and updated, never duplicated.
– Store credit coupons with a value of 0.00 are hidden from the coupon picker modal.
– Coupon description now includes the customer’s full name and email for easy identification.
– Coupon creation and update logic respects POS settings for sale item exclusions and customer-specific restrictions.
– Backend and modal logic improved for robust coupon management and visibility.
Plugin Website
Visit website
Share Post
Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.