== Changelog ==

= 1.8.0 - 20/04/2026 =

- Added: Multi-Currency native feature (addon) with currency switcher.
- Added: Product bundle feature.
- Added: Added activity & custom error logger.
- Fixed: Prevented the cart from being cleared when adding recurring or subscription products.
- Fixed: Added missing digital-auto-complete flag for subscription products.
- Fixed: Prevent subscription reactivation before payment.
- Fixed: Dashboard page detection (query var), fixed frontend order pagination.
- Fixed: Payment gateway scripts (js-sdk) loading on payment-method list page (#SE-486).
- Fixed: Cart show wrong coupon amount when tax applied (order amount/discount amount was not affected).
- Fixed: Review showing in comments.
- Improved: Review & product comment UI updated & cleanup redundant scss file.
- Fixed: review rating count when review/comment not approved (SE-504).
- Improved: Added drag-drop support in deployment upload button.
- Improved: Marked subscription as manual when payment-method (token) gets deleted by user.
- Improved: Add shorthand currency formatting and helper updates.
- Improved: Revamped checkout script. Added support for developing payment gateway as 3rd party plugin.
- Improved: Added price type to REST API error responses.
- Improved: Revamped variation builder, improving UIUX.
- Improved: Fixed price editor & improved previously used widget with UI improved.
- Improved: Updated cart quantity input templates to explicitly disable inputs at min/max boundaries.
- Improved: Improved cross-sell responsiveness on mobile (2 columns).
- Improved: Refactored `cart.js` with debounced change handlers for quantity inputs.
- Improved: Increased `remove_empty_spaces` hook priority.
- Improved: Store pre-calculated min/max prices for faster rendering.
- Improved: User dashboard sidebar & content section responsive UI.
- Improved: Improved user's `payment-method` list and `add-new-payment` UI.
- Fixed: Added js handler for `menu-compact` button and improved the compact menu UI.
- Fixed: Nonce error (request 403) on ajax login.
- Fixed: Pending status not showing on `Installment Plan` status dropdown after being selected.
- Fixed: Stripe recurring payment order context fatal error fixed.

= 1.7.6 - 18/03/2026 =

- Fixed: Resolved Stripe amount bug by converting amounts to cents correctly.
- Fixed: Prevented error in DOM utility `prop()` when elements array is empty.
- Added: Added `rounding_precision` to currency options.
- Improved: Included `localeConv` in frontend assets.
- Improved: Passed currency data to payment gateways.
- Added: Added new JS currency utils and formatting functions.

= 1.7.5 - 12/03/2026 =

- Added: Now coupon can be created for specific products (and prices).
- Improved: Added specific customer option for coupon restriction.
- Fixed: Stripe payment intent setup request for subscription payment was failing for renewal payment.
- Fixed: Automatic renewal payment orders now correctly transition to completed status.
- Fixed: Subscription renewal dates (next payment and last payment) not updating for already active subscriptions.
- Fixed: Subscription `_last_payment_date` was not updating.
- Fixed: Installment detail toggle was not working on single product page with single price.
- Improved: Simplified stripe checkout backend process.
- Improved: Stripe checkout "Save payment method" checkbox is now forced checked and read-only for subscription purchases.
- Improved: Enhanced core subscription logic for more reliable schedule recalculation.
- Improved: Order “Pay Now” will work with failed orders too.
- Improved: Subscription will show “Pay Now” if renewal failed for the subscriber to retry manual payment.
- Improved: Order & subscription list table shows short date to improve visibility of other column data.
- Improved: Page loading effects (loading animation) & other CSS animation/transition across all dashboard pages.
- Improved: Price editor UIUX.
- Improved: Both analytics dashboard date-range picker improved with homegrown package.
- Improved: All list-table UI replaced with very own homebrewed list-table package.
- Fixed: Variation price was not calculated accurately while the item being added to the cart.
- Fixed: Product description block editor preview.
- Improved: Added auto-save to product description block editor.
- Fixed: `view_cart` trigger updated with correct data & trigger within the Mini-Cart.
- Fixed: Customer select dropdown was only showing first 10 items.
- Improved: Added `gravatar` & full name in customer dropdown.
- Fixed: Cart quantity input buttons (inc/dec) concatenate number without calculating.
- Fixed: `Minimum amount` validation was not working while applying coupon.
- Fixed: Minor UI improvements.

= 1.7.4 - 01/03/2026 =

- Added: Product & User Specific coupon creation options.
- Improved: Set Stripe `capture_method` to `automatic` for more reliable payment capturing.
- Improved: Refactored Stripe error handling for better API error reporting.
- Fixed: Stripe subscription payments not being captured automatically.
- Fixed: Stripe card tokenization issue (saving card without consent for non-subscriptions).
- Fixed: Resolved PHP lint error in Stripe gateway.
- Improved: Refined subscription detection and order collection logic.
- Improved: Replaced full page reload with AJAX-based content refresh after coupon removal.
- Improved: Added new Analytics settings tab with contextual guidance and notice components.
- Improved: Refactored Currency Price component for cleaner formatting, added trimZeros(), improved filter hooks, and enhanced currency symbol handling.
- Improved: Standardized checkout redirect delay (850ms) across all payment gateways.
- Improved: Pixel integrations now initialize only when Analytics is enabled.
- Improved: Extracted pixel utilities into a dedicated helper file.
- Improved: Product price creation UI.
- Improved: Product description block editor support.
- Fixed: Added missing doActionAsync import.
- Fixed: Added missing filter hook name in Price component.
- Fixed: Corrected variation price display on cart page.
- Fixed: Resolved Mini Cart styling issue.
- Fixed: Stripe saved payment method (token) UI.
- Misc: Minor code cleanup and internal optimizations.

= 1.7.3 - 24/02/2026 =

- Improved: Admin product edit UIUX.
- Improved: All list table loading state.
- Fixed: Mini Cart loading nonce error with full-page-caching.
- Improved: Added composite index in order-item-meta table for performance.
- Improved: Update date util matching backend date format for deployment analytics.
- Fixed: Paddle product tax category was not saving.

= 1.7.2 - 05/02/2026 =

- Fixed: **Installment Plan** page link (addon page) was broken.
- Fixed: Some addon doc-page links (addon page) redirecting to 404 page.
- Improved: Addon search & filtering updated with more keywords & tags.
- Improved: Added missing output escaping for csv export.
- Fixed: Fatal error on 404 page when entire site is restricted.
- Fixed: Fatal error on restricted page when single product/price being used for membership (Access Group).
- Fixed: Course bundle integration was not setting bundle type.

= 1.7.1 - 25/01/2026 =

- Improved: Prevent direct access in php files.
- Fixed: Resolve WordPress Coding Standards violations across multiple files.
- Fixed: **Course Bundle** integration type check condition added.
- Fixed: RCP migration invalid sql query.
- Improved: Add proper `escaping` for output and `sanitization` for input.
- Improved: Implement query caching in admin dashboard api, improving page performance.
- Improved: Minor code quality improvements and optimizations.
- Improved: Page title translated with sub-page titles for plugin dashboard pages.
- Fixed: Loading preloading addon settings triggering translations loading too early error.

= 1.7.0 - 18/01/2026 =

- Added: **Google Tag** & **Meta Pixel** tracking support.
- Improved: Added hooks (in PHP & JS) & update checkout response data for pixel tracking support and refactor cart logic into cart.js.
- Improved: Currency render (admin dashboard) improved with support for country code.
- Fixed: Screen-reader-text for refund order amount was missing currency symbol.
- Improved: Button UI updated across templates for consistent styling.
- Improved: Removed redundant css rules.
- Updated: Translation comments & placeholders.
- Fixed: Commission ajax handlers for invalid order ID.
- Fixed: Fixed tutor-booking integration on checkout.
- Improved: Price rendering for membership (locked) content.

= 1.6.9 - 07/01/2026 =

- Added: UI support for **Installment Plan** add-on.
- Improved: Request data sanitizer improved in AbstractRequestHandler, improving performance. This update also allowing nested (repeated field) sanitization seamlessly.
- Improved: Abstract integration class revamped with support for handling of different order types directly, improving checkout process performance.
- Improved: Add-to-cart shortcode extra whitespace removed.
- Improved: Add-to-cart quantity input element improved across single-product & cart page.
- Fixed: Price braking into multiple line in cart page.
- Improved: Update button UI, reduce unnecessary styles.
- Improved: Add-to-cart redirect updated based on product-price type.
- Added: Taxable attribute in CartItem object.
- Improved: Refactor common utilities.
- Fixed: JS dom utility fixed (`this` args).
- Added: Refactor cart tax items into separate template.

= 1.6.8 - 25/12/2025 =

- Improved: Addon settings loading with abstract class, unified addon settings management.
- Improved: Dashboard page geo map replaced and added orders table.
- Improved: Analytics page geo map replaced and table css fixed.
- Fixed: Multiple price delete crashing product editor.
- Fixed: Cart Block Template was showing broken block codes in site-editor.
- Fixed: Default login redirect value settings fixed for login shortcode.
- Fixed: Checkout payment button vanishes after address-field changes.

= 1.6.7 - 09/12/2025 =

- Improved: Refactor addon loading and improve autoloader.
- Improved: Updated deployment management UI components and styles for consistency and improved user experience.
- Improved: Enhanced error handling in customer API to properly check user existence.
- Fixed: Added refund methods to Subscription class to calculate subscription refunds from related orders, fixing refund error with subscription orders.
- Fixed: Payment gateway failing in order-pay endpoint for pending orders.
- Improved: Minor code cleanups and type improvements.
- Improved: Update refund modal notices for admin, clarifying how manual/api-refunds get processed.
- Improved: Refund api error handling updated.
- Fixed: Admin notice UI conflict with alert dialog UI styles.
- Improved: Added admin-notice, informing admin user about `Gutenberg` blocks available through aBlocks plugin.
- Fixed: Admin notices aren't showing unless admin visits settings page.
- Fixed: Coupon calculation with subscription product.
- Fixed: Products editor variation table tooltip visibility fixed.
- Improved: Attribute terms modal footer spacing fixed.
- Improved: Affiliates Modal UI updated.
- Fixed: Affiliate bulk inactive blank ajax response fixed.
- Fixed: page blank issue for fetch items by id.
- Improved: Added search in URL params for addons search, allows filtering addons with direct link.
- Fixed: Subscription order info (thank-you page) braking UI with extra closing `div` tag.

= 1.6.6 - 03/12/2025 =

- Fixed: Dashboard breaking issue after updating WordPress core to version 6.9.
- Updated: Tested up to WordPress 6.9.


= 1.6.5 - 02/12/2025 =

- Fixed: Fixed data format prediction in AbstractEntity for float (double) value with decimal parts.
- Improved: Price field sanitization & validation revamped with correct datatype for price & compare-price field.
- Added: Ajax validation added for missing Price name.
- Improved: Recent orders UI updated.
- Improved: Tools page menu subtitle/descriptions added.
- Added: Subscription support added in **PayPal** payment gateway.
- Fixed: **PayPal** buttons aren't rendering after `refresh-checkout` form event.
- Fixed: Removed `refund` support entry from Paddle as not implemented.
- Fixed: Error while sending request to `settings/verify-payment-gateways` endpoint due to wrong argument generate at runtime.
- Improved: Removed **Stripe** dependency notice for **Subscription Addon**.
- Fixed: Showing error on store-dashboard (and in order details page) for disabled gateway.
- Improved: Updated no-payment-gateway available message.
- Improved: Added no-payment-gateway available for subscription.
- Improved: Frontend notice UI spacing, button & close-icon styling updated.
- Added: Core UI for **Order Bump** addon implemented.

= 1.6.4 - 24/11/2025 =

- Added: Setup wizard introduce for new installation.
- Improved: Updated installer to run on updates improving database migration.
- Added: New color settings for `subtitle_color` and `input_text_color` introduced.
- Improved: Color picker component style with clean color preview.
- Added: Added UI support for copying download link for latest version of free item.
- Added: Set paid status to refunded on full refund.
- Fixed: Using correct action hook for user's `total purchase` update  on refund.
- Improved: Analyzing search input and generating query more accurately to filter orders.
- Fixed: Reading refund metadata was failing braking refund info tooltip in order editor.
- Improve: Order editor refund tooltip UI.
- Updated: Added check for `refunded` payment status in integration's `unpaid-order-handler`.
- Fixed: `COD` payment method availability logics revamped with proper support for shipping
- Added: Selective shipping zone settings for `COD` method.
- Added: Now `COD` payment can be enabled for virtual product too.
- Added: Admin notice when `COD` is enabled without any shipping method configured or without enabled for virtual products.
- Fixed: Replaced `MaxMind Geolocation Integration` documentation with correct support article.
- Improved: Refresh payment methods on checkout page.
- Improved: Tax display type check functions moved to `TaxUtils` so other module can access without initializing cart.

= 1.6.3 - 17/11/2025 =
- Fixed: Checkout failing with fatal error due to mPDF package dependency.
- Updated: Translation template & translators comments updated.

= 1.6.2 - 16/11/2025 =

- Fixed: Add-to-cart failing saving cart data on db.
- Updated: update add-to-cart error messages.
- Fixed: Error checkout (Undefined property: stdClass::$instance_id) with physical products.
- Fixed: Admin dashboard (order list table) error if item with shipping on the list.
- Improved: remove legacy code and deprecated doc-blocks, improving error handling.
- Fixed: Dashboard (analytics) map tooltip.

= 1.6.1 - 14/11/2025 =

- Fixed: v1.6.0 SVN release conflict issue solved.

= 1.6.0 - 13/11/2025 =

- Improved: Admin settings navigation updated.
- Improved: Core update for to support pro features.
- Fixed: Dashboard analytics UI issues.
- Improved: Updated coupon editor sidebar UI.
- Improved: Customer list-table UI updated.
- Fixed: Fatal error on StoreEngine order info shortcode.
- Improved: Update single page template loading, improving page performance.
- Improved: AcademyLMS course pricing card ui.
- Added: `storeengine_single_product_gallery` shortcode added.
- Fixed: Product gallery shortcode bug.
- Fixed: Mini-cart icon's color issue with astra theme.
- Added: `storeengine_single_product_summary` shortcode added.
- Added: `storeengine_single_product_description` shortcode added.
- Added: `storeengine_single_product_comments` shortcode added.
- Added: `storeengine_single_product_reviews` shortcode added.
- Added: `storeengine_single_product_cart_notice` shortcode added.
- Improved: `storeengine_add_to_cart` shortcode.

= 1.5.7 - 06/11/2025 =

- Fixed: PayPal SDK error (`Expected currency from order api call to be USD, got CURRENCY. Please ensure you are passing currency=CURRENCY to the sdk`) resolved.
- Improved: Save PayPal fees data in order meta.
- Added: MaxMind GeoIP (GeoLite2-country) integration added.
- Improved: Customer default country setting based on store-base address or geo-ip country.
- Improved: Shipping cost calculation based on customer address on cart page.
- Improved: New UI & analytics data for the Dashboard.
- Fixed: Hardcoded database prefixed updated.

= 1.5.6 - 23/10/2025 =

- Added: Software (plugin) analytics dashboard.
- Fixed: Address getting saved as JSON encoded string, which was braking Unicode/latin characters.
- Fixed: Address form UI broken, col-6 (column 1/2) was rendering into 2 separate row.
- Fixed: Changelog typos.
- Updated: Translation template file (`.pot`) updated.

= 1.5.5 - 09/10/2025 =

- Added: Separate coupon usage limit field added to give admin more control over coupon usage.
- Fixed: Order editor broken with js error while rending purchase table item.
- Fixed: Order pay feature was crashing when using with COD.
- Fixed: WooCommerce migration tool coupon data migration fixed.
- Fixed: Select components options prop-type schema updated.
- Fixed: Template override was not working as intended and showing cart template on any page if not set properly.
- Fixed: Course bundle loop (archive page) price display.
- Fixed: Per-Customer coupon usage limit was not working.
- Fixed: Fatal error braking store-shop page when entire-site protected via membership addon.
- Fixed: Membership addon site-restriction brakes shop-page.
- Fixed: Membership addon site-restriction brakes archive UI.
- Improved: Refactored order-pay conditions, improving error handling.
- Improved: Added edit with **WordPress Editor** in product list-table actions.
- Improve: Shortcode added for rendering restricted-page-template for membership site-restriction.
- Improved: Coupon UI css fixed.
- Improved: Flush permalink settings upon activation/deactivation of membership add-ons.

= 1.5.4 - 01/10/2025 =

- Added: Mini cart feature added.
- Improved: Updated site activation list table columns.
- Fixed: User dashboard logout menu was just redirecting user back to user-dashboard, without logging out the user.
- Improved: Added custom attribute support via args param for icon-render template tag (helper) function.
- Improved: Renamed pagination functions (AbstractCollection) and code improved readability.
- Fixed: Order editor purchase table item meta as encoded html (backend returns item metadata as formatted html, not as plain text)
- Fixed: Undefined function in price formatting utility method.
- Improved: Order editor purchase table column sizes updated, improving readability for admin user.
- Fixed: Start course button was not displaying.
- Fixed: Free checkout was not working if no payment methods are enabled.
- Added: Improved UI & and added deployment options for free/pro split.

= 1.5.3 - 25/09/2025 =

- Fixed: Academy LMS Course Bundle compatibility issue

= 1.5.2 - 18/09/2025 =

- Added: Direct checkout via parameterized URL feature added. This will allow admin to redirect user to the checkout page with specific product with coupon applied (optional). E.g. `http://example.com/store-checkout/?product_id=34&price_id=4&coupon=hello`
- Added: Admin can now hide specific price from the frontend. This doesn't restrict the price, but just don't show in the frontend and allows admin to generate checkout URL.
- Added: Added Price display settings for archive page (product with multiple price). This adds the ability to show prices as dropdown (default) and as price range to improve UI/UX.
- Added: New user registration confirmation email notification added.
- Added: URL presigner class added to create secure signed URL with expire time with rotating encryption keys. This allows StoreEngine to generate secure pre-signed URL for public use.
- Improved: Update `.htaccess` for protected directory with support for apache v2.4 with backward compatibility for apache v2.2
- Improved: Updated datetime conversion in frontend (fix time tag datetime attribute formatting).
- Improved: Remove duplicate queries & implement WP object cache to improve performance.
- Improved: Collection result mapping and query handling for better data consistency
- Improved: Updated collection result-mapping logic across all collection classes
- Improved: Updated parent prime-cache mechanism for better entity caching alignment, and no steal data remain cached.
- Improved: File download includes some metadata (when available) for better UX, including file name, file size, etc. Deprecated: Order-collection constructor $type argument (use where method with ['key' => 'type', 'value' => 'order or refund'] instead)
- Improved: `storeengine_add_to_cart` shortcode improved with dummy data improving admin UX. Also, this can be now used with loop/archive query with `global $product` set.
- Updated: Collection query classes across multiple addons (affiliate, CSV, subscription), updating where param with correct type and removed newly deprecated type argument.
- Updated: Removed order list-table horizontal ellipsis (`…`) if payment title is missing.
- Fixed: Secure directory not protected with empty index.html & `.htaccess`.
- Fixed: Secure directory notice doc link.
- Fixed: Order datetime in order-thank-you-page & order-list page (admin-dashboard).
- Fixed: Consistent datetime calculation in backed.
- Fixed: Infinite loop issue when other plugins use `wp_redirect( wp_login_url() );` for non-logged-in users.
- Fixed: Set `new_order_email_sent` flag after order confirmation being sent.
- Fixed: Temporarily disabled faulty prime-cache functionality to prevent broken/unfinished data caching
- Fixed: Course archive page (loop page) price display type issue with enrolled courses.
- Fixed: Remove 2x loading animation after creating new price.
- Fixed: Payment method save bug (triggering save on all other item).

= 1.5.1 - 11/09/2025 =

- Fixed: CSV data import / export security bugs
- Fixed: Razorpay checkout.js conflict issue

= 1.5.0 - 21/08/2025 =

- Added: Added support for licensed software download
- Added: Paddle payment gateway support added (as addon).
- Added: Order pay feature added, user can now pay for an unpaid pending order/subscription.
- Improved: CSV import crashing on large data fixed and improved progress calculation.
- Improved: Course membership `add-to-cart` refactored.
- Improved: Added missing referral URL (with tracking parameter & code) in user dashboard affiliate page.
- Fixed: JavaScript type error fixed in AcademyLMS course page.
- Fixed: Invalid registration url on login page.
- Fixed: User's course access for purchased membership. Added migration for old user-meta data removal.

= 1.4.0 - 12/08/2025 =

- Added: New CSV Import / Export addon
- Added: New Payment method Razorpay addon
- Added: Add free checkout(zero) support.
- Improved: Downloadable product support with subscription based payment
- Fixed: Fix terms returning error during migration.
- Fixed: Fix product gallery ux issue.

= 1.3.3 - 31/07/2025 =

- Improved: Updated PayPal and Stripe addons  improving consistency and null safety.
- Improved: Enhanced asset loading by separating `block-editor-assets` loading.
- Improved: Added missing indexes, and normalizes field definitions for consistency across tables.
- Fixed: Removed extra border around access-group *Purchase Info* sidebar.
- Fixed: Eliminates explicit `COLLATE utf8mb4_unicode_520_ci` from all table and column definitions in database migration scripts, standardizing schema creation and improving compatibility.
- Fixed: Error product migration fails on attribute term error.
- Fixed: Guest checkout login link fixed.
- Fixed: Redirect user to proper redirect_to parameter after successful login.
- Fixed: Static price symbol replaced with current price symbol.
- Fixed: Refactor cart access and add block editor asset support, fixing fatal error in customizer preview.

= 1.3.2 - 22/07/2025 =

- Added: Order details view.
- Added: Subscription details view & action buttons.
- Added: Subscription cancellation.
- Added: Admin can add/remove order note.
- Added: Cart & checkout settings tab.
- Improved: removed `CONCAT/GROUP_CONCAT` & `JSON_*` functions from SQL for better compatibility.
- Improved: Register payment gateway namespace for autoload directly with root namespace.
- Improved: Admin can now set default country for checkout billing/shipping address if user's address not saved (e.g. new customer)
- Improved: Settings to toggle floating cart icon allow admin to enable/disable floating cart.
- Improved: Added default icon element if gateway class does not provide icon url.
- Improved: Price create, update and delete AJAX handlers now using Price entity class, replacing deprecated price-model class.
- Improved: Added hook for flushing cache group on custom meta added, updated or deleted registered by StoreEngine.
- Improved: Empty notice added on cart list block.
- Fixed: Object cache not flushing for collection query class.
- Fixed: Variation UI in product-editor updated, fixing tooltip & variation name.
- Fixed: Using `raw` content & title for product editor, fixing embedded content markup saving as content & title and braking single product page.
- Fixed: Gutenberg editor CSS conflicts.
- Fixed: Frontend dashboard login form not showing.
- Fixed: Namespace & hook typo issue fixed.
- Fixed: customer update ajax payload fixed.
- Fixed: Added missing doc url for migration addon.
- Fixed: Fatal error for bad data from join query and data type on variation attributes

= 1.3.1 - 14/07/2025 =

- Fixed: Fatal error upon order created from admin dashboard.
- Improved: Update lookup table after add/remove order item from admin dashboard.
- Fixed: Error creating orders table due to table index length limitation.
- Improved: Added index in orders meta table for performance.
- Improved: Added support for shortcode preview (dummy data) for `aBlocks`.

= 1.3.0 - 13/07/2025 =

- Added: Migration addon added (WooCommerce to StoreEngine data migration)
- Added: Order invoice pdf addon.
- Added: Product add-to-cart shortcode `[storeengine_add_to_cart]`.
- Added: WebHook event listener for admin order create event.
- Added: WebHook event for restored order.
- Improved: Update order webhook payload handling fatal error fallback.
- Improved: Trash & restore order, trash order is no longer editable until restored.
- Improved: Sanitized WebHook delivery url properly before save.
- Improved: Log functionality added in WebHook for debugging.
- Improved: Attribute slug validation & sanitization updated, shorten attribute taxonomy prefix.
- Fixed: Remove usage of deprecated/removed order method from webhook and email class.
- Fixed: Order delete webhook was triggering fatal error.
- Fixed: Remove usage of deprecated/removed order method from webhook and email class.
- Fixed: Order delete WebHook was triggering fatal error.
- Fixed: Refresh order list table on restore order.
- Fixed: Variation status update rest api user permission fixed.
- Fixed: Attribute order by.
- Fixed: Attribute taxonomy slug max length error fixed.
- Fixed: Typo & textdomain fixed.
- Fixed: Attributes list table pagination was not working.
- Fixed: Attributes list table search & per-page reset.
- Fixed: Products shipping option ui issue.
- Fixed: Add-to-cart was not working from membership protected content page.
- Fixed: Membership protected content page broken layout.

= 1.2.2 - 03/07/2025 =

- Added: Admin notice feature that renders both in react and native admin notice.
- Added: Catalog mode feature added via addons interface.
- Improved: Optimize settings update handler (handler), with support for addon settings.
- Improved: Added new hooks for pricing template, product quantity-input and add-to-cart buttons.
- Improved: Made FloatingCart class a singleton, adding ability to use remove_action() on actions added from it.
- Improved: Customer's total spent calculation (total purchase minus order refund).
- Improved: Frontend user dashboard UI updated.
- Improved: Tax general settings Rounding option UI updated.
- Fixed: Settings save (submit) button glitch.
- Fixed: Tax tab glitch (on reload).
- Fixed: Request handler data sanitization fixed, added support for string[] data.
- Fixed: Customer data (api response) empty when contains trashed orders.
- Fixed: Commission order id ajax response removing trashed orders.
- Fixed: Order cancellation logic fixed for COD payment.
- Fixed: Access Group list table column data.

= 1.2.1 - 24/06/2025 =

- Added: FSE theme product archive sidebar settings not worked issue.
- Added: Frontend Dashboard redirect setting.
- Fixed: Attribute Create modal close issue.
- Fixed: Allow from empty form field to pass-through sanitizer and populate sanitize payload, allowing saving empty field and zero (0) value.
- Fixed: Subscription Price details not showing issue.
- Fixed: Subscription Editor Status update not working.
- Fixed: Admin List Table UI issue.
- Fixed: Academy Course Purchase UI issue.
- Fixed: Membership addon payment issue.
- Fixed: Subscription based price issue.

= 1.2.0 - 19/06/2025 =

- Update: Revamped Academy LMS & StoreEngine Membership addon Integration
- Fixed: Cart crashing with invalid price id price deleted after user added item in their cart.
- Fixed: Order editor coupon add/remove bug, duplicating coupon item if coupon contains uppercase characters.
- Fixed: Updated static link for registration & password reset.
- Fixed: Dashboard login form responsive issue.
- Fixed: Rest API permission for other admin users.
- Fixed: Added default coupon discount (10%) for creating new coupon.
- Fixed: PayPal api error when order total is greater than or equal to 1000.
- Fixed: PayPal zero decimal currency order total amount formatting.
- Fixed: Set cart hash cookie only when necessary (adding product to cart), improving server side caching and page loading performance.
- Improved: Academy LMS integration new UI.
- Added: API permalink helper function handling pretty & plain permalink.
- Fixed: API Permalink issues across react reducer & actions.
- Fixed: Frontend dashboard order query fixed, was causing dashboard to crash if there's any trashed Order for the logged-in user.
- Fixed: Stripe payment bug.
- Improved: Stripe payment gateway class error handling.
- Improved: Product review & comment error response.
- Fixed: Subscription list table navigation.

= 1.1.1 - 05/06/2025 =

* Added: Access Group Buy button inject.
* Improvement: Product Integration Logic.
* Improvement: Product Integration Subscription price disable for Academy LMS Course Bundle and Booking.
* Improvement: Membership Shortcode UI Improved.
* Fixed: Academy Course Bundle Integration.
* Fixed: Single Price add to cart not working.

= 1.1.0 - 04/06/2025 =

* Improvement: Product price UI improved with support for subscription information.
* Fixed: Console error for faulty proptypes fixed.
* Fixed: Price ajax action.
* Improvement: Price output for subscription (show fee).
* Added: Added support for trial subscription through Stripe addon.
* Fixed: Add saved payment php error.
* Fixed: Subscription status update (activation).
* Improvement: Update stripe payment validation.
* Fixed: Update Stripe addon error messages.
* Improvement: Cache get_page_by_title query.
* Fixed: Rating `0.5` css class.
* Fixed: Subscription date calculation fixed.
* Fixed: Backward compatibility for old duration type (plural forms) & setup-fee type.
* Fixed: Subscription scheduler (renewal-payment) fixed.
* Added: Stripe addon hook for renewal order auto payment.
* Fixed: Check if header is sent before setting cookie.
* Fixed: Order version property fixed.
* Improvement: Remove setting version from existing subscription to renewal orders.
* Fixed: Subscription list output sort by id.
* Fixed: Entity object read-meta-data read-flag was not setting properly for Order object.
* Fixed: Order status pending in frontend-dashboard.
* Fixed: Subscription status update on order marked as paid recursively fixed.
* Improvement: Convert Order note date time zone to current users local time zone.
* Improvement: Remove order notes for related order (subscription api).
* Improvement: Update cart table layout.
* Fixed: Disallow subscription (cart item) qty update (not supported).
* Improvement: Allow disabling qty input field.
* Improvement: Allow 3rd party plugin/theme to filter cart item quantity form args.
* Fixed: Category editor bug while creating new category fixed.
* Fixed: Order detail date formatting updated.
* Fixed: Customer details Order Status UI fixed.
* Improvement: Improved membership (access-group) with subscription status transition.
* Improvement: Improved email template/settings editor state handling.
* Fixed: Show correct refund amount in email notification.
* Improvement: Refactor css for faster rendering.
* Improvement: Improved product filter widgets (archive sidebar widgets).
* Fixed: Attribute search, navigation, page blank and delete issue fixed.
* Fixed: WebHook list-table fixed.
* Fixed: Commission and payout created date issue fixed.
* Improvement: Allow 3rd party plugin to hook into integration runner instance.
* Improvement: Added subscription data in admin customer details page.
* Fixed: Product editor gallery button UI fixed.
* Fixed: Dashboard (analytics) total sales, total refund & gross sales fixed.
* Improvement: Updated placeholder image alt attribute.
* Improvement: Update top product list, include total net revenue.
* Fixed: Top product featured image.
* Improvement: Update top customer list, include customer avatar.
* Fixed: Top customer total spent value type.
* Fixed: Full refund invalid amount fixed.
* Improvement: Subscription table UI update.
* Fixed: Admin dashboard orders pagination.
* Fixed: Admin dashboard payments pagination.
* Fixed: Frontend dashboard order pagination.
* Fixed: Payment `can-refund` logic.
* Fixed: Frontend order list table status ui.
* Improvement: Convert time output to user's timezone.
* Fixed: Create Order page brake due to order by query error.
* Fixed: apply coupon undefined index error.
* Fixed: Checkout page `Email me with news and offers` checkbox spacing fixed.
* Fixed: Product sorting settings typo fixed.
* Improvement: Cart page UI revamped & improved.
* Improvement: Hide subscription price items from add item modal.
* Fixed: Fixed physical (subscription) product add to cart error (partially supported).
* Added: Display price on course-bundle page.
* Improvement: Remove course-bundle access when order status is unpaid.

= 1.0.2 - 28/05/2025 =

* Added: Subscription support for Academy LMS Course Purchase
* Fixed: Membership Access group issue

= 1.0.1 - 26/05/2025 =

* Fixed: Digital Product Auto Complete not worked issue
* Fixed: Admin Create Order Not worked issue
* Fixed: Membership access group table data formatting issue

= 1.0.0 - 21/05/2025 =

* Update: Revamped Admin Settings UI/UX & backend for better performance.
* Fixed: Fixed bugs reported by beta tester.

= 1.0.0-beta-6.2 - 16/05/2025 =

* Fixed: Academy LMS Course Bundle Integration issue
* Fixed: Cart item backward compatibility issue.

= 1.0.0-beta-6.1 - 15/05/2025 =

* Fixed: Fixed class not found (case-sensitive file name) on linux server.

= 1.0.0-beta-6 - 15/05/2025 =

* Added: Shipping feature
* Added: Subscription feature.
* Added: Saved payment method (card via Stripe addon).
* Added: Admin now can trash & permanently delete orders.
* Fixed: Cart meta data was not loading.
* Improvement: Added custom fee handler inside cart class for improving subscription setup fee calculation.
* Improvement: Cart metadata handling improved.
* Improvement: Price data handling.
* Improvement: Improved admin order api for better error handling.
* Improvement: Membership pricing table UI improved.
* Improvement: Added order payment status separately.
* Improvement: Added payment information (method icon, transaction-id, payment date time, etc.).
* Fixed: Shortcode output empty p tags (`<p></p>`) and extra br tags (`<br>`).
* Fixed: Direct checkout was not working on safari browser.
* Improvement: Orders can be now trashed & deleted.
* Fixed: Course enroll via integration hook.
* Fixed: Course enroll widget price selection UI.
* Fixed: Affiliate settings UI.
* Fixed: Affiliate commission update after checkout & payment status.

= 1.0.0-beta-5.1 - 28/04/2025 =

* Fixed: Error while migrating from older beta version fixed.
* Fixed: Fatal error from dashboard shortcode.
* Fixed: Dashboard content blank issue on non-fse theme.

= 1.0.0-beta-5 - 24/04/2025 =

* Improvement: Revamped Checkout JavaScript
* Added: `storeengine_apply_coupon_form` shortcode
* Added: `storeengine_cart_list_table` shortcode
* Added: `storeengine_checkout_form` shortcode
* Added: `storeengine_continue_shopping` shortcode
* Added: `storeengine_billing_address` shortcode
* Added: `storeengine_order_details` shortcode
* Added: `storeengine_order_downloads` shortcode
* Added: `storeengine_order_summary` shortcode
* Added: `storeengine_proceed-to-checkout` shortcode
* Added: `storeengine_payment_instruction` shortcode
* Fixed: Membership pricing page, added dynamic feature listing on pricing table.
* Fixed: Order editor customer select problem.
* Fixed: Order line item (product) title overflow.
* Fixed: Order list table customer details.
* Fixed: Fix notice during blank form submission.
* Fixed: Fix Affiliate registration form styles broken.
* Fixed: Fix textdomain notice issue.
* Fixed: Removed unused css & js.
* Improvement: Added support for Affiliate registration plugins tools (regenerate page, select different page, etc.).
* Fixed: Frontend Dashboard affiliate page 404 bug.
* Fixed: Affiliate registration page creation failed during addon activation.
* Improvement: Improved Affiliate registration page form handling.
* Updated: `storeengine_products` shortcode
* Updated: StoreEngine cart page
* Updated: StoreEngine checkout page
* Updated: StoreEngine thankyou page
* Removed: `storeengine_cart` shortcode
* Removed: `storeengine_checkout` shortcode
* Removed: `storeengine_thankyou` shortcode

= 1.0.0-beta-4.5 - 22/04/2025 =

* Fixed: Taxonomy terms archive template getting override by StoreEngine product archive template.
* Improvement: Added current theme info (WordPress Tab), OS info (Server Tab) in `Tools » Status` page.

= 1.0.0-beta-4 - 17/04/2025 =

* Improvement: Using `Redux Toolkit` to improve admin dashboard performance and workflow.
* Added: Integration with Academy LMS Tutor Booking.
* Added: Integration with Academy LMS Course Bundle.
* Fixed: Remove coupon from cart automatically when it’s in the trash or already been deleted.
* Fixed: Reset cart cookie after logout.
* Fixed: Membership pricing page 500 server side error.
* Fixed: Hide membership pricing if product is not published.
* Fixed: Delete product prices & integration from database after admin deletes a product.
* Fixed: Console error in admin order edit screen fixed.
* Improvement: Update translators comments & rebuild translation template (pot) file.
* Fixed: Integration errors aren't showing properly in product edit page.
* Fixed: translations loading too early.
* Fixed: Frontend ajax response nonce error notification.

= 1.0.0-beta-3 - 13/04/2025 =

* Fixed: Stripe sdk not loading before checkout script.
* Fixed: Internal payment API `401 unauthenticated` error.
* Fixed: Replaced static db prefixes with `$wpdb->prefix`.
* Fixed: Remove unique (complex) constraints from order & order item meta tables.
* Improvement: Added table index with `meta_key` (order & order item meta tables) for performance.
* Fixed: Membership admin-dashboard search input.
* Fixed: Membership editor blank after reload.
* Improvement: Removed unused codes.

= 1.0.0-beta-2 - 09/04/2025 =

* Improvement: Added order placed date (as metadata), separate from order created date.
* Improvement: Permalink settings added for customizing product permalink structure.
* Fixed: Order status while user purchase as guest.
* Fixed: Order created in update query.
* Fixed: Order date on thank-you page.
* Fixed: Admin product editor ui.
* Fixed: Deprecation error on product archive page if `max_page_num` is 1
* Fixed: Typo in admin dashboard
* Fixed: Textdomain mismatched.
* Fixed: Invalid order date in admin dashboard.
* Fixed: Fatal error on single product page if both WooCommerce & StoreEngine is active sametime.
* Fixed: Tax settings page in admin dashboard.
* Fixed: Mics. spacing & text color fixed.

= 1.0.0-beta-1 - 07/04/2025 =

* Initial Release
  * Academy LMS native integration,
  * Multi price model for product,
  * Multiple payment method:
    * PayPal,
    * Stripe,
    * Cash On Delivery,
    * Direct Bank Transfer,
    * Check Payment, etc.
  * Payment listing,
  * Full/Partial refunds,
  * Email Notification,
  * Tax,
  * Coupon,
  * Simple & Variable product,
  * Downloadable product,
  * Image gallery for product,
  * Variable product price adjustments,
  * Affiliate,
  * Membership,
  * Webhook,
  * ShortCodes, etc.
