- [security] Square and Mollie payment amounts are now derived entirely from the server-side cart, preventing tampered checkout requests from altering the charged or recorded totals
- [security] Braintree and Square now charge the order's locked total instead of a live-recomputed cart total at payment time
- [security] AI Shopping Agent endpoint now requires a valid nonce or logged-in user, so unauthenticated requests can no longer consume AI credits
**๐ณ Payments**
- [fix] Added deterministic idempotency keys to Mollie and Square payments, preventing duplicate charges on webhook retries and double-submits
- [fix] Payment no longer processes twice per checkout when a legacy standalone gateway addon (Stripe, PayPal, Square, Cash on Delivery) is active alongside the core gateway
- [fix] Fixed a fatal error on the payment page when the Subscriptions addon is active
**๐ Checkout & Shipping**
- [add] Shipping methods now show a loading overlay while rates are being fetched, and rates refresh only after all required address fields are filled
- [fix] Simplified and fixed the billing-to-shipping address copying at checkout
**๐จ Storefront & Admin**
- [fix] Restored shop block styling and Tailwind classes in the block editor preview
- [ui] Shop page filter bar now scrolls horizontally on narrow screens, with corrected filter dropdown positioning
- [add] AI settings now show connection-aware Connectivity and Usage tabs, plus a "Connect AI" admin-bar shortcut when the store is disconnected
- [fix] Success toaster now appears after connecting AI from the Settings page popup
1.43 - 2026-07-06
- [add] Orders now store the selected shipping method and display its name in the order details
- [add] Order API responses now include coupon, shipping method, and shipping method label data
- [add] Extensibility slot on the order details page for addons to inject custom content
- [ui] Responsive layout improvements across all admin pages - dashboard, products, orders, customers, reports, coupons, attributes, brands, categories, tags, shipping, tax, and help
1.42.2 - 2026-07-04
- [add] Select settings fields can now allow free-text input - pick from the list or type your own value
- [add] Store address State and City fields now let you type a custom value when it isn't in the list
- [fix] Reordered the store address fields to the standard country-first order
- [ui] Added help descriptions to the remaining settings fields
1.42.1 - 2026-07-03
- [add] Test-mode banner on the storefront for logged-in admins, with a "Go Live" shortcut - so admins can tell that customers are blocked at checkout while the store is in Test mode
- [fix] Test mode now also hides single product pages and the product archive, which were still reachable by direct URL
- [fix] "Store Launching Soon" page no longer renders a duplicate, misplaced header/footer and now shows the theme footer correctly
1.42 - 2026-07-03
**๐ Security**
- [security] Prevented SQL injection through ORDER BY identifier validation in database queries
- [security] Replaced raw unserialize() with maybe_unserialize() in abandoned cart retrieval to harden against object injection
- [security] Stripe payment intent creation now enforces order ownership
**โจ New**
- [add] Generate and share a payment link for unpaid orders directly from the order screen
- [add] Editable abandoned-cart reminder email popup with an automatic daily reminder cron
- [add] Failed payments now show a proper "Failed" order status instead of "N/A"
**๐ณ Payments**
- [fix] Cash on Delivery no longer creates a false transaction entry on order placement
- [fix] Stripe Buy Now, Pay Later methods are hidden when the order exceeds their maximum amount
- [fix] Unified backend payment lock stops the cart from changing during payment
- [fix] Checkout now auto-selects the cheapest available shipping method
- [fix] A shipping maximum of 0 now correctly means "unlimited" instead of disabling the method
- [fix] Draft and other non-published products can no longer be added to the cart
**๐ฆ Orders & Reports**
- [fix] Clearer feedback and error handling for invalid or missing order IDs
- [fix] Order amount getters now return floats for PHP 8.x strict-type safety
- [fix] Revenue report validates its date range against the supported ranges
**๐จ Storefront & Email**
- [ui] Fixed the shop page on mobile and tablet: responsive product grid and full-height filter drawer
- [content] Rewrote all default transactional email templates (order, refund, account) for clearer copy
**๐ WordPress.org & Developer**
- [i18n] Resolved WordPress.org guideline issues: text domain/i18n, CDN asset offloading, and composer.json
- [docs] Disclosed all external services in the readme
- [docs] Shortened the plugin display name and cleaned up readme metadata
- [test] Fixed OrderFactory test failures from non-scalar defaults and documented the related test bugs
1.41 - 2026-06-23
- [add] Added a Partially Refunded order email for customers and admins
- [security] Order details and payment endpoints are now restricted to the order owner, preventing unauthorized access to other customers' orders
- [fix] Per-item tax is now rounded before summing to fix a tax rounding discrepancy
- [add] Added input validation on checkout form fields
- [add] Unified Pro license and API key into a single connectivity authentication method
- [fix] Fixed editor modal flicker when the store is already connected
- [fix] Fixed the dashboard stats card not showing its loading state
- [fix] Single product report page no longer fires its data requests twice on load
- [fix] Fixed transaction ID handling on the customer details page
- [ui] Renamed "Dimension" to "Package Dimension" in the add product page pricing section
1.40.2 - 2026-06-16
- [add] Added a Subscriptions Overview card to the dashboard reports
- [fix] Fixed an order amount mismatch when the cart changes during checkout
- [fix] Shipping method ID is now validated before being stored in the cart
1.40 - 2026-06-16
**๐ค NEW: Agentic AI - Your 24/7 AI Sales & Management Team**
The headline feature of 1.40. EasyCommerce now ships autonomous AI agents that sell on your storefront and manage your store from the admin - a first for WordPress ecommerce.
- **Shopping Agent** - conversational storefront chatbot that searches your catalog, checks stock, applies coupons, places orders, and delivers payment links, all in one chat
- **Store Copilot** - natural-language admin assistant; renders responses as HTML and supports multi-line input via Shift+Enter
- Added PayPal backend validation and improved payment form handling
**๐ช Store**
- Added store visibility settings with store mode (coming soon / maintenance)
- Added admin bar indicator for store mode
- Added currency mismatch notice in settings
- Added payment breakdown in order details
**๐ Bug Fixes**
- Fixed dependent addon installation failing for non-canonical plugin directories
- Fixed abandoned cart clean action not working
- Fixed email sending issues including missing refund emails and empty recipient guard
- Fixed help and support page doc API path
- Fixed products tab display issue
**๐จ UI**
- Updated sidebar icons with hover and active states
- Fixed active menu color and hover icon in sidebar
- Updated order fulfillment status colors to match dropdown
**โ๏ธ Developer / CI**
- Added PR quality check workflow
- Added PHPUnit test suite with PSR-4 layout and base test case
- Added Reports architecture documentation
1.29 - 2026-04-14
- [fix] Fix initialization error
- [fix] Fix Braintree error message handling
- [fix] Fix API key modal error
- [fix] Fix AI assistant button error
- [fix] Fix coupon discount type field error
- [fix] Fix out of stock issue for templates 1 and 3
- [fix] Fix stock badge initialization issue
- [fix] Fix product count issue on single product page
- [fix] Prevent adding out of stock products to cart
- [fix] Add correct link for addon page
- [feat] Add stock badge feature with enable/disable option
- [feat] Add stock badge for templates 1, 2, and 3
- [feat] Add fallback value to stock badge
- [feat] Set stock badge button default value
- [feat] Update stock count logic
- [feat] Preserve dashboard data when navigating setup wizard
- [feat] Reset offer value to empty array when switching to Free Products type
- [ui] Change background color for stock badge
1.28 - 2026-04-02
- [feat] Add store status feature - display status badge on shop, checkout, and dashboard pages
- [feat] Add visibility tab - visibility settings for store pages
- [feat] Remove store mode field from business settings tab
- [ui] Improve store status badge styling and add dot indicator
- [ui] Improve multicheck render function styling
- [ui] Update tab content and layout across store pages
- [ui] Include utility helper class in checkout template 2
- [fix] Fix stock status style issue
- [refactor] Restructure store mode function for improved maintainability
1.27 - 2026-03-15
- [feat] Add payment method API with enhanced checkout flow - store selected payment method in cart data
- [feat] Add fallback payment method selection when selected method is unavailable for digital products
- [feat] Add payment method handling in checkout templates 2 and 3
- [fix] Fix downloads pagination issue in dashboard
- [fix] Fix navigation issues for dashboard downloads, transactions, and orders tabs
- [fix] Fix shipping tax calculation when billing/shipping countries differ
- [fix] Fix shipping method radio button value type in order summary
- [fix] Fix various PHP warnings
- [refactor] Optimize code and improve payment method selection logic
1.26 - 2026-03-12
- [fix] Fix order status display in orders tab, recent orders widget, and order info
- [fix] Fix order notes status format consistency
- [refactor] Stripe code refactoring for improved maintainability
- [refactor] Replace PascalCase naming with snake_case naming convention
- [db] Add one-time migration code for future updates
- [fix] Declare variables for order and fulfill statuses functions
1.25 - 2026-03-12
- [security] Fix privilege escalation vulnerability (CVE-2026-3397, CVSS 8.8) in REST API profile endpoint
- [feat] Separate product and shipping tax - display taxes independently in admin and frontend order views
- [feat] Add business address fields settings for tax calculations
- [feat] RTL support for all admin pages - settings, dashboard, products, orders, customers, coupons, transactions, checkout templates
- [fix] Shipping tax calculation when billing/shipping countries differ
- [fix] Disable shipping taxable button when shipping country is not in taxable country list
- [fix] Show discount label only when coupon is applied
- [fix] Show shipping and discount in order details only when greater than 0
- [fix] Fix transaction ID display - limit to 10 characters visible, store 13 characters
- [fix] Fix partial refund display - add colored badge for order count
- [fix] Fix order note default appearing issue
- [fix] Fix logs API permission issue
- [fix] Fix checkout preview button functionality
- [fix] Fix shipping method radio button value type in order summary
- [fix] Fix Stripe payment element load errors
- [fix] Fix title length truncation in product lists
- [fix] Improve cart fragment updates on billing address changes
- [fix] Improve payment method updates when amount changes
- [ui] Add padding to settings and help/support pages
- [ui] Fix dashboard visibility issues
1.24 - 2026-03-03
- [fix] Fix PayPal breakdown issue and payment payload bugs
- [fix] Fix shipping fee calculation issues during checkout
- [fix] Fix cart API response issues
- [imp] Update PayPal JavaScript integration
- [imp] Improve prompts for AI image generator, image enhancement, and analyst templates
1.23 - 2026-02-26
- [fix] Fix fatal error while activating this plugin in (WP 6.0) & (PHP 7.4) version
- [fix] Handle empty results in AI data retrieval. Return 'no data found' for missing data
- [fix] Fix save button text is not updating based on the status dropdown field
- [fix] Fix variation not displaying on frontend
- [feat] Change discount type input field from dropdown to radio
- [feat] Use active or inactive dropdown to save coupon status
- [ui] Use dropdown and remove active and inactive toggle switcher for coupon creation
- [ui] Make some changes in the coupon creation UI
- [refactor] Remove unused variable and redundant attribute deletion logic in product variations
1.22 - 2026-02-26
- [feat] Improve smart search functionality with enhanced fuzzy matching
- [feat] Add SKU generation for price items based on product title and attributes
- [fix] Remove border from add-to-cart button on shop page
- [fix] Fix image editor file missing error
- [fix] Fix duplicate attribute issue in product editor
- [fix] Fix demo product import errors
- [fix] Resolve undefined variable warning
- [fix] Remove duplicate id and slug in taxonomy handling
- [ui] Change styling of 'partially refunded' status across all admin screens
- [ui] Add styling for partiallyRefunded order status in dashboard
- [ui] Update navigation links to point to 'get-pro' page in Header, ProModal, and CommonHeader components
- [refactor] Refactor abandoned cart API methods to simplify naming conventions
- [refactor] Refactor abandoned cart methods to unify naming conventions and improve clarity
1.21 - 2026-02-24
- [feat] Bulk delete functionality for taxonomies - Added bulk delete for attributes, brands, categories, and tags with confirmation modals in both API and frontend
- [feat] Store updater automation - Enhanced store update mechanism
- [add] Documentation links for shipping and taxation settings screens
- [add] Hamburger icon at the top of order single page
- [add] Filter to prepare method of AI service
- [fix] 'Read more' button displayed even when summary is not too long
- [fix] SKU calculation logic to handle previous SKU data correctly
- [fix] Pro menu not navigating to 'pro' page
- [fix] AI modal access condition based on licensing status
- [fix] Package compatibility issues
- [fix] CSS consistency for shipping and taxation screen
- [refactor] Refactor sidebar rendering functions and move to helpers
- [refactor] Refactor API modal components and improve user session handling
- [refactor] Remove unnecessary dependency from SKU component useEffect
- [refactor] Button styles for bulk delete functionality across attributes, brands, categories, and tags