{"id":272713,"date":"2026-02-26T18:09:50","date_gmt":"2026-02-26T18:09:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/swift-commerce\/"},"modified":"2026-07-27T08:00:08","modified_gmt":"2026-07-27T08:00:08","slug":"swift-commerce","status":"publish","type":"plugin","link":"https:\/\/te.wordpress.org\/plugins\/swift-commerce\/","author":23432591,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Swift Commerce","header_author":"Swift Commerce","header_description":"A powerful WooCommerce addon with extensive features and capabilities to solve problems for WooCommerce users.","assets_banners_color":"566a95","last_updated":"2026-07-27 08:00:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/swiftcommerce.io\/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash","header_author_uri":"https:\/\/swiftcommerce.io\/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash","rating":5,"author_block_rating":0,"active_installs":0,"downloads":756,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"swiftcommerce","date":"2026-02-26 18:24:37"},"1.4.1":{"tag":"1.4.1","author":"swiftcommerce","date":"2026-02-27 01:59:33"},"1.4.2":{"tag":"1.4.2","author":"swiftcommerce","date":"2026-02-28 11:42:43"},"1.4.20":{"tag":"1.4.20","author":"swiftcommerce","date":"2026-07-01 22:19:34"},"1.4.21":{"tag":"1.4.21","author":"swiftcommerce","date":"2026-07-01 22:38:35"},"1.4.3":{"tag":"1.4.3","author":"swiftcommerce","date":"2026-03-03 01:33:54"},"1.4.4":{"tag":"1.4.4","author":"swiftcommerce","date":"2026-03-09 19:18:48"},"1.4.8":{"tag":"1.4.8","author":"swiftcommerce","date":"2026-03-16 22:46:12"},"1.4.9":{"tag":"1.4.9","author":"swiftcommerce","date":"2026-04-01 13:08:33"},"1.5.0":{"tag":"1.5.0","author":"swiftcommerce","date":"2026-07-27 08:00:08"}},"upgrade_notice":{"1.4.1":"<p>Hotfix: WordPress.org compliance \u2014 removed custom CSS insertion, corrected plugin name, and distribution fixes.<\/p>","1.4.0":"<p>Major update: Abandoned Cart Recovery with automated email sequences, Conditional Logic for Checkout Fields, and Quick Add Fields drag-and-drop redesign.<\/p>","1.3.0":"<p>Major update: Global Styles system, standalone Email Customizer, template presets for all features, and Cloudflare Turnstile \/ hCaptcha support.<\/p>","1.0.0":"<p>Initial release \u2014 replace 15+ WooCommerce plugins with one unified toolkit.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3484315,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3484315,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3484315,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"swift-commerce\/wishlist-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/wishlist-button","version":"1.5.0","title":"Wishlist Button","category":"swift-commerce","icon":"heart","description":"Display the Wishlist button for the current WooCommerce product.","keywords":["wishlist","product","favorite"],"textdomain":"swift-commerce","attributes":{"productId":{"type":"number","default":0,"minimum":0}},"usesContext":["postId","postType"],"supports":{"html":false,"anchor":true,"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-wishlist-button-block-editor"},"swift-commerce\/product-bundle":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/product-bundle","version":"1.5.0","title":"Product Bundle","category":"swift-commerce","icon":"products","description":"Display the complete purchase form for a Swift Commerce bundle product.","keywords":["bundle","products","add to cart"],"textdomain":"swift-commerce","attributes":{"productId":{"type":"number","default":0,"minimum":0}},"usesContext":["postId","postType"],"supports":{"html":false,"anchor":true,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-product-bundle-block-editor"},"swift-commerce\/back-in-stock":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/back-in-stock","version":"1.5.0","title":"Back In Stock Form","category":"swift-commerce","icon":"bell","description":"Display the notification form for an eligible WooCommerce product.","keywords":["stock","notification","product"],"textdomain":"swift-commerce","attributes":{"productId":{"type":"number","default":0,"minimum":0}},"usesContext":["postId","postType"],"supports":{"html":false,"anchor":true,"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-back-in-stock-block-editor"},"swift-commerce\/ajax-search":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/ajax-search","version":"1.5.0","title":"AJAX Product Search","category":"swift-commerce","icon":"search","description":"Help shoppers find WooCommerce products with instant search results.","keywords":["search","products","woocommerce"],"textdomain":"swift-commerce","attributes":{"inheritDesign":{"type":"boolean","default":true},"placeholder":{"type":"string","default":"Search products..."},"layout":{"type":"string","default":"dropdown","enum":["dropdown","fullwidth","modal"]},"categoryFilter":{"type":"boolean","default":false},"maxResults":{"type":"number","default":8,"minimum":1,"maximum":50},"showImages":{"type":"boolean","default":true},"showPrices":{"type":"boolean","default":true},"showCategories":{"type":"boolean","default":true},"showSku":{"type":"boolean","default":false},"showStock":{"type":"boolean","default":true},"showRating":{"type":"boolean","default":true},"showDescription":{"type":"boolean","default":true}},"supports":{"html":false,"anchor":true,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-ajax-search-block-editor"},"swift-commerce\/wishlist":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/wishlist","version":"1.5.0","title":"Wishlist Page","category":"swift-commerce","icon":"heart","description":"Display the current shopper's Wishlist with the saved Swift Commerce design.","keywords":["wishlist","favorites","woocommerce"],"textdomain":"swift-commerce","supports":{"html":false,"anchor":true,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-wishlist-block-editor"},"swift-commerce\/currency-switcher":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"swift-commerce\/currency-switcher","version":"1.5.0","title":"Currency Switcher","category":"swift-commerce","icon":"money-alt","description":"Let shoppers choose the currency used for product prices.","keywords":["currency","exchange","woocommerce"],"textdomain":"swift-commerce","attributes":{"inheritDesign":{"type":"boolean","default":true},"layout":{"type":"string","default":"dropdown","enum":["dropdown","buttons","list","flags"]},"showFlags":{"type":"boolean","default":true},"showCode":{"type":"boolean","default":true},"showName":{"type":"boolean","default":true},"showSymbol":{"type":"boolean","default":true},"alignment":{"type":"string","default":"left","enum":["left","center","right"]}},"supports":{"html":false,"anchor":true,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"editorScript":"swift-commerce-currency-switcher-block-editor"}},"tagged_versions":["1.4.0","1.4.1","1.4.2","1.4.20","1.4.21","1.4.3","1.4.4","1.4.8","1.4.9","1.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3484315,"resolution":"1","location":"assets","locale":"","width":2560,"height":1229},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3484315,"resolution":"2","location":"assets","locale":"","width":2560,"height":1229},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3484315,"resolution":"3","location":"assets","locale":"","width":2560,"height":1229},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3484315,"resolution":"4","location":"assets","locale":"","width":2560,"height":1229},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3484315,"resolution":"5","location":"assets","locale":"","width":2560,"height":1229}},"screenshots":{"1":"All-in-one dashboard \u2014 Enable, disable, and configure all 15+ features from one clean interface","2":"Wishlist settings \u2014 Customize button placement, guest support, and design with live preview templates","3":"Ajax Live Search \u2014 Configure real-time product search with instant results and category filtering","4":"Currency Switcher \u2014 Set up 160+ currencies with automatic exchange rates and geolocation detection","5":"Checkout Field Editor \u2014 Drag-and-drop field management for billing, shipping, and additional sections","6":"Cookie Consent \u2014 Design configurable privacy banners with multiple templates and category controls","7":"Back in Stock \u2014 Configure automated restock notifications with visual email editor","8":"reCAPTCHA \u2014 Protect forms with Google reCAPTCHA; Pro adds Cloudflare Turnstile and hCaptcha"}},"plugin_section":[],"plugin_tags":[11133,21294,4079,1666,286],"plugin_category":[41,45],"plugin_contributors":[256684],"plugin_business_model":[],"class_list":["post-272713","plugin","type-plugin","status-publish","hentry","plugin_tags-cart-recovery","plugin_tags-currency-switcher","plugin_tags-subscriptions","plugin_tags-wishlist","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-swiftcommerce","plugin_committers-swiftcommerce"],"banners":{"banner":"https:\/\/ps.w.org\/swift-commerce\/assets\/banner-772x250.png?rev=3484315","banner_2x":"https:\/\/ps.w.org\/swift-commerce\/assets\/banner-1544x500.png?rev=3484315","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/swift-commerce\/assets\/icon-256x256.png?rev=3484315","icon_2x":"https:\/\/ps.w.org\/swift-commerce\/assets\/icon-256x256.png?rev=3484315","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/swift-commerce\/assets\/screenshot-1.png?rev=3484315","caption":"All-in-one dashboard \u2014 Enable, disable, and configure all 15+ features from one clean interface"},{"src":"https:\/\/ps.w.org\/swift-commerce\/assets\/screenshot-2.png?rev=3484315","caption":"Wishlist settings \u2014 Customize button placement, guest support, and design with live preview templates"},{"src":"https:\/\/ps.w.org\/swift-commerce\/assets\/screenshot-3.png?rev=3484315","caption":"Ajax Live Search \u2014 Configure real-time product search with instant results and category filtering"},{"src":"https:\/\/ps.w.org\/swift-commerce\/assets\/screenshot-4.png?rev=3484315","caption":"Currency Switcher \u2014 Set up 160+ currencies with automatic exchange rates and geolocation detection"},{"src":"https:\/\/ps.w.org\/swift-commerce\/assets\/screenshot-5.png?rev=3484315","caption":"Checkout Field Editor \u2014 Drag-and-drop field management for billing, shipping, and additional sections"}],"raw_content":"<!--section=description-->\n<h4>LAUNCH WOOCOMMERCE STORES FASTER, 10X AFFORDABLE AND WITH LESS TECHNICAL HEADACHE. 16 FEATURES. ONE BEAUTIFUL DASHBOARD.<\/h4>\n\n<p>Swift Commerce is everything your WooCommerce store needs \u2014 wishlists, subscriptions, product bundles, cart recovery, currency switching, checkout customization, cookie consent controls, and more \u2014 managed from one sleek, centralized dashboard.<\/p>\n\n<p>No juggling 15+ separate plugins. No debugging conflicts. No paying hundreds in stacked subscription fees. One install, one interface, and you're ready to sell.<\/p>\n\n<p><strong>And every single feature is acessible for free.<\/strong> Subscriptions, bundles, shipment tracking, cart recovery \u2014 all of it.<\/p>\n\n<h4>\ud83c\udf1f All 16 Features \u2014 Included Free<\/h4>\n\n<p><strong>\ud83d\uded2 Sell More<\/strong><\/p>\n\n<ul>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/wishlist\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Wishlist<\/a><\/strong> \u2014 Customers save products and come back to buy. Supports guests and logged-in users.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/ajax-search\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Ajax Live Search<\/a><\/strong> \u2014 Real-time product search with instant suggestions. Fewer bounces, more sales.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/currency-switcher\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Currency Switcher<\/a><\/strong> \u2014 Display prices in 160+ currencies with automatic exchange rates and geolocation.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/add-to-cart-popup\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Add to Cart Popup<\/a><\/strong> \u2014 Cross-sell suggestions the moment a customer adds a product to cart.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/product-bundles\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Product Bundles<\/a><\/strong> \u2014 Create discounted product packages to increase average order value.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/product-addons\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Product Addons<\/a><\/strong> \u2014 Add custom fields, gift wrapping, engraving, and upgrades to any product.<\/li>\n<\/ul>\n\n<p><strong>\ud83d\udcb0 Grow Revenue<\/strong><\/p>\n\n<ul>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/subscriptions\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Subscriptions<\/a><\/strong> \u2014 Recurring billing with flexible plans, free trials, and automated renewal emails.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/cart-recovery\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Cart Recovery<\/a><\/strong> \u2014 Automated abandoned cart emails with secure one-click recovery links.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/back-in-stock\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Back in Stock Notifications<\/a><\/strong> \u2014 Customers subscribe to out-of-stock products and get notified when inventory returns.<\/li>\n<\/ul>\n\n<p><strong>\u2699\ufe0f Customize &amp; Control<\/strong><\/p>\n\n<ul>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/checkout-field-editor\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Checkout Field Editor<\/a><\/strong> \u2014 Add, remove, and reorder fields on classic checkout, with supported custom order fields also registered through the WooCommerce Checkout Block API.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/registration-form\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Custom Registration Forms<\/a><\/strong> \u2014 Collect the right customer data from day one with custom fields and validation.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/quantity-limits\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Quantity Limits<\/a><\/strong> \u2014 Set min\/max purchase rules and cart spend limits per product or category.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/shipment-tracking\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Shipment Tracking<\/a><\/strong> \u2014 Add tracking numbers and auto-notify customers. Supports FedEx, UPS, DHL, USPS, and more.<\/li>\n<\/ul>\n\n<p><strong>\ud83d\udd12 Trust &amp; Compliance<\/strong><\/p>\n\n<ul>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/gdpr-cookie-consent\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Cookie Consent<\/a><\/strong> \u2014 Configurable cookie banners with granular category controls and optional consent records (Pro).<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/email-verification\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Email Verification<\/a><\/strong> \u2014 Require email verification on registration. Eliminate fake accounts.<\/li>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/recaptcha\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">reCAPTCHA &amp; CAPTCHA<\/a><\/strong> \u2014 Protect login, registration, and checkout forms from bots and spam.<\/li>\n<\/ul>\n\n<p><strong>\ud83c\udfa8 Design Tools<\/strong> (built into every feature)<\/p>\n\n<ul>\n<li><strong><a href=\"https:\/\/swiftcommerce.io\/features\/email-customizer\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Email Customizer<\/a><\/strong> \u2014 Visual email editor with live preview, Google Fonts, product cards, and placeholder tags.<\/li>\n<\/ul>\n\n<h4>\ud83d\udd11 What Does Pro Add?<\/h4>\n\n<p>Every feature above works fully for free. <a href=\"https:\/\/swiftcommerce.io\/pricing\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Swift Commerce Pro<\/a> enhances each feature with advanced capabilities:<\/p>\n\n<ul>\n<li><strong>Wishlist<\/strong> \u2192 Social sharing, multiple named wishlists, and email reminders for saved products<\/li>\n<li><strong>Ajax Live Search<\/strong> \u2192 Search by SKU, weighted results, and advanced category\/attribute filtering<\/li>\n<li><strong>Currency Switcher<\/strong> \u2192 Geolocation auto-switch, checkout currency lock, and custom rounding rules<\/li>\n<li><strong>Add to Cart Popup<\/strong> \u2192 Advanced cross-sell rules, conditional recommendations, and popup design templates<\/li>\n<li><strong>Product Bundles<\/strong> \u2192 Dynamic pricing, variable product support, and advanced discount rules<\/li>\n<li><strong>Product Addons<\/strong> \u2192 Protected file uploads, server-enforced conditional visibility, date\/time fields, color swatches, and add-on quantities<\/li>\n<li><strong>Subscriptions<\/strong> \u2192 Advanced billing intervals, subscriber management, and email customization<\/li>\n<li><strong>Cart Recovery<\/strong> \u2192 Analytics dashboard, coupon generation, and CSV export<\/li>\n<li><strong>Back in Stock<\/strong> \u2192 Subscriber analytics, priority queue, and custom notification scheduling<\/li>\n<li><strong>Checkout Field Editor<\/strong> \u2192 Conditional logic rules (show\/hide fields based on cart, user, or other field values)<\/li>\n<li><strong>Registration Forms<\/strong> \u2192 Conditional fields, multi-step forms, and advanced field types<\/li>\n<li><strong>Quantity Limits<\/strong> \u2192 Per-category rules, cart spend restrictions, and role-based limits<\/li>\n<li><strong>Shipment Tracking<\/strong> \u2192 Bulk import, custom carriers, and automated status emails<\/li>\n<li><strong>Cookie Consent<\/strong> \u2192 Advanced consent categories, geo-targeting, and analytics integration<\/li>\n<li><strong>Email Verification<\/strong> \u2192 Custom verification page styling and admin notification controls<\/li>\n<li><strong>reCAPTCHA<\/strong> \u2192 Adds Cloudflare Turnstile and hCaptcha as alternative CAPTCHA providers<\/li>\n<li><strong>All features<\/strong> \u2192 Global Styles (centralized brand colors and typography) plus full design customization (spacing, borders, shadows, custom CSS)<\/li>\n<\/ul>\n\n<p>Pro doesn't unlock features \u2014 it supercharges the ones you already have.<\/p>\n\n<h4>\u26a1 Built for Performance<\/h4>\n\n<ul>\n<li><strong>Conditional loading<\/strong> \u2014 Disabled features add zero overhead to your site<\/li>\n<li><strong>One codebase<\/strong> \u2014 No plugin conflicts, no duplicated libraries, no redundant database queries<\/li>\n<li><strong>Modern stack<\/strong> \u2014 PHP 7.4+, WooCommerce HPOS compatible, block checkout ready<\/li>\n<\/ul>\n\n<h4>\ud83c\udfaf Who Is This For?<\/h4>\n\n<ul>\n<li><strong>Store owners<\/strong> replacing a bloated stack of 10+ individual WooCommerce plugins<\/li>\n<li><strong>Agencies<\/strong> setting up client stores faster with one plugin instead of a dozen<\/li>\n<li><strong>Subscription businesses<\/strong> needing recurring billing, wishlists, and cookie consent controls in one package<\/li>\n<li><strong>International sellers<\/strong> requiring multi-currency + geolocation + localized checkout fields<\/li>\n<\/ul>\n\n<h4>\ud83d\udcda Documentation &amp; Support<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/swiftcommerce.io\/help\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Documentation &amp; Guides<\/a><\/li>\n<li><a href=\"https:\/\/swiftcommerce.io\/contact\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Contact Support<\/a><\/li>\n<li><a href=\"https:\/\/swiftcommerce.io\/contact\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">Feature Requests<\/a><\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to third-party services when their respective features are enabled. No data is sent unless you activate the feature.<\/p>\n\n<h4>Google reCAPTCHA<\/h4>\n\n<p>Protects selected login, registration, password reset, comment, and WooCommerce forms from automated abuse.<\/p>\n\n<p><strong>What data is sent:<\/strong> The configured public site key, the visitor's IP address, browser\/device information collected by Google's script, the generated response token, and a fixed action name for reCAPTCHA v3.<\/p>\n\n<p><strong>When data is sent:<\/strong> Google's script is loaded only on a page containing a protected form. The response token and visitor IP are sent to Google's verification API when that form is submitted. The feature is disabled by default and requires the store administrator to provide Google API keys.<\/p>\n\n<p><strong>Service provider:<\/strong> Google LLC\n* <a href=\"https:\/\/policies.google.com\/terms\">Terms of Service<\/a> | <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a><\/p>\n\n<h4>Google Fonts<\/h4>\n\n<p>Optional typography for supported Swift Commerce features. Font files are loaded from Google's servers when a Google Font is selected by the store administrator.\n* <a href=\"https:\/\/developers.google.com\/fonts\/faq\/privacy\">Privacy FAQ<\/a><\/p>\n\n<h4>ip-api.com<\/h4>\n\n<p>Optional geolocation for Currency Switcher auto-detection. Sends visitor IP address. Result cached per session.\n* <a href=\"https:\/\/ip-api.com\/docs\/legal\">Terms &amp; Privacy<\/a><\/p>\n\n<h4>ExchangeRate-API<\/h4>\n\n<p>Fetches real-time currency exchange rates. Only the base currency code is sent. Rates are cached.\n* <a href=\"https:\/\/www.exchangerate-api.com\/terms\">Terms of Use<\/a><\/p>\n\n<h4>Shipping Carriers (Pro)<\/h4>\n\n<p>Tracking links redirect customers to carrier websites (FedEx, UPS, DHL, USPS, Royal Mail, etc.) with the tracking number in the URL. No data is sent from your server.\n* <a href=\"https:\/\/www.fedex.com\/en-us\/privacy-policy.html\">FedEx Privacy<\/a> | <a href=\"https:\/\/www.ups.com\/us\/en\/support\/shipping-support\/legal-terms-conditions\/privacy-notice.page\">UPS Privacy<\/a> | <a href=\"https:\/\/www.dhl.com\/global-en\/home\/footer\/privacy-notice.html\">DHL Privacy<\/a> | <a href=\"https:\/\/www.usps.com\/privacypolicy\">USPS Privacy<\/a><\/p>\n\n<h4>Freemius<\/h4>\n\n<p>License management, plugin updates, and optional anonymous usage analytics.\n* <a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a> | <a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a><\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Optional Pro CAPTCHA analytics are disabled by default. When enabled, they store a one-way client IP fingerprint, provider, protected form location, result, failure code, score where available, and timestamp for the administrator-selected retention period. Raw IP addresses and browser user-agent strings are not stored in CAPTCHA analytics.<\/p>\n\n<p>Swift Commerce stores data locally on your server: wishlist product IDs (database for users, cookies for guests), back-in-stock email subscriptions, pending email-verification records and verification status, pseudonymous cookie consent records when Pro logging is enabled, CAPTCHA settings, aggregate Ajax Search terms and click counts, and Cart Recovery records when those features are enabled. Verification records contain the user ID, email address, a one-way token hash, creation and expiry times, verification type, and resend count; they are removed after verification or through the WordPress erasure tool. Consent records contain a one-way IP hash, timestamp, policy version, and category choices; browser user-agent strings are not stored. Cart Recovery records can include a WooCommerce session identifier, customer email, cart products, quantities, totals, currency, email delivery\/open\/click timestamps, recovery attribution, and a one-way email hash used to honor opt-outs. Cart records follow the retention period configured by the store administrator; opt-out hashes are retained so customers are not contacted again. WordPress privacy export and erasure tools support these records. Search analytics are retained for up to 365 days by default and can be cleared or exported by a store administrator. External services are contacted only when their features are enabled \u2014 see \"External Services\" above for details.<\/p>\n\n<p>For more information, see our <a href=\"https:\/\/swiftcommerce.io\/privacy-policy\/\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<h4>Quick Start (60 seconds)<\/h4>\n\n<ol>\n<li>Search for \"Swift Commerce\" in <strong>Plugins \u2192 Add New<\/strong>, or upload the ZIP file<\/li>\n<li>Activate through the Plugins menu<\/li>\n<li>Go to <strong>Swift Commerce<\/strong> in your admin sidebar to configure features<\/li>\n<li>Enable only the features you need \u2014 everything else stays dormant<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0+<\/li>\n<li>WooCommerce 7.0+<\/li>\n<li>PHP 7.4+<\/li>\n<\/ul>\n\n<h4>Source Code<\/h4>\n\n<p>This plugin includes full uncompressed source code in the <code>src\/<\/code> directory for WordPress.org compliance:<\/p>\n\n<ul>\n<li><code>src\/<\/code> \u2014 React\/TypeScript source (components, hooks, features)<\/li>\n<li><code>assets\/js\/<\/code> \u2014 Unminified frontend JavaScript<\/li>\n<li><code>assets\/css\/<\/code> \u2014 Unminified frontend CSS<\/li>\n<li><code>build\/<\/code> \u2014 Compiled admin dashboard output<\/li>\n<\/ul>\n\n<h4>Build Instructions<\/h4>\n\n<ol>\n<li>Install Node.js (v18+)<\/li>\n<li>Run <code>npm install<\/code> in the plugin directory<\/li>\n<li>Run <code>npm run build<\/code><\/li>\n<\/ol>\n\n<p>Build tools: <a href=\"https:\/\/vitejs.dev\/\">Vite<\/a>, <a href=\"https:\/\/www.typescriptlang.org\/\">TypeScript<\/a>, <a href=\"https:\/\/tailwindcss.com\/\">Tailwind CSS<\/a>, <a href=\"https:\/\/postcss.org\/\">PostCSS<\/a><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. Features load conditionally \u2014 if a feature is disabled, it adds zero overhead. Replacing multiple plugins with Swift Commerce typically improves performance.<\/p><\/dd>\n<dt id=\"can%20i%20replace%20my%20existing%20plugins%20with%20this%3F\"><h3>Can I replace my existing plugins with this?<\/h3><\/dt>\n<dd><p>Yes. Every feature is a full replacement for its standalone equivalent. We recommend testing on a staging site first.<\/p><\/dd>\n<dt id=\"what%20if%20i%20only%20need%20a%20few%20features%3F\"><h3>What if I only need a few features?<\/h3><\/dt>\n<dd><p>Enable what you need, disable the rest. Disabled features don't load any code, CSS, or JavaScript.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20version%3F\"><h3>Is there a free version?<\/h3><\/dt>\n<dd><p>Yes \u2014 and unlike most WooCommerce plugins, all 16 features work fully in the free version. Subscriptions, bundles, cart recovery, shipment tracking \u2014 everything. Pro adds advanced enhancements but nothing is locked.<\/p><\/dd>\n<dt id=\"what%20does%20pro%20add%20if%20everything%20is%20free%3F\"><h3>What does Pro add if everything is free?<\/h3><\/dt>\n<dd><p>Pro enhances each feature with advanced capabilities \u2014 things like Cloudflare Turnstile for reCAPTCHA, conditional logic for checkout fields, analytics for cart recovery, and full design customization across all features. Think of it as going from great to exceptional.<\/p><\/dd>\n<dt id=\"does%20the%20wishlist%20work%20for%20guests%3F\"><h3>Does the wishlist work for guests?<\/h3><\/dt>\n<dd><p>Yes. Guest wishlists use browser cookies and automatically transfer to the user's account when they register.<\/p><\/dd>\n<dt id=\"is%20the%20cookie%20consent%20gdpr%20compliant%3F\"><h3>Is the cookie consent GDPR compliant?<\/h3><\/dt>\n<dd><p>It provides configurable consent controls, granular categories, and customizable banners. It gates integrations managed by Swift Commerce; scripts added by themes or other plugins require separate review. Privacy laws vary, so we recommend consulting a qualified legal professional for your store's requirements.<\/p><\/dd>\n<dt id=\"how%20do%20exchange%20rates%20work%3F\"><h3>How do exchange rates work?<\/h3><\/dt>\n<dd><p>Set rates manually or enable automatic updates from ExchangeRate-API (free tier available). Rates are cached to minimize requests.<\/p><\/dd>\n<dt id=\"what%27s%20your%20refund%20policy%3F\"><h3>What's your refund policy?<\/h3><\/dt>\n<dd><p>30-day money-back guarantee on Pro. No questions asked.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Visit our <a href=\"https:\/\/swiftcommerce.io\/help\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">documentation<\/a> or <a href=\"https:\/\/swiftcommerce.io\/contact\/?utm_source=wp-repo&amp;utm_medium=link&amp;utm_campaign=readme\">contact support<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>[New Feature] Native Blocks \u2014 Added complete Free Currency Switcher, AJAX Product Search, Wishlist Page, product-aware Wishlist Button, Back In Stock Form, and Product Bundle purchase-form blocks with canonical server rendering, Dashboard design inheritance, conditional assets, and separate extension contracts for Pro customization<\/li>\n<li>[New Feature] Added To Cart Popup \u2014 Added success-icon visibility and color controls, plus size and corner-radius controls in Pro<\/li>\n<li>[Tweak] Back In Stock \u2014 Notification forms now use shared accessible controls, alerts, dialog, loading, and toast states with reduced-motion support<\/li>\n<li>[Tweak] Back In Stock \u2014 Replaced Compact Banner with a flexible Custom template, kept every template customizable, and added content-alignment, card, shadow, button-border, and input-border appearance controls (Pro)<\/li>\n<li>[Tweak] Storefront UI \u2014 Added a shared accessible design system, removed legacy styling aliases, and standardized public Free and Pro interfaces on the Swift Commerce namespace<\/li>\n<li>[Fix] Back In Stock \u2014 Stacked forms keep standard-height email fields, and live previews now match storefront Global Style colors, borders, spacing, and controls<\/li>\n<li>[Fix] Elementor compatibility - Removed stale widget loaders, restored Currency Switcher flags-only output, and made Wishlist grid and list removals target the correct rendered item<\/li>\n<li>[Tweak] Ajax Search \u2014 Storefront forms, results, loading, product states, and modal search now use the shared design system, while the dashboard preview accurately reflects saved colors, typography, dimensions, shadows, templates, and layouts<\/li>\n<li>[Tweak] Ajax Search - Widget requests now honor their configured minimum query length and receive structured sale prices from the shared search service<\/li>\n<li>[Fix] Ajax Search \u2014 Results now stay above page-builder content with an opaque, theme-safe layout; Elementor shortcodes initialize in the editor; prices remain compact; clear and modal-close icons, including the Elementor clear control, display correctly; and the live preview matches the storefront<\/li>\n<li>[Tweak] Currency Switcher - Added a normalized lowercase shortcode alias and corrected preset classes so saved storefront styles apply consistently<\/li>\n<li>[Tweak] Currency Switcher \u2014 Migrated every storefront layout and dashboard preview to the shared design system with consistent colors, flags, spacing, responsive behavior, and accessible keyboard controls<\/li>\n<li>[Fix] Currency Switcher \u2014 Corrected stretched flags, protected controls from theme and page-builder overrides, and kept narrow dropdown rows aligned without wrapping<\/li>\n<li>[Fix] Product Addons - Required fields and submitted choices are now validated against the saved product schema before cart insertion, including Store API requests and server-enforced conditional visibility<\/li>\n<li>[Fix] Product Addons - Add-on prices now use an immutable product base price with consistent flat, percentage, quantity, cart-quantity, tax-display, and variable-product calculations<\/li>\n<li>[Tweak] Product Addons - Added conditional storefront assets, a theme-overridable canonical template, accessible field output, bounded configuration data, working disable behavior, and accurate settings and upgrade descriptions<\/li>\n<li>[Tweak] Product Addons \u2014 Stacked, Grid, and Inline layouts now share the storefront design system, responsive controls, accessible states, Global Styles, and an accurate dashboard preview<\/li>\n<li>[Tweak] Product Bundles \u2014 Selected products, variations, quantities, prices, dimensions, and downloads now remain consistent from the product page through Cart, Checkout Blocks, orders, and recovered carts<\/li>\n<li>[Tweak] Product Bundles \u2014 Bundle prices now use WooCommerce's native product data and refresh in bounded batches when component prices change, while storefront and editor assets use safer conditional behavior<\/li>\n<li>[Tweak] Product Bundles \u2014 Grid, List, and Compact layouts now use the shared responsive storefront design system with Global Styles and an exact dashboard preview<\/li>\n<li>[Tweak] Product Bundles \u2014 Pro-only settings and appearance sections now show consistent crown indicators in the Dashboard (Pro)<\/li>\n<li>[Tweak] Dashboard \u2014 Header upgrade links now identify the originating feature and placement for campaign reporting<\/li>\n<li>[Fix] Product Bundles \u2014 Repaired optional selections, variable products, quantity limits, coupon behavior, shortcodes, stock validation, order displays, and product editor controls across Free and Pro configurations<\/li>\n<li>[Fix] Product Bundles \u2014 Removed the competing legacy stylesheet, prevented themes from collapsing bundle content, kept Classic previews in a three-column layout, and tightened Minimal list spacing<\/li>\n<li>[Tweak] Wishlist \u2014 Product buttons, loop hearts, notifications, page templates, sharing, empty states, and Elementor layouts now use the shared responsive storefront design system with an accurate dashboard preview<\/li>\n<li>[Tweak] Wishlist \u2014 Standardized the Appearance preview, consolidated button and notification controls, and added configurable toast radius and shadow<\/li>\n<li>[Fix] Wishlist \u2014 Saved page templates and visibility controls now reach the storefront, theme button styles no longer override Wishlist controls, and notifications announce safely without rendering response text as markup<\/li>\n<li>[Fix] Wishlist \u2014 Restored clearly visible remove icons, made button, shop-loop, notification, and page-template previews use the storefront markup and saved styles, repaired After Add to Cart placement, and prevented Elementor grids from nesting products inside one narrow sub-column (Pro)<\/li>\n<li>[Fix] Wishlist \u2014 Modern Cards now uses a stable three-column desktop layout without unnecessarily increasing the dashboard preview height<\/li>\n<li>[Fix] Back In Stock \u2014 Repaired fresh-install database setup, repeat subscriptions, confirmation expiry, variation waitlists, public request validation, and dashboard reporting<\/li>\n<li>[Tweak] Back In Stock \u2014 Added claimed retryable email delivery, bounded retention cleanup, configurable sender headers, order-based removal, and WordPress privacy export and erasure<\/li>\n<li>[Tweak] Back In Stock \u2014 Applied saved display and appearance settings, added accessible storefront dialogs, safer archive behavior, subscription pagination, and focused regression checks<\/li>\n<li>[Tweak] Email Verification \u2014 Scoped account interception to supported registration forms, added rate-limited self-service resends, hashed tokens, UTC expiry, explicit link confirmation, and email-change re-verification<\/li>\n<li>[Tweak] Email Verification \u2014 Added versioned indexed storage, privacy export and erasure, server-side pending-user pagination and search, accurate dashboard counts, and working dashboard deep links<\/li>\n<li>[Fix] Email Verification \u2014 Closed duplicate registration processing and alternate-login bypasses, preserved valid tokens after mail failures, made the verification email mandatory, and separated premium settings, cleanup, approval, and checkout enforcement from Free<\/li>\n<li>[Tweak] CAPTCHA \u2014 Added Checkout Block protection, request-scoped verification, per-client rate limiting, trusted-proxy detection, and provider action and hostname validation<\/li>\n<li>[Tweak] CAPTCHA Settings \u2014 Secret keys are no longer returned by the REST API, configured keys can be preserved safely, and incomplete providers cannot be enabled<\/li>\n<li>[Fix] CAPTCHA \u2014 Prevented WooCommerce login collisions, duplicate product-review checks, expired checkout token retries, and registration forms accepting unverified token text<\/li>\n<li>[Tweak] Checkout Field Editor - Added bounded canonical settings migration, validated imports, supported Checkout Block order fields, and honest dashboard compatibility guidance<\/li>\n<li>[Fix] Checkout Field Editor - Preserved third-party fields, mapped additional fields into WooCommerce's order section, hardened scalar and option validation, and removed password fields and inert controls<\/li>\n<li>[Fix] Checkout Field Editor - Namespaced custom order metadata with HPOS CRUD, retained historical field labels, added admin, customer, email, and privacy handling, and removed the public Free upload endpoint<\/li>\n<li>[Tweak] Cookie Consent \u2014 Optional categories now start unchecked, decline and granular settings remain equally accessible, Do Not Track is honored, and keyboard focus is managed throughout the dialog<\/li>\n<li>[Tweak] Cookie Consent \u2014 Added editable categories, a known-cookie inventory scanner, working structured appearance controls, early Google consent defaults, safer preference withdrawal, and a functional footer settings link<\/li>\n<li>[Tweak] Cookie Consent \u2014 Migrated every banner, preference panel, and reopen control to the shared storefront design system with responsive Default, Minimal, and Magazine templates<\/li>\n<li>[Fix] Cookie Consent \u2014 Live previews now use the exact storefront component and saved appearance settings, while canonical Cookie Consent assets replace the retired GDPR Notice filenames<\/li>\n<li>[Fix] Cookie Consent \u2014 Restored the Minimal preview and frontend card, prevented clipped or collapsed content and controls, and matched the Magazine preview layout to the storefront<\/li>\n<li>[Fix] Cookie Consent \u2014 Repaired malformed consent-cookie handling, dashboard navigation, bounded logging requests, uninstall cleanup, and misleading universal cookie-blocking claims<\/li>\n<li>[Fix] Cookie Consent Pro \u2014 Removed invalid self-hosted IAB TCF signaling; improved geo targeting, integration gating, privacy disclosures, indexed consent records, bounded exports and reports, and automatic retention cleanup<\/li>\n<li>[Tweak] Ajax Search \u2014 Storefront and Elementor searches now share one bounded REST service with ID-level caching, indexed SKU-prefix matching, anonymous popular suggestions, and automatic cache invalidation<\/li>\n<li>[Tweak] Ajax Search \u2014 Assets now load only where search renders, result interfaces use accessible keyboard and modal behavior, and customer content is built with safe DOM APIs<\/li>\n<li>[Fix] Ajax Search \u2014 Migrated legacy setting names into one canonical schema, repaired synonym editing and analytics period filtering, and bound click attribution to signed returned-product tokens<\/li>\n<li>[Tweak] Background processing \u2014 Stock notifications, subscription maintenance, account cleanup, and abandoned-cart cleanup now use bounded batches, backlog continuations, and overlap protection<\/li>\n<li>[Tweak] Database performance \u2014 Shipment statistics, Wishlist pages, subscription maintenance, and Cart Recovery administration now use cached counts, pagination, bulk loading, and indexed queries<\/li>\n<li>[Tweak] Ajax Search \u2014 Search analytics now use bounded indexed storage with automatic retention cleanup and rate-limited public tracking<\/li>\n<li>[Tweak] Frontend performance \u2014 Disabled Currency Switcher installations no longer attach price filters, while Currency Switcher and Wishlist assets load only where their interfaces render<\/li>\n<li>[Tweak] Currency Switcher \u2014 Expanded currency configuration to a uniform 100-currency safety limit for all stores<\/li>\n<li>[Fix] Frontend assets \u2014 Repaired corrupted CSS variables and JavaScript identifiers that could break styling and interactions across multiple features<\/li>\n<li>[Fix] Scheduled tasks \u2014 Corrected cron hook mismatches for subscription renewals, back-in-stock notifications, and email verification cleanup<\/li>\n<li>[Fix] Subscriptions \u2014 Restored My Account actions and stopped the admin from requesting a missing subscription script<\/li>\n<li>[Fix] Subscriptions \u2014 Initial checkout now charges the correct trial, sign-up fee, selected plan, and prorated amount while preserving an immutable recurring agreement snapshot<\/li>\n<li>[Fix] Subscriptions \u2014 Renewal orders now preserve purchased quantity, currency, coupons, scheduled shipping, billing anchors, and complete related-order history without duplicate schedule advancement<\/li>\n<li>[Fix] Subscriptions \u2014 Corrected manual renewals, finite terms, trial notices, purchase limits, lifecycle transitions, customer account requirements, mixed carts, and saved email settings<\/li>\n<li>[Tweak] Subscriptions \u2014 Added indexed relationship storage, privacy export and erasure, server-side administration search, conditional assets, bounded maintenance, and Cart and Checkout Blocks compatibility<\/li>\n<li>[Tweak] Subscriptions \u2014 Product purchase panels, shop buttons, plan selectors, My Account pages, and the dashboard preview now share one responsive design system that applies saved appearance controls consistently<\/li>\n<li>[Tweak] Subscriptions \u2014 Appearance previews now use the standard sub-navigation to switch between single-plan, multiple-plan, and Pro buy-once product states without styling theme-owned shop buttons<\/li>\n<li>[Fix] Subscriptions \u2014 Single-plan products no longer repeat their only plan, while multi-plan Buy Once flows show plan choices only when subscribing and preserve saved styling against theme overrides<\/li>\n<li>[Fix] REST APIs \u2014 Hardened storefront routes with signed links, request limits, ownership checks, bounded inputs, and catalogue visibility rules<\/li>\n<li>[Fix] Feature settings \u2014 Strengthened validation and sanitization for Ajax Search, Back in Stock, Currency Switcher, GDPR, Registration Forms, and Wishlist settings<\/li>\n<li>[Fix] Free and Pro compatibility \u2014 Moved premium Quantity Limits and variable Product Bundle request handlers to Pro while preserving fully functional Free behavior<\/li>\n<li>[Fix] Wishlist \u2014 Bulk cart additions now accept only products from the visitor's wishlist, enforce a safe batch size, and respect WooCommerce validation<\/li>\n<li>[Fix] Cart Recovery \u2014 Guest email capture now verifies the active WooCommerce session and limits repeated requests<\/li>\n<li>[Fix] Cart Recovery \u2014 Recovery links now restore variations and supported cart-item data, while conversions and revenue are credited only after the exact attributed order is paid<\/li>\n<li>[Tweak] Cart Recovery \u2014 Added indexed email scheduling, bounded backlog processing, durable opt-outs, automatic stale-cart cleanup, and paginated privacy exports and erasure<\/li>\n<li>[Fix] Added To Cart Popup \u2014 Popup responses no longer expose unpublished or catalogue-hidden products<\/li>\n<li>[Tweak] Added To Cart Popup \u2014 Classic, Flyout, and Solid Bar templates now use a refreshed shared design with a clear success header, unified cart summary, responsive actions, loading states, and accessibility<\/li>\n<li>[Fix] Added To Cart Popup \u2014 Restored the dashboard live-preview stylesheet, removed the Loaded and Loading controls, and kept its markup, settings, and responsive behavior aligned with the storefront<\/li>\n<li>[Fix] Storefront branding \u2014 Standardized Swift Commerce defaults on #00226b and safely migrated exact retired brand colors without changing merchant-selected colors<\/li>\n<li>[Fix] Currency Switcher \u2014 Currency changes now verify feature state and use bounded, secure browser cookie settings<\/li>\n<\/ul>\n\n<h4>1.4.20<\/h4>\n\n<ul>\n<li>[Tweak] WordPress 7.0 compatibility - Updated tested compatibility for WordPress 7.0 \"Armstrong\"<\/li>\n<li>[Tweak] Registration Form - Detects enabled registration CAPTCHA and exposes it as a movable system field in the field editor<\/li>\n<li>[Tweak] Registration Form - Add Field dialog now marks Pro-only field types with the crown indicator<\/li>\n<li>[Tweak] Registration Form - Added Quick Add Fields and simplified Add Field cards for faster field creation<\/li>\n<li>[Tweak] Registration Form - New custom field keys now use readable names with numbered duplicates<\/li>\n<li>[Tweak] Registration Form - Field dragging now keeps a solid card preview with smoother reordering<\/li>\n<li>[Tweak] Registration Form - Custom fields now follow the global form context settings instead of per-field display context controls<\/li>\n<li>[Tweak] Checkout Field Editor - Premium field types now show the crown indicator in the Add Field dialog (Pro)<\/li>\n<li>[Tweak] Subscriptions - Overview now includes the subscriptions table and Pro-only sections show crown indicators (Pro)<\/li>\n<li>[Tweak] Product Addons - Removed hardcoded emoji title prefixes and the Dashboard emoji display control<\/li>\n<li>[Tweak] Product Addons - Added bottom spacing below the Add field control in the WooCommerce Product Data panel<\/li>\n<li>[Tweak] Added To Cart Popup - Product rows now render without an extra padded box by default<\/li>\n<li>[Tweak] Added To Cart Popup - Related products now match the selected product count and include spacing controls for the related grid and action buttons (Pro)<\/li>\n<li>[Tweak] Added To Cart Popup - Frontend popup now uses a smoother delayed loading state with skeleton placeholders instead of showing empty content<\/li>\n<li>[Tweak] Added To Cart Popup - Improved action hierarchy, focus handling, keyboard navigation, reduced-motion support, and live preview loading states<\/li>\n<li>[Tweak] Cookie Consent - Privacy Policy Link now supports choosing an existing WordPress page or entering a custom URL<\/li>\n<li>[Tweak] Cookie Consent - Removed redundant guidance cards from the Integrations and Advanced tabs<\/li>\n<li>[Fix] Added To Cart Popup - Close button now keeps a consistent square size across themes<\/li>\n<li>[Fix] Registration Form - File Upload fields now use per-field file type and size limits (Pro)<\/li>\n<li>[Fix] Cookie Consent - Pro integration defaults now merge correctly when loading Cookie Consent settings<\/li>\n<li>[Fix] Checkout Field Editor - Prevented debug warnings when WooCommerce or third-party checkout fields do not define a field type<\/li>\n<li>[Fix] Checkout Field Editor - Disabled state now fully stops checkout field changes, validation, saving, frontend assets, and upload handling<\/li>\n<li>[Fix] Feature toggles - Saved disabled values now act consistently as kill switches across feature runtime checks<\/li>\n<li>[Fix] Product edit screen - Product Bundles, Product Addons, and Quantity Limits panels now only appear when enabled<\/li>\n<\/ul>\n\n<h4>1.4.9<\/h4>\n\n<ul>\n<li>[New Feature] reCAPTCHA \u2014 Client-side form blocking prevents submission until CAPTCHA is completed (v2 Checkbox)<\/li>\n<li>[Tweak] Dashboard \u2014 Cart Recovery now appears in the enabled features overview card<\/li>\n<li>[Tweak] WordPress Plugin Check (PCP) compliance \u2014 Proper escaping, sanitization, and phpcs annotations across all features<\/li>\n<li>[Fix] Pro compatibility \u2014 Added safety guards to prevent fatal errors when Pro classes are unavailable<\/li>\n<\/ul>\n\n<h4>1.4.8<\/h4>\n\n<ul>\n<li>[New Feature] Product Addons \u2014 Color Swatch field type for visual product option selection (Pro)<\/li>\n<li>[New Feature] Wishlist \u2014 Multiple wishlists per user with create, rename, and delete support (Pro)<\/li>\n<li>[New Feature] Wishlist \u2014 Tabular front-end view for managing multiple wishlists (Pro)<\/li>\n<li>[New Feature] Wishlist \u2014 Enhanced analytics with detailed product and user statistics<\/li>\n<li>[New Feature] Cookie Consent \u2014 Consent-based script blocking with per-category integration support<\/li>\n<li>[New Feature] Registration Form \u2014 User role assignment based on form field data<\/li>\n<li>[New Feature] Registration Form \u2014 Email Customizer integration for welcome email templates<\/li>\n<li>[New Feature] Email Verification \u2014 Enable\/disable switches for admin approval notification emails<\/li>\n<li>[Tweak] Shipment Tracking \u2014 Redesigned Appearance tab with full form customization and live preview<\/li>\n<li>[Tweak] Dashboard \u2014 Updated brand color scheme across all features<\/li>\n<li>[Fix] Subscriptions \u2014 Variable subscription products not saving correctly<\/li>\n<li>[Fix] Wishlist \u2014 Incorrect shortcode displayed in the Sharing tab<\/li>\n<li>[Fix] Registration Form \u2014 Edit dialog not opening automatically after adding a new field<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>[New Feature] Product Addons \u2014 Conditional logic rules for showing\/hiding addons based on other addon selections (Pro)<\/li>\n<li>[New Feature] Product Addons \u2014 Date and Time picker field types (Pro)<\/li>\n<li>[New Feature] Subscriptions \u2014 Buy Now option to skip cart and go directly to checkout (Pro)<\/li>\n<li>[New Feature] Cookie Consent \u2014 IAB TCF v2.2 framework with CMP stub, TC String encoder, and purpose-to-category mapping (Pro)<\/li>\n<li>[Tweak] Google Fonts \u2014 Centralized font loading across all features to eliminate duplicate requests<\/li>\n<li>[Tweak] Ajax Search \u2014 Analytics data now cached for improved dashboard performance<\/li>\n<li>[Fix] Cookie Consent \u2014 Banner reappearing after accepting or rejecting due to consent cookie not being read correctly<\/li>\n<li>[Fix] Subscriptions \u2014 Trial ending email now uses its own dedicated template instead of reusing the renewal reminder<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed: Subscription My Account pages showing broken styling and incorrect background colors<\/li>\n<li>Fixed: Subscription list action buttons not aligned under the Actions column<\/li>\n<li>Fixed: Admin subscription detail page returning a permission error<\/li>\n<li>Fixed: Wishlist triggering \"Cannot modify header information\" warning in debug log<\/li>\n<li>Fixed: Cookie Consent banner width setting not applying on the frontend<\/li>\n<li>Fixed: Cookie Consent template grid displaying in two columns instead of three<\/li>\n<li>Improved: Input sanitization for Add to Cart Popup and Wishlist AJAX handlers<\/li>\n<li>Improved: WordPress Plugin Check compliance for coding standards across multiple features<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>New: Added to Cart Popup \u2014 Custom heading text, product area background color, and button border radius controls<\/li>\n<li>New: Added to Cart Popup \u2014 Background and Animation customization sections (Pro)<\/li>\n<li>New: Wishlist \u2014 \"Add All to Cart\" bulk action on Wishlist page<\/li>\n<li>New: Wishlist \u2014 WhatsApp sharing and Copy Link sharing buttons<\/li>\n<li>New: Product Bundles \u2014 Background color customization and quantity alignment controls<\/li>\n<li>New: Product Bundles \u2014 Template action hooks for bundle item content and before add-to-cart button<\/li>\n<li>New: Ajax Search \u2014 Field weight controls for title, content, excerpt, and SKU relevance (Pro)<\/li>\n<li>New: reCAPTCHA\/hCaptcha \u2014 Widget mode selector (visible\/invisible) for hCaptcha<\/li>\n<li>New: Quantity Limits \u2014 Bulk category rule management with search, multi-select, and batch apply\/clear<\/li>\n<li>Improved: Added to Cart Popup \u2014 Flyout and Solid Bar previews pin to edges with proper positioning<\/li>\n<li>Improved: Added to Cart Popup \u2014 Popup Buttons section moved to Settings tab with visibility controls<\/li>\n<li>Improved: Added to Cart Popup \u2014 NumberStepper uses stacked vertical layout for consistency<\/li>\n<li>Improved: Added to Cart Popup \u2014 Close Button section uses GlobalColorPicker<\/li>\n<li>Improved: Product Bundles \u2014 Templates section uses 3-column layout, Border Color moved into Product Styling<\/li>\n<li>Improved: Quantity Limits \u2014 Category rules save in a single bulk request instead of individual calls<\/li>\n<li>Fixed: Wishlist \u2014 Removed unused Emails tab and orphaned priceTracking\/emailCampaigns settings<\/li>\n<li>Fixed: Wishlist page \u2014 Corrected double closing bracket typo in email share link<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Fix: Removed custom CSS insertion feature to comply with WordPress.org plugin guidelines<\/li>\n<li>Fix: Corrected plugin name format for WordPress.org directory compliance<\/li>\n<li>Fix: Removed invalid GitHub URL from changelog<\/li>\n<li>Fix: Included composer.json in SVN distribution for WordPress.org compliance<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: Abandoned Cart Recovery \u2014 Automated email sequences with cart tracking, guest capture, and coupon incentives<\/li>\n<li>New: Conditional Logic for Checkout Field Editor \u2014 Show\/hide fields based on cart contents, totals, and field values<\/li>\n<li>New: Quick Add Fields drag-and-drop redesign for Checkout Field Editor<\/li>\n<li>New: CSV Export for Abandoned Cart Recovery (Carts and Analytics tabs)<\/li>\n<li>Tweak: FeatureHeader upgrade button added consistently across all features<\/li>\n<li>Tweak: Brand color consistency across all UI elements<\/li>\n<li>Tweak: Subscription frontend styles now applied on shop and archive pages<\/li>\n<li>Tweak: Subscription price HTML uses proper CSS class selectors<\/li>\n<li>Tweak: Removed misleading placeholder image from Subscription admin preview<\/li>\n<li>Tweak: Removed unused LicensePage dead code<\/li>\n<li>Tweak: GitHub Actions deployment pipeline for WordPress.org SVN<\/li>\n<li>Fix: Subscription styling not applied on shop\/archive pages<\/li>\n<li>Fix: Subscription CSS selectors breaking with theme variations<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: Global Styles \u2014 Centralized color palette and typography applied across all features<\/li>\n<li>New: Email Customizer \u2014 Standalone visual email editor with Google Fonts, product cards, and placeholder tags<\/li>\n<li>New: Back in Stock and Email Verification now use the full Email Customizer<\/li>\n<li>New: Cloudflare Turnstile and hCaptcha support (Pro) \u2014 Three CAPTCHA providers<\/li>\n<li>Improved: Unified Customize Design tab across all features with template presets<\/li>\n<li>Improved: Ajax Search, Currency Switcher, Wishlist, Cookie Consent, and Back in Stock all redesigned with template-based styling<\/li>\n<li>Improved: Email Customizer typography with Google Fonts search and font weight selector<\/li>\n<li>Fixed: PHP 8.1+ compatibility for strpos() deprecation warnings<\/li>\n<li>Fixed: Frontend CSS dependency registration for Pro plugin compatibility<\/li>\n<li>Fixed: Back in Stock email product card respects display toggles<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Improved: Full WordPress.org compliance \u2014 proper prefixes, no trialware patterns<\/li>\n<li>Improved: Brand consistency across all feature pages<\/li>\n<li>New: Email Customizer Google Fonts integration with 30 popular web fonts<\/li>\n<li>Fixed: Freemius license page error and license enforcement<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Improved: Freemius SDK managed via Composer for WordPress.org compliance<\/li>\n<\/ul>","raw_excerpt":"Replace 16 WooCommerce plugins with one \u2014 wishlists, subscriptions, currency switcher, checkout fields, bundles &amp; more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/272713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=272713"}],"author":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/swiftcommerce"}],"wp:attachment":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=272713"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=272713"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=272713"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=272713"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=272713"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=272713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}