Back to Community

Understanding and Fixing Orders Incorrectly Marked as Abandoned

32 threads Sep 9, 2025 PluginWoocommerce cart abandonment recovery

Content

A common issue reported by users of the WooCommerce Cart Abandonment Recovery plugin is that orders which have been successfully placed are sometimes incorrectly flagged as 'abandoned.' This can lead to customers receiving unwanted recovery emails even after they've completed a purchase, which is confusing and unprofessional. This guide explains why this happens and provides the most effective solutions to resolve it.

Why Does This Happen?

The plugin is designed to track user sessions on the checkout page. An order is typically marked as 'recovered' and removed from the abandoned list when its WooCommerce order status changes to 'Processing' or 'Completed.' However, several scenarios can prevent this automatic status update from occurring correctly:

  • Custom or Non-Standard Order Statuses: If a payment gateway or custom function sets the initial order status to something other than 'Processing' or 'Completed' (e.g., 'On Hold,' 'Awaiting Payment,' or a custom status like 'Paid'), the plugin may not recognize it as a recovered order.
  • Payment Gateway Behavior: Certain payment methods, like bank transfers (BACS) or PayPal, often leave an order in a 'Pending' or 'On Hold' state until the payment is fully confirmed. During this time, the order is still considered 'abandoned' by the plugin.
  • Session or Data Capture Issues: In some cases, a technical glitch or a conflict with another plugin can prevent the plugin from correctly matching a completed WooCommerce order with its initially captured abandoned cart data.

How to Troubleshoot and Resolve the Issue

1. Configure the 'Exclude Email Sending For' Setting

The first and easiest step is to configure the plugin's built-in settings to exclude order statuses for which you do not want recovery emails to be sent.

  1. Navigate to WooCommerce > Settings > Cart Abandonment.
  2. Find the setting labeled 'Exclude email sending for'.
  3. Select all order statuses that should be considered final. At a minimum, this should include 'Processing' and 'Completed'. If you use other statuses like 'On Hold' for orders that are truly complete, be sure to add those as well.
  4. Save your changes.

2. Use a Code Snippet for 'On Hold' Orders

If your payment gateway frequently places orders in an 'On Hold' status, you may need to add a small code snippet to your site. This explicitly tells the plugin to exclude these orders from tracking.

  1. Access your theme's files, preferably by using a child theme.
  2. Edit the functions.php file.
  3. Add the following line of code:
    add_filter( 'woo_ca_exclude_on_hold_order_from_tracking', '__return_true' );
  4. Save the file and clear your site's cache if you use one.

Important: Only add this code if you are comfortable editing theme files. Incorrect code can cause site errors. It is always recommended to test this on a staging site first.

3. Manually Check and Delete Abandoned Orders

For orders that have already been incorrectly captured, you can manually clear them from the list.

  1. Go to WooCommerce > Cart Abandonment.
  2. Navigate to the 'Recoverable Orders' tab.
  3. Find the order in question. You can search by the customer's email address.
  4. Hover over the entry and click the 'Delete' link that appears. This will remove it from the abandonment list and stop any future emails.

4. Investigate Payment Gateway Compatibility

If the problem persists and is isolated to a specific payment gateway, the issue may lie in how that gateway interacts with WooCommerce's order status system. Check the gateway's documentation to see what status it applies upon a successful payment. You may need to contact the gateway's support to see if they have recommendations or known conflicts.

Conclusion

Orders being incorrectly marked as abandoned is a frustrating issue, but it is usually solvable by configuring the plugin's settings to match your store's order workflow. The most critical step is to ensure the 'Exclude email sending for' option includes every order status that represents a successful, completed purchase. For advanced cases involving the 'On Hold' status, adding a simple code filter can provide a definitive solution. Always remember to test changes on a staging site before applying them to your live store.

Related Support Threads Support