{"id":214801,"date":"2024-12-29T19:49:20","date_gmt":"2024-12-29T19:49:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/xpressbot-abandoned-cart-for-woocommerce\/"},"modified":"2026-10-26T07:17:23","modified_gmt":"2026-10-26T07:17:23","slug":"xpressbot-abandoned-cart-for-woocommerce","status":"closed","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/xpressbot-abandoned-cart-for-woocommerce\/","author":20624089,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.3.10","stable_tag":"2.3.10","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"WhatsApp for WooCommerce","header_author":"Sky Free","header_description":"A plugin to send abandoned cart data from WooCommerce to a specified webhook URL. Supports Xpressbot integration for WhatsApp notifications.","assets_banners_color":"","last_updated":"2026-10-26 07:17:23","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/skyfree.us.com\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/xpressbot-abandoned-cart-for-woocommerce\/","header_author_uri":"https:\/\/skyfree.us.com","rating":3,"author_block_rating":0,"active_installs":10,"downloads":1084,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"skyfreeindia","date":"2025-01-06 00:47:44","revision":3217327},"1.0.1":{"tag":"1.0.1","author":"skyfreeindia","date":"2025-01-06 01:02:21","revision":3217330},"2.3.10":{"tag":"2.3.10","author":"skyfreeindia","date":"2026-10-26 07:17:23","revision":3765706},"2.3.9":{"tag":"2.3.9","author":"skyfreeindia","date":"2026-10-26 07:06:27","revision":3765681}},"upgrade_notice":{"2.0.0":"<p>Major update. Abandoned cart data is no longer sent to a webhook URL: add your API key under WooCommerce &gt; Xpressbot and choose your WhatsApp templates.<\/p>"},"ratings":{"1":0,"2":0,"3":1,"4":0,"5":0},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3214534,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3214534,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","2.3.10","2.3.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3214534,"resolution":"1","location":"assets","locale":"","width":724,"height":605},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3214534,"resolution":"2","location":"assets","locale":"","width":745,"height":399},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3214534,"resolution":"3","location":"assets","locale":"","width":707,"height":390}},"screenshots":{"1":"<strong>Connection<\/strong> - API key and channel.","2":"<strong>Order messages<\/strong> - a template per order status with its variables.","3":"<strong>Abandoned cart<\/strong> - up to three reminders.","4":"<strong>Meta catalog feed<\/strong> - the feed link and how to add it."}},"plugin_section":[],"plugin_tags":[15962,11133,5418,3160,286],"plugin_category":[],"plugin_contributors":[236231],"plugin_business_model":[],"class_list":["post-214801","plugin","type-plugin","status-closed","hentry","plugin_tags-abandoned-cart","plugin_tags-cart-recovery","plugin_tags-product-feed","plugin_tags-whatsapp","plugin_tags-woocommerce","plugin_contributors-skyfreeindia","plugin_committers-skyfreeindia"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/xpressbot-abandoned-cart-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/xpressbot-abandoned-cart-for-woocommerce\/assets\/screenshot-1.png?rev=3214534","caption":"<strong>Connection<\/strong> - API key and channel."},{"src":"https:\/\/ps.w.org\/xpressbot-abandoned-cart-for-woocommerce\/assets\/screenshot-2.png?rev=3214534","caption":"<strong>Order messages<\/strong> - a template per order status with its variables."},{"src":"https:\/\/ps.w.org\/xpressbot-abandoned-cart-for-woocommerce\/assets\/screenshot-3.png?rev=3214534","caption":"<strong>Abandoned cart<\/strong> - up to three reminders."}],"raw_content":"<!--section=description-->\n<p><strong>WhatsApp for WooCommerce<\/strong> talks to your <a href=\"https:\/\/xpressbot.org\">Xpressbot<\/a> or <a href=\"https:\/\/skyfree.io\">Sky Free<\/a> account directly through its API (or your own white-label \/ self-hosted address). You do not need to build an automation or set up a webhook: install the plugin, pick your platform, paste your API key, pick your WhatsApp templates and you are done.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Order messages<\/strong> - send a WhatsApp template when an order reaches any status (processing, completed, cancelled, refunded, failed, on hold and your own custom statuses). The plugin reads your approved templates and asks you what to put into each template variable, using your own text and order fields such as the customer name, order number, total, products and payment link.<\/li>\n<li><strong>Abandoned cart recovery<\/strong> - carts are tracked on your own site. When a customer leaves items behind and has given a phone number at checkout, up to three reminders are sent as WhatsApp templates, each with its own delay. Reminders stop as soon as the customer orders. Add a minimum cart total if you only want to follow up on bigger carts.<\/li>\n<li><strong>WhatsApp cart link<\/strong> - links like <code>https:\/\/yourshop.com\/?add-to-cart=101:2,205:1<\/code> fill the cart (variation ids work too) and open checkout. Used by WhatsApp catalog orders and by the cart recovery link.<\/li>\n<li><strong>Meta catalog feed<\/strong> - a private XML feed URL you add to Meta Commerce Manager as a scheduled data feed, so your Facebook, Instagram and WhatsApp catalog follows your shop. Product ids match the cart link.<\/li>\n<li><strong>Inbox<\/strong> - a simple WhatsApp inbox in WordPress, fed by your platform's outbound message webhook, with replies sent through the API.<\/li>\n<li><strong>Web chat<\/strong> - paste your platform's web chat embed code and the chat shows on your site.<\/li>\n<\/ul>\n\n<h4>Good to know<\/h4>\n\n<ul>\n<li>Messages are sent in the background so your checkout stays fast.<\/li>\n<li>Phone numbers typed without a country code get your default country code, or the code of the customer's billing country.<\/li>\n<li>Works with the classic and the block checkout, and with WooCommerce High-Performance Order Storage.<\/li>\n<li>Template messages are charged by your platform \/ WhatsApp as usual.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin works with the Xpressbot or Sky Free WhatsApp Business API platform, or with your own white-label \/ self-hosted address if you enter one. It does nothing with any of them until you add an API key and choose a platform on the Connection tab.<\/p>\n\n<h4>Platform API (Xpressbot, Sky Free, or your own address)<\/h4>\n\n<p>Used to list your approved WhatsApp templates and channels, to send WhatsApp template messages for order statuses and abandoned carts, and to send replies from the inbox. It is called when you open the settings, when an order reaches a status you set up, when a cart reminder is due and when you send a reply. What is sent: the recipient's phone number, the template name, the values filled into the template (for example name, order number, products, totals, links) and the reply text. Default address: https:\/\/one.xpressbot.org (changeable in the settings). Xpressbot service, terms of service and privacy policy: https:\/\/xpressbot.org. Sky Free service: https:\/\/skyfree.us.com.<\/p>\n\n<h4>Platform web chat widget<\/h4>\n\n<p>When you enter a widget code on the Web chat tab, visitors' browsers load a script from the widget host you configured (default https:\/\/one.xpressbot.org\/widget.js) on every public page, and chat messages typed into the widget are processed by that platform.<\/p>\n\n<h4>Platform inbox webhook<\/h4>\n\n<p>When you connect the inbox, your chosen platform posts the WhatsApp messages customers send to your site's REST address. Nothing is sent from your site for this except replies you write (see Platform API above).<\/p>\n\n<h4>Meta catalog feed<\/h4>\n\n<p>The feed is a web address on your site that Meta (Facebook, Instagram, WhatsApp catalog) fetches when you add it in Commerce Manager. The plugin does not contact Meta itself.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPL version 2 or later.<\/p>\n\n<h3>Notes<\/h3>\n\n<ul>\n<li>For support, visit https:\/\/skyfree.us.com<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/xpressbot-abandoned-cart-for-woocommerce<\/code>, or install it from the Plugins screen.<\/li>\n<li>Activate it.<\/li>\n<li>Go to WooCommerce &gt; WhatsApp &gt; Connection, choose your platform, paste your API key and press \"Test connection\".<\/li>\n<li>Set up Order messages, Abandoned cart and the Meta catalog feed on their tabs.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20still%20need%20an%20automation%20or%20a%20webhook%3F\"><h3>Do I still need an automation or a webhook?<\/h3><\/dt>\n<dd><p>No. Version 2 sends everything through the platform API. The webhook URL setting of version 1 has been removed.<\/p><\/dd>\n<dt id=\"how%20is%20an%20abandoned%20cart%20detected%3F\"><h3>How is an abandoned cart detected?<\/h3><\/dt>\n<dd><p>The plugin records the cart when it changes. If the customer has not ordered after the delay you set for a reminder, and a phone number is known, the reminder is sent. A cron job runs every 5 minutes.<\/p><\/dd>\n<dt id=\"where%20does%20the%20phone%20number%20come%20from%3F\"><h3>Where does the phone number come from?<\/h3><\/dt>\n<dd><p>From the billing or shipping phone field at checkout (saved as soon as the customer leaves the field), or from the account of a logged-in customer.<\/p><\/dd>\n<dt id=\"which%20template%20variables%20can%20i%20fill%3F\"><h3>Which template variables can I fill?<\/h3><\/dt>\n<dd><p>Any text plus fields like {first_name}, {order_id}, {order_total}, {items}, {payment_url} (orders) and {cart_total}, {cart_link}, {cart_param} (carts). The settings page lists them.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20product%20feed%20to%20meta%3F\"><h3>How do I add the product feed to Meta?<\/h3><\/dt>\n<dd><p>Open WooCommerce &gt; WhatsApp &gt; Meta catalog feed, copy the link, then in Commerce Manager choose Data sources &gt; Add items &gt; Data feed &gt; Scheduled feed and paste it.<\/p><\/dd>\n<dt id=\"is%20my%20api%20key%20stored%20safely%3F\"><h3>Is my API key stored safely?<\/h3><\/dt>\n<dd><p>The API key and the inbox signing secret are stored encrypted in the database, with a key made from your site's own security keys (the salts in wp-config.php). If you change those salts, enter the API key again. A database copy on its own cannot reveal it.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20cart%20link%20without%20the%20other%20features%3F\"><h3>Can I use the cart link without the other features?<\/h3><\/dt>\n<dd><p>Yes. The cart link works without an API key.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.3.10<\/h4>\n\n<ul>\n<li>Fixed: Short Description was over WordPress.org's 150-character limit and was being truncated. Tested up to bumped to 7.1 (was 6.7). Re-released only so these readme fixes reach the public plugin page, which is served from the tagged release, not trunk.<\/li>\n<\/ul>\n\n<h4>2.3.9<\/h4>\n\n<ul>\n<li>Inbox: a message that could not be saved (older table) is retried after the table is updated, and the Inbox tab shows what happened to the last automatic message.<\/li>\n<\/ul>\n\n<h4>2.3.8<\/h4>\n\n<ul>\n<li>Inbox: plain text replies only. The template option is removed from the inbox; templates are still sent automatically for order statuses and abandoned carts.<\/li>\n<\/ul>\n\n<h4>2.3.7<\/h4>\n\n<ul>\n<li>Inbox: a template with an image, video or document header now asks for the link. Templates with form, order-details, code or catalog buttons are recognised as not sendable from here, and the errors for them and for a missing header say what to do.<\/li>\n<\/ul>\n\n<h4>2.3.6<\/h4>\n\n<ul>\n<li>A template that WhatsApp refuses because of an order-details button is remembered and no longer offered, even when its saved copy does not show that button. \"Test connection\" clears the list.<\/li>\n<\/ul>\n\n<h4>2.3.5<\/h4>\n\n<ul>\n<li>Templates with an order-details (payment) button or a carousel cannot be sent from here: they are no longer offered, a saved one is flagged in red, and a send is refused with a clear message instead of a WhatsApp error.<\/li>\n<\/ul>\n\n<h4>2.3.4<\/h4>\n\n<ul>\n<li>Inbox: the order and cart messages the plugin sends by itself are kept in the thread as soon as the Inbox tab has been opened, even when the customer has never written. A failed save is written to the WooCommerce log.<\/li>\n<\/ul>\n\n<h4>2.3.3<\/h4>\n\n<ul>\n<li>Inbox: a Message \/ Template switch above the reply box. A template can be sent at any time, not only after the 24 hour window.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Fixed: a template sent by hand from the inbox was saved twice in the thread.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Inbox: delete a whole chat from the site (the copy in Xpressbot stays).<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>The inbox thread also shows the template messages the plugin sends by itself (order status and cart reminders), marked as automatic. A message that could not be sent shows as FAILED with the reason, in red. Can be switched off in the Storage settings.<\/li>\n<\/ul>\n\n<h4>2.2.5<\/h4>\n\n<ul>\n<li>Pricing link per platform (XpressBot: xpressbot.org\/pricing, Sky Free: skyfree.io\/pricing). \"Other\" starts with an empty address and shows the pricing link only for the address typed.<\/li>\n<\/ul>\n\n<h4>2.2.4<\/h4>\n\n<ul>\n<li>The web chat host follows the chosen platform, and the plan link points to the platform's pricing page.<\/li>\n<\/ul>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li>The Platform choice is now the first box on the Connection tab, with a note that an active subscription is needed and a link to the plan page of the chosen platform.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Renamed: the plugin now displays as \"WhatsApp for WooCommerce\" everywhere (Plugins list, settings page, WooCommerce submenu), reflecting that it works with either Xpressbot or Sky Free. No functional change; the plugin slug and all saved settings are unaffected.<\/li>\n<\/ul>\n\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>New: Platform choice on the Connection tab (XpressBot, Sky Free or your own address).<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Fixed: switching on \"Keep only messages from customers of this shop\" crashed on shops with refunds. Existing customers are now loaded in the background, real orders only.<\/li>\n<li>Faster: the Meta feed is kept as a file for 30 minutes, settings are read once per request.<\/li>\n<li>New: API key and inbox secret are stored encrypted. Translation file added.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>New (optional, off by default): WhatsApp consent box at the classic and the block checkout (WooCommerce 8.6+), with settings to send cart reminders and order messages only to customers who ticked it. The tick, wording and time are saved.<\/li>\n<li>New (optional, off by default): keep only inbox messages from customers of the shop.<\/li>\n<li>New: privacy policy text, personal data export and erase, and an External services section.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>New: simple WhatsApp inbox. See the messages customers send and reply from WordPress (free text within 24 hours, template after that).<\/li>\n<li>New: send an order message again each time the order enters a status (option per status).<\/li>\n<li>Fixed: header image field turned {first_item_image} into a broken link.<\/li>\n<li>Fixed: messages refused by WhatsApp are no longer retried.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Settings screen redesign: reminders as cards, template preview, searchable Meta and Google category pickers.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Rewritten: everything now runs on the Xpressbot API with an API key. No automation or webhook needed.<\/li>\n<li>New: WhatsApp template per order status with variable mapping.<\/li>\n<li>New: abandoned cart recovery with up to three reminders, tracked in an own table.<\/li>\n<li>New: WhatsApp cart link (previously a separate plugin).<\/li>\n<li>New: Meta catalog XML feed.<\/li>\n<li>New: web chat widget from the Xpressbot embed code (site ID and host).<\/li>\n<li>Removed: the webhook URL, cutoff and sample webhook settings. Old webhook data is cleaned up on update.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added WhatsApp Widget<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"WhatsApp order messages, abandoned cart recovery, a cart link and a Meta catalog feed \u2014 connect with just an API key (Xpressbot or Sky Free).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/214801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=214801"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/skyfreeindia"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=214801"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=214801"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=214801"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=214801"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=214801"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=214801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}