=== Cart Abandonment Recovery for WooCommerce – Recover Lost Sales with Automated Emails ===
Contributors: sujaypawar, wpcrafter
Tags: woocommerce, cart abandonment, cart recovery
Requires at least: 5.4
Tested up to: 6.8
Stable tag: 2.0.4
Requires PHP: 7.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Every store loses sales to cart abandonment. But with Cart Abandonment Recovery for WooCommerce, you can win them back—automatically.

== Description ==

**Bring Back Lost Sales – Automatically**

Every store loses sales to cart abandonment. But with Cart Abandonment Recovery for WooCommerce, you can win them back—automatically.

This powerful (and completely free) plugin captures emails when customers begin checkout, then sends automated follow-up emails to recover their cart and encourage them to complete the purchase.

No coding. No complicated setup. Just install, enable, and start recovering lost revenue.

🎯 Recover lost revenue by re-engaging shoppers with automated emails
📈 Improve checkout conversions with reminders and special offers
🛒 Rebuild carts with 1-click restore links
💰 Boost AOV with time-sensitive coupons

## Made for Store Owners Who Care About Conversions

### 1. WooCommerce Store Owners
Effortlessly recover lost sales without the need for third-party tools or subscriptions. Just install, activate, and start converting abandoned carts into revenue.

### 2. Fashion & Apparel Stores
Send timely reminders to shoppers who left behind size, color, or style options. Bring them back with visual product recall and tailored offers.

### 3. DTC Brands & Small Businesses
Boost your store's conversion rates with automated email sequences and dynamic coupon codes. Personalize recovery messages to match your brand voice.

### 4. Digital Product Sellers
Perfect for stores selling courses, software, or downloads. Recover incomplete checkouts with cart restore links that bring customers right back to purchase.

### 5. Growth-Focused Shops
Leverage in-depth reports to monitor cart recovery performance. Track email effectiveness and make data-driven tweaks to increase sales over time.

## 🧰 Powerful Features to Maximize Recoveries

### 1. Automated Recovery Emails
Set up and schedule a series of automated emails to go out at key intervals—like 15 minutes, 1 hour, or 24 hours after abandonment. Stay top-of-mind and bring customers back when they're most likely to convert.

### 2. 1-Click Cart Recovery Links
Every email includes a unique link that restores the exact cart contents and checkout details. Shoppers can pick up right where they left off—no friction, no hassle.

### 3. Unique Coupon Codes
Automatically generate personalized, time-sensitive discount codes inside your recovery emails. Incentivize quick action and boost your chances of winning back the sale.

### 4. Abandoned Cart Capture
The plugin captures the shopper's email address as soon as they enter it on the checkout page. This means you can follow up—even if they never hit the "Place Order" button.

### 5. Reports & Insights
See real-time data on abandoned carts, recovered sales, and email performance. Use built-in analytics to tweak your strategy and increase conversions.

### 6. GDPR-Ready
Easily enable a GDPR consent checkbox on your checkout page. Ensure you're collecting data responsibly and staying compliant with privacy laws.

### 7. Better Analytics Dashboard with Modern UI
Access a cleaner, more user-friendly dashboard with improved visuals and reporting. Quickly understand what's working—at a glance.

### 8. Dynamic Shortcode Support in Email Subjects
Use smart shortcodes in email subject lines for personalized, dynamic messaging. Grab attention and improve open rates effortlessly.

### 9. Option to Show Tax/VAT in Emails
Display tax or VAT details in recovery emails, based on plugin settings. Helps reduce confusion and builds purchase confidence.

### 10. Product-Specific Reports (Coming Soon)
Track abandoned/recovered stats for each product individually. View product name, number of times abandoned, and recovered—to see which products need attention.

### 11. Advanced Email Tracking (Coming Soon)
Gain insights into how each email performs with metrics like sent, open rate, click rate, and unsubscribe rate. Perfect for testing and optimizing your recovery strategy.

### 12. Rule Engine for Email Logic (Coming Soon)
Set up smart conditions for when and how emails are sent. Exclude certain products, send product-specific sequences, skip certain emails, or trigger offers based on cart subtotal.

### 13. Real-Time Admin Notifications (Coming Soon)
Get instant alerts when a cart is abandoned or recovered. Stay informed and take action quickly if needed.

### 14. WhatsApp Integration (Coming Soon)
Send cart recovery messages via WhatsApp to connect with customers where they're most active. Boost engagement with a personal touch.

### 15. SMS Recovery Messages (Coming Soon)
Reach users via SMS for higher visibility and faster conversions. A great addition to your multi-channel recovery strategy.

### OttoKit Integration (Coming Soon)
Connect with OttoKit to create powerful automations and sequences beyond email.
Perfect for advanced marketers and power users.

## 🔍 How It Works – Just 3 Simple Steps

Cart Abandonment Recovery works quietly in the background to help you recover lost sales with minimal effort.

### 1. Capture Email at Checkout
When a shopper enters their email during checkout, the plugin saves it automatically—no extra setup needed.

### 2. Send Smart Follow-Up Emails
If they don't complete the purchase, a series of recovery emails are sent with a link to restore their cart.

### 3. Recover the Sale
The shopper clicks the link, returns to their cart, and completes the order—easy win!


== Installation ==

1. Upload `woocommerce-cart-abandonment-recovery.zip` to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress

== Frequently Asked Questions ==

= How soon can I start recovering carts? =
Right away! Set up takes less than 5 minutes, and emails begin sending automatically once activated.

= Can I customize the recovery emails? =
Yes. You can write your own copy, add coupons, and configure when each email is sent.

= What if a user completes their purchase before all emails are sent? =
Smart tracking automatically stops the sequence when an order is completed.

= Is this plugin GDPR compliant? =
Yes. You can enable a consent checkbox to collect customer emails ethically and legally.

= Do I Need Any Technical Experience to Use This Plugin? =

Any WooCommerce shop owner selling anything online can use this plugin.You will not need any technical experience to start recovering your lost revenue. Once initiated the plugin will work automatically for you.

=  Can I Send Coupon with Follow up Email? =

Yes. You can generate and send unique, limited-time discount coupon. Though there is no compulsion of sending coupon. It's completely optional.

= Can I Directly Take Users to Checkout Page, Exactly Where They Left Off? =

Absolutely. A unique checkout link can be sent with follow up email. This will take the shopper to their prefilled checkout page. This will make the purchase process easier for the shopper.

= Will This Plugin Add Any Extra Time in Website Loading? =

Not at all. All the plugin data is stored in its own database table. It is completely self-hosted plugin. It works smoothly and does not leave any impact on the performance of the website. So you don't have to worry about the speed.

= Will it slow down my site? =
Not at all. It's designed to be lightweight and uses best practices for performance.

= How can I report a security bug? =

We take plugin security extremely seriously. If you discover a security vulnerability, please report it in a safe and responsible manner.

= How can I report a security bug? =

We take plugin security extremely seriously. If you discover a security vulnerability, please report it in a safe and responsible manner.

You can report the issue through our [Bug Bounty Program](https://brainstormforce.com/bug-bounty-program/).

== Screenshots ==

1. Track recovery report for abandonment sales from the dashboard
2. Schedule the follow-up emails from one place
3. Prebuilt and easy-to-edit Email templates
4. General settings for Email, Webhook (Coupon Code), GDPR

== Changelog ==

= Version 2.0.4 - Thursday, 20th November 2025 =
- Fix: Resolved the issue where the {store_address} shortcode did not render in Abandoned Cart emails when WooCommerce email styling was enabled.
- Improvement: Removed unnecessary plugin notices from the dashboard.
- Improvement: Added unsubscribed email indicators to the follow-up report and detailed report.

= Version 2.0.3 - Wednesday, 29th October 2025 =
- Fix: Resolved an issue where completed orders were incorrectly marked as abandoned after the cutoff time, despite being excluded.
- Fix: Corrected incorrect UTM parameters used in tracking links.
- Improvement: Added support for custom order statuses to improve compatibility.
- Improvement: Implemented minor UI enhancements for a smoother and more intuitive user experience.

= Version 2.0.2 - Friday, 17th October 2025 =
- Fix: Users with the Shop Manager role were unable to delete records from Follow-up Reports.
- Fix: UI toggle for switching to the older version was not functioning as expected.
- Fix: Resolved a fatal error caused by a call to an undefined utils function when enabling webhook settings in certain cases.
- Fix: Improved toggle field logic to ensure correct display and saving of values when enabling or disabling settings.
- Fix: Resolved an issue where the GDPR opt-out link below the email field was unclickable.

= Version 2.0.1 - Tuesday, 30th September 2025 =
- Improvement: Added future compatibility support for the Pro plugin.
- Improvement: Standardized function calls by replacing direct helper usage with common methods.
- Improvement: Made minor UI enhancements across multiple screens.
- Fix: Resolved an issue where the switch UI notice continued to display even after updating to the new UI.
- Fix: Corrected the improper usage of the _load_textdomain_just_in_time function.
- Fix: Fixed a critical error that occurred when all order statuses were unchecked in the "Exclude email sending for" option.

= Version 2.0.0 - Thursday, 21st August 2025 =
- New: Revamped the whole Cart Abandoned user-interface to add a user-friendly touch.
- New: Introduced language files for multiple languages for quick translation of the plugin.
- Improvement: Revamped the plugin dashboard to give more abandoned cart's recovery statistics. 
- Improvement: Added a future compatibility of Pro plugin.

= Version 1.3.3 - Tuesday, 24th June 2025 =
* New: Added import and export functionality for follow-up email templates, making it easier to back up, share, and migrate email configurations.

= Version 1.3.2 - Thursday, 15th May 2025 =
* Improvement: Included the abandoned cart recorded date in the exported file.
* Fix: Prevented recovery emails from being sent if the cart contains out-of-stock products.
* Fix: Resolved a CSS conflict between the DIVI dashboard and the Cart Abandoned plugin.

= Version 1.3.1 - Wednesday, 11th December 2024 =
* Fix: Resolved an incorrect usage error for the _load_textdomain_just_in_time function.
* Fix: Resolved a PHP notice related to attempting to get the property 'meta_value' of a non-object.

= Version 1.3.0 - Tuesday, 2nd July 2024 =
* New: Introduced the support of Cart abandoned tracking for WooCommerce Blocks Checkout.
* Improvement: Optimized the cart abandonment tracking for speed improvements.
* Fix: Resolved error warnings when a null value is passed in PHP 8.2 and later versions.

= Version 1.2.27 - Tuesday, 12th March 2024 =
* Security Fix: Hardened the security of the plugin suggested by WPScan.

= Version 1.2.26 - Wednesday, 29th November 2023 =
* Fix: Product's custom data options were not displayed in the abandoned order data.
* Fix: Fixed the error warning if null value passed while using the PHP 8.1 version.

= Version 1.2.25 - Thursday, 18th May 2023 =
- New: Added new action `wcf_ca_before_trigger_webhook` before triggering webhook.
- New: Added new action `wcf_ca_process_abandoned_order` while processing abandoned order.
- Fix: Fatal error when all order statuses are unchecked for the "Exclude email sending for" setting.

= Version 1.2.24 - Monday, 3rd April 2023 =
- Fix: Delete abandoned order action was not working.

= Version 1.2.23 - Wednesday, 1st March 2023 =
* Fix: Fixed the PHP warning showing on the abandoned cart details page.

= Version 1.2.22 - Wednesday, 15th February 2023 =
* New: Added filter `woo_ca_recovery_email_unsubscribe_notice` to change the unsubscribed notice text.
* Fix: WCAR shortcodes of email editor not showing in some cases.

= Version 1.2.21 - Thursday, 15th December 2022 =
* Fix: Fixed deprecation notices for PHP 8.1.
* Fix: Some strings were not translatable.

= Version 1.2.20 - Monday, 7th November 2022 =
* New: Added `woo_ca_session_abandoned_data` filter to extend the session data.

= Version 1.2.19 - Tuesday, 6th September 2022 =
* New: Added `woo_ca_recovery_email_data` filter for email data before sending the recovery email.
* Improvement: Updated default cron time for abandoned carts to 20 min and limited the minimum cron run time.
* Improvement: Showing shipping name on the abandoned list if billing email is empty.
* Improvement: Handling test webhook response for pabbly and integromat webhooks.

= Version 1.2.18 - Friday, 27th May 2022 =
* New: Allowing entering multiple email addresses to receive weekly report emails.
* Improvement: Updated the weekly report email content.

= Version 1.2.17 - Thursday, 19th May 2022 =
* Fix: The admin notice of the weekly report email was not dismissible on other pages of WordPress.

= Version 1.2.16 - Tuesday, 17th May 2022 =
* New: Introduced weekly order recovery reports via email.
* New: Added an option to send the recovery emails in WooCommerce email format.
* Improvement: Updated the default unsubscribe text from "Unsubscribe" to "Don't remind me again".

= Version 1.2.15 - Thursday, 21st April 2022 =
* Improvement: Handled WordPress database error while creating tables on plugin activation.

= Version 1.2.14 - Tuesday, 05th April 2022 =
* New: Added cron cutoff time option in settings.
  Note: If you are using the custom code to update the cron time then please remove it & update same in new option.
* New: Added an option to append the query parameters to recovery link.
* Improvement: Showing large product images in outlook in some cases.
* Improvement: Added filter to update the default first name of customer.
* Fix: Product price not showing as configured in Woocommerce settings.

= Version 1.2.13 - Tuesday, 13th July 2021 =
* Fix: Some strings of the plugin were not translatable.

= Version 1.2.12 - Thursday, 29th April 2021 =
* Improvement: Added the placeholder image for the product image.
* Fix: PHP error while notifying recovery to admin.
* Fix: Products Custom attributes not showing in product column.
* Fix: Orders list was not sorting.

= Version 1.2.11 - Monday, 08th March 2021 =
* Improvement: WordPress 5.7 compatibility.
* Improvement: Removed jQuery3 deprecated function notices.

= Version 1.2.10 - Tuesday, 16th February 2021 =
* New: Added the option to delete the plugin data on plugin deletion.
* New: Added the filter before triggering the webhook.
* Improvement: Showing Parent product image if variation image is not set.

= Version 1.2.9 - Thursday, 14th January 2021 =
* New: Added the filter before coupon generation to modify the coupon arguments.
* Improvement: Added the Phone number field in export data.
* Fix: Fixed the get_title on boolean error and PHP 8 notices.
* Fix: Showing wrong product images for variation.

= Version 1.2.8 - Friday, 14th August 2020 =
* New: Added new option to prevent recovery emails for specific order status.
* Fix: Deprecated the 'woo_ca_exclude_on_hold_order_from_tracking' filter.

= Version 1.2.7 - Tuesday, 16th June 2020 =
* New: Users can now share [non-personal usage data](https://my.cartflows.com/usage-tracking/?utm_source=wp_repo&utm_medium=changelog&utm_campaign=usage_tracking) to help us test and develop better products.

= Version 1.2.6 - Thursday, 21st May 2020 =
* New: Added option to send the email to admin after successfully cart recovery of the abandoned order.
* Fix: Email rescheduling was considering the cart abandoned time rather than the current time.
* Fix: Coupons generated by plugin were not deleting.
* Fix: Variation/Custom product attributes were excluded from the recovered cart.

= Version 1.2.5 - Wednesday, 11th March 2020 =
* Improvement: Allowed plugin access to the shop manager.
* Fix: Variable product name not showing in the product table.
* Fix: All orders are not exporting due to the wrong pagination.
* Fix: Not showing the next page's orders.

= Version 1.2.4 - Thursday, 06th February 2020 =
* New: Added option to export abandoned orders.
* New: Added option to search abandoned orders.
* Improvement: Compatibility with the latest WordPress PHP_CodeSniffer rules.
* Fix: Get id error while sending emails.

= Version 1.2.3 - Thursday, 12th December 2019 =
* New: Added option to unsubscribe users in bulk.
* New: Added filter 'woo_ca_exclude_on_hold_order_from_tracking' to exclude on hold orders from the tracking.
* New: Added product table shortcode for webhook.
* Improvement: Updated filter 'woo_ca_email_template_table_style' for product table alignment.
* Fix: Sometimes test emails are not sending.

= Version 1.2.2 - Tuesday, 12th November 2019 =
* Fix: Duplicate order issue for variation products.

= Version 1.2.1 - Tuesday, 5th November 2019 =
* New: Added delete option for used & expired coupons which will be created now onwards.
* Fix: Sometimes order status remains "abandoned" for initially failed orders.
* Fix: Strings updated for translation.

= Version 1.2.0 - Monday, 14th October 2019 =
* New: Added support for PPOM products.
* Improvement: Added email activate toggle button on grid.
* Improvement: Added notice on the checkout page for test emails.
* Fix: Zero-value orders getting tracked.
* Fix: Disable tracking for the custom user roles.

= Version 1.1.9 - Thursday, 19th September 2019 =
* New: Option added to ignore users from cart abandonment process.
* New: Filter added to customize the styling of email template table.
* Improvement: Added compatibility with Razorpay plugin.
* Fix: Email template markup was breaking after save.
* Fix: Failed orders were getting marked as completed.
* Fix: Empty order was getting tracked and email sending for it.
* Fix: Email settings options were swapping value of from and reply-to.

= Version 1.1.8 - Tuesday, 3rd September 2019 =
* New: Option added to auto-apply coupon on the checkout.
* New: Option added to apply coupon individually.
* New: Option added to create free shipping coupons.

= Version 1.1.7 - Monday, 12th August 2019 =
* New: Filter added to show the cart total inside the email template.
* New: Filter added to change the cart abandoned time.
* Improvement: Order tracking logic updated for automated payments.
* Improvement: Update report dashboard DateTime format to WordPress format.
* Fix: Broken image in the email template.

= Version 1.1.6 - Friday, 19th July 2019 =
* New: Bundled product support for email checkout URL.
* Improvement: Added phone number and address while triggering the to webhook.
* Fix: Creating tables and default settings on activation.

= Version 1.1.5 - Tuesday, 9th July 2019 =
* Fix: Other crons disappearing issue.

= Version 1.1.4 - Tuesday, 9th July 2019 =
* Fix: Follow up emails were getting sent even after the completion of the order.
* Fix: Email template variable 'Abandoned Product Names' warning issue.

= Version 1.1.3 - Thursday, 27th June 2019 =
* Improvement: Added checkout link for abandoned cart inside the admin section.
* Fix: Added pagination for reports.
* Fix: Recover report calculations before campaign triggers.
* Fix: Empty cart notice when CartFlows checkout is set global.

= Version 1.1.2 - Wednesday, 12th June 2019 =
* Fix: Issue of timezone while sending mail through cron.
* Fix: Delete single cart abandonment order.
* Fix: MySql 5.5 support for CURRENT_TIMESTAMP.

= Version 1.1.1 - Thursday, 06th June 2019 =
* New: Added feature to reschedule emails for Admin.
* Fix: Coupon expiry time issue.
* Fix: Email issue for a user who has an already purchased order.
* Fix: Translatable strings updated.

= Version 1.1.0 - Thursday, 30th May 2019 =
* Added a view for admin to check email status specific to the particular abandoned user.

= Version 1.0.0 - Monday, 27th May 2019 =
* Initial Release

== Upgrade Notice ==

= 2.0.0 =
This update brings important changes to different parts of the plugin. 
We strongly suggest backing up your site before updating, and first trying the update on a staging site.