=== WebSync Checkout for Elementor ===
Contributors: websynctech
Tags: woocommerce, elementor, product grid, mini cart, my account
Requires at least: 6.0
Tested up to: 7.1
Stable tag: 1.2.0
Requires PHP: 7.4
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Build WooCommerce product grids, cart, mini cart, checkout, thank you, and My Account pages with Elementor—no Elementor Pro required.

== Description ==

WebSync Checkout for Elementor is a WooCommerce page builder toolkit for Elementor. Build product grids and design the customer journey from a header mini cart and full cart page through checkout, the thank you page, login, and the customer account dashboard—without replacing WooCommerce's secure commerce workflows.

The plugin includes dedicated Elementor widgets for WooCommerce Products Grid, Menu Cart, Cart, Checkout, Order Confirmation, and My Account pages. Store owners can customize responsive layouts, content, colors, typography, forms, tables, buttons, and customer-facing states while WooCommerce continues to handle products, cart totals, coupons, shipping, taxes, payments, orders, authentication, and account permissions.

Elementor Pro is not required. WooCommerce and the free Elementor plugin are required.

= WooCommerce Elementor widgets included =

* **Products Grid:** Display latest, featured, sale, best-selling, top-rated, category, tag, or manually selected products.
* **Menu Cart / Mini Cart:** Add a live header cart as a side cart or dropdown mini cart.
* **Cart Page:** Build a responsive WooCommerce cart with coupons, cross-sells, shipping, and cart totals.
* **Checkout Page:** Customize billing, shipping, order review, coupons, terms, and the place-order area.
* **Order Confirmation / Thank You Page:** Style the verified order-received experience and customer order details.
* **My Account Page:** Design login, registration, customer dashboard, orders, downloads, addresses, payment methods, and account details.

= Products Grid widget =

* Native WooCommerce product cards with product-type and extension compatibility
* Latest, featured, on-sale, best-selling, top-rated, and manual product sources
* Category and product-tag filters with any, all, or exclude matching
* Product exclusions, ordering, products-per-page, pagination, result count, and sorting controls
* Responsive one-to-six-column grids with independent desktop, tablet, and mobile settings
* Optional product images, sale badges, categories, titles, ratings, prices, and add-to-cart buttons
* Original, square, portrait, or landscape product image ratios
* Detailed card, image, typography, rating, price, badge, button, toolbar, and pagination styling
* Native WooCommerce AJAX add-to-cart classes and catalog visibility behavior
* Extension-ready query hooks and a backward-compatible skin API

= Menu Cart widget =

* Header-friendly cart icon with live item count and optional subtotal
* Side Cart or Mini Cart Dropdown presentation
* Click or hover opening, with left or right placement
* Native WooCommerce product, variation, price, subtotal, remove, View Cart, and Checkout output
* Automatic updates through WooCommerce cart fragments
* Optional automatic opening after an AJAX add-to-cart action
* Keyboard Escape support, drawer focus management, and accessible labels
* Visibility and detailed styling controls for every main cart area
* An anonymized Elementor sample item that never changes the administrator's cart

= My Account widget =

* Native WooCommerce login, registration, password reset, dashboard, orders, downloads, addresses, payment methods, account details, and logout flows
* Vertical or horizontal account navigation with left or right placement, alignment, responsive spacing, and mobile scrolling
* Editable names and visibility controls for every standard WooCommerce account tab
* Compatibility with custom account endpoints added by WooCommerce extensions
* Optional Elementor library template replacement for the account dashboard while preserving extension dashboard hooks
* Detailed navigation state, content, heading, form, field, table, button, notice, address, and responsive styling controls
* Anonymized previews for every major account state without reading or modifying the administrator's customer data

= Checkout widget =

* One-column or two-column responsive layouts
* Optional sticky order summary with responsive offset controls
* Editable billing, shipping, additional information, order, coupon, terms, and purchase-button text
* Billing and shipping field labels, placeholders, and default values
* Coupon and additional-information visibility controls
* Section, typography, form, order-summary, button, and individual-area styling
* WooCommerce AJAX checkout refresh compatibility

= Cart widget =

* One-column or two-column responsive layouts
* Optional sticky cart totals with responsive offset controls
* Editable update-cart, coupon, shipping, checkout-button, and totals text
* Optional coupon form, continue-shopping button, and cross-sells
* Automatic AJAX quantity and totals updates
* Custom empty-cart Elementor template support
* Section, typography, form, order-summary, totals, button, and individual-area styling

= Order Confirmation widget =

* Styles the native WooCommerce order-received and Thank You experience
* Editable confirmation message, payment-detail labels, and section titles
* Visibility controls for payment details, order summary, downloads, and customer addresses
* Optional Continue Shopping and logged-in My Account actions
* Detailed styling for messages, payment details, sections, tables, addresses, and buttons
* An anonymized Elementor preview that never queries or stores a real customer order
* Preserves WooCommerce order-key checks, guest email verification, gateway instructions, downloads, and extension hooks

= Built for practical WooCommerce use =

* Uses WooCommerce hooks, nonces, cart fragments, totals, shipping, coupons, and checkout processing
* Loads widget assets only when the corresponding Elementor widget is used
* Includes responsive controls for desktop, tablet, and mobile layouts
* Keeps existing WebSync widget settings compatible when upgrading
* Includes a versioned, validated Core API for compatible free and Pro widget skins
* Places the WebSync WooCommerce widget group first when editing WooCommerce content
* Does not load frontend scripts, styles, fonts, or executable code from third-party services

== Screenshots ==

1. Products Grid styled with Free controls, including responsive columns, product imagery, ratings, sale pricing, badges, and add-to-cart buttons.
2. Menu Cart displayed as a polished live side cart with product images, quantities, subtotal, and checkout actions.
3. Cart widget in a responsive two-column layout with shipping methods, coupon controls, quantities, totals, and checkout button.
4. Checkout widget using its Free two-column layout and styles for customer fields, order summary, shipping, gateways, and purchase button.
5. My Account widget with a vertical navigation, styled orders table, account endpoints, and customer actions.
6. Order Confirmation widget with the confirmation message, order overview, details, billing address, and follow-up actions.

== Installation ==

1. Install and activate WooCommerce and Elementor.
2. Upload the plugin to `/wp-content/plugins/websync-checkout-for-elementor`, or install it through **Plugins > Add New**.
3. Activate **WebSync Checkout for Elementor**.
4. Edit any shop landing page, or the WooCommerce Cart, Checkout, or My Account page, with Elementor.
5. Remove the existing WooCommerce block or shortcode if it would duplicate the widget output.
6. Add the **Cart** widget from the **WebSync WooCommerce** section to the Cart page.
7. Add both **Checkout** and **Order Confirmation** from the **WebSync WooCommerce** section to the Checkout page. The Order Confirmation widget remains hidden during checkout and appears on WooCommerce's order-received endpoint.
8. Add the **My Account** widget from the **WebSync WooCommerce** section to the My Account page.
9. Add the **Products Grid** widget from the **WebSync WooCommerce** section to shop, category landing, home, or promotional pages as needed.
10. Customize the widgets and test a complete order and customer account flow.
11. Confirm the Cart, Checkout, and My Account pages are assigned under **WooCommerce > Settings > Advanced**.

The **Menu Cart** widget can be placed in any Elementor page, template, or header area supported by your theme.

Always test checkout changes with the payment and shipping methods used by your store before publishing.

== Frequently Asked Questions ==

= Does this plugin require Elementor Pro? =

No. It works with the free Elementor plugin. WooCommerce is also required.

= Which products can the Products Grid display? =

It can display latest, featured, on-sale, best-selling, top-rated, or manually selected products. You can include or exclude product categories and tags, exclude specific product IDs, choose the ordering, and enable native WooCommerce pagination and catalog sorting.

= Does the Products Grid support product extensions? =

Yes. It renders WooCommerce's native product loop and add-to-cart markup, so product types and extensions using standard WooCommerce hooks remain compatible. Extensions that replace product templates may require additional styling.

= Does it replace WooCommerce payment or order processing? =

No. The widgets customize presentation and content while WooCommerce continues to process the cart, checkout, validation, shipping, taxes, coupons, payments, and orders.

= Where should I add the Order Confirmation widget? =

Add it to the same page as the Checkout widget. On normal checkout requests it produces no frontend output. After a successful order, it renders WooCommerce's verified order-received flow while the Checkout widget stays hidden. Existing Checkout-only pages retain the standard WooCommerce confirmation output for backward compatibility.

= Does the Order Confirmation editor preview show a real order? =

No. The Elementor editor uses fixed, anonymized sample data. On the frontend WooCommerce validates the order key, customer session, login, or guest email before any real order information is displayed.

= Is the Menu Cart a fast checkout? =

It is a quick-access mini cart, not a replacement checkout. Customers can review products, remove items, and continue to the Cart or Checkout page. WooCommerce remains responsible for cart changes and payment processing.

= Does the Menu Cart update after AJAX add to cart? =

Yes. It uses WooCommerce's native cart fragments and add-to-cart events to update the item count, subtotal, products, and buttons without reloading the page.

= Where should I add the My Account widget? =

Add it to the page assigned under **WooCommerce > Settings > Advanced > My account page**. Remove the existing `[woocommerce_my_account]` shortcode if it would duplicate the output. WooCommerce continues to control login, registration, password reset, customer authorization, account forms, and endpoint URLs.

= Does My Account support extension tabs? =

Yes. The widget customizes standard WooCommerce tab names and visibility without removing endpoints added by extensions such as subscriptions, memberships, or support integrations. Test extension-specific endpoints on a staging site because their custom markup may require additional styling.

= Does the My Account editor preview use my administrator data? =

No. Every editor state uses fixed sample data. Real customer account information is rendered only on the frontend through WooCommerce for the authenticated customer.

= Does it edit the WooCommerce Cart and Checkout Blocks? =

The widgets provide an Elementor-based cart and checkout experience using the standard WooCommerce PHP templates and hooks. They do not customize the internal controls of the Cart or Checkout Blocks.

= Will payment, shipping, and checkout-field extensions work? =

The plugin preserves standard WooCommerce hooks for compatibility. Because extensions can replace templates or checkout behavior, test the complete purchase flow on a staging site before using it in production.

= Can I hide the coupon form or additional information? =

Yes. Both widgets include relevant visibility controls in the Elementor Content tab.

= Can the cart update automatically? =

Yes. Enable **Update Cart Automatically** to refresh cart totals after quantity changes without a full page reload.

= Can I create a custom empty-cart design? =

Yes. Create and publish an Elementor template, then select it in the Cart widget's **Additional Options** section.

= Why is the widget preview empty in Elementor? =

Make sure WooCommerce has at least one published purchasable product. Also verify that the Cart, Checkout, and My Account pages are assigned in WooCommerce settings.

= What should I check before launching? =

Test product quantities, coupons, taxes, shipping calculations, account creation, login, password reset, every account endpoint, validation messages, every enabled payment method, mobile layouts, and order confirmation on a staging site.

== External services ==

The plugin works without connecting to WebSync or another external service.

An optional deactivation survey is displayed when an authorized administrator deactivates the plugin. Data is sent only when the administrator explicitly clicks **Submit & Deactivate**. The survey sends the plugin name, plugin slug, plugin version, selected reason, and any comments entered to `https://api.websync.tech/`. It does not send the site URL, administrator email address, customer information, cart contents, or order data. Clicking **Skip & Deactivate** sends no survey data.

The survey is used to improve the plugin. See the [WebSync privacy policy](https://websync.tech/privacy-policy/).

== Privacy ==

The frontend Menu Cart, Cart, Checkout, Order Confirmation, and My Account widgets do not collect or transmit personal data beyond the normal processing performed by WooCommerce and the store's configured payment, shipping, analytics, and marketing extensions. Menu Cart, Order Confirmation, and My Account editor previews use fixed sample information and do not query customer orders, read the administrator's customer data, or modify the administrator's cart.

The optional deactivation survey is described in the External services section above.

== Changelog ==

= 1.2.0 =

* Added a Free Products Grid widget with native WooCommerce product loops, six query sources, taxonomy filters, manual selections, responsive columns, pagination, element visibility, and comprehensive styling.
* Added a Free My Account widget covering WooCommerce authentication and every native customer endpoint, with editable navigation, a custom dashboard template option, anonymized editor states, and comprehensive responsive styling.

= 1.1.0 =

* Added a Free Menu Cart widget with Side Cart and Dropdown modes, native WooCommerce mini-cart output, live fragments, AJAX add-to-cart opening, accessibility behavior, and detailed Elementor controls.
* Added an extension-ready Menu Cart skin API with validated assets and a permanent Free fallback.
* Added a Free Order Confirmation widget with native WooCommerce order verification, editable content, responsive styles, optional navigation actions, and an anonymized Elementor preview.
* Added a backward-compatible Order Confirmation skin API so future extensions can register isolated skins and assets without changing saved Free widget settings.
* Added the Multi-Step Checkout skin to the editor-only Pro preview selector.
* Added the Accordion Checkout skin to the editor-only Pro preview selector.
* Updated the Conversion Split preview artwork to match its one-page checkout structure without a false progress indicator.
* Added a safe editor-only Pro skin selector with an accessible Conversion Split preview and upgrade action.
* Added Elementor-style Checkout content controls for section text, fields, coupons, terms, and the purchase button.
* Added Elementor-style Cart content controls for layouts, editable text, alignment, sticky totals, automatic updates, and custom empty-cart templates.
* Added comprehensive Checkout and Cart style controls for sections, typography, forms, summaries, totals, buttons, and individual areas.
* Added automatic AJAX cart quantity and totals updates.
* Added conditional Elementor panel ordering that places WebSync WooCommerce widgets first on WooCommerce content.
* Added a versioned Core/Skin API with compatibility helpers and reliable extension bootstrap hooks for future Pro add-ons.
* Added backward-compatible Cart and Checkout skin registries with safe default fallback, validated per-skin asset dependencies, and control-registration hooks.
* Added scoped render-setting and before/after-render hooks so Pro features can safely enhance the Default skin without duplicating Core templates.
* Added consistent public widget and settings accessors to the Cart and Checkout base skin contracts.
* Added an extensible Checkout wrapper-class contract so child skins can reuse the complete Core rendering lifecycle.
* Added skin-aware Elementor control visibility so Default-only controls stay hidden for extension skins.
* Clarified the shared checkout terms and place-order control group for extension skins.
* Improved compatibility with existing saved widget settings and generated Elementor CSS.
* Improved cart and checkout preview initialization without leaving temporary products in the administrator's cart.
* Improved translations by using the plugin text domain consistently.
* Improved security with capability checks, nonces, input validation, sanitization, contextual escaping, and safer AJAX HTML handling.
* Removed automatic activation tracking and made deactivation feedback explicitly optional.
* Fixed WooCommerce order-attribution inputs creating empty editor layout space.
* Fixed Checkout-only pages treating the order-received endpoint as an empty cart instead of rendering WooCommerce's verified confirmation fallback.
* Fixed Elementor preview asset loading for settings-less widget type instances.
* Fixed repeated cart totals calculations, unsafe missing-setting access, and customer shipping-session mutation.
* Fixed Checkout filters and render hooks leaking into other WooCommerce output.
* Fixed dynamic purchase-button and terms text after WooCommerce AJAX refreshes.

= 1.0.4 =

* Improved deactivation feedback handling.

= 1.0.3 =

* Added optional deactivation feedback.

= 1.0.2 =

* Added the WooCommerce Cart widget, layout controls, coupon options, cross-sells, and responsive styling.

= 1.0.1 =

* Initial release with the WooCommerce Checkout widget.

== Upgrade Notice ==

= 1.2.0 =

Adds Products Grid and My Account widgets with native WooCommerce loops, responsive layouts, filtering, customer navigation, account flows, and extension APIs. Test product queries, login, registration, and account endpoints on a staging site.

== Support ==

For support, visit https://websync.tech/contact/ and include your WordPress, WooCommerce, Elementor, and PHP versions together with any relevant error messages.
