How to search & filter your WooCommerce customers by order history

Have you ever wanted to be able to search and filter your WooCommerce customers by their order history? Do you want to find all the customers who have purchased one product but not another? In the following tutorial, I’m going to show you how to use Users Insights to search, filter and analyze your customers by using the WooCommerce customer order history data.

Your customers are not all the same, they differ in so many ways. Some are heavy shoppers, others are single time buyers. One customer might do all the shopping only during the holiday seasons, others might be all year around regulars. Some love only a specific product from your store and others might like to try new and different products. Your customers have different desires, needs and buying patterns and targeting them with the same message and products might not be the most effective solution.

Knowing your WooCommerce customer order history can give you a lot of insight on what kind of buyers they are.

You can use this information to create different marketing strategies that are curated for a specific type of customers. For example, you can create a campaign that awards your most loyal customers, by offering them discounts and rewards. Or perhaps an email campaign that is targeted towards all the customers who have purchased a particular product, offering them a related product, or the newest version of the same product.


Getting Started

Before we start, since we will use the WooCommerce module of Users Insights for this tutorial, you will have to make sure that this module is active. You can manage the active modules on your site from the Modules Options section of Users Insights. The WooCommerce module for Users Insights adds a few filters and features to the plugin that provide you with the tools to be able to segment your WooCommerce customers by their order history.

Please note that since the Users Insights plugin works with registered WordPress users, the following tutorial will only work for your WooCommerce customers who are registered as WordPress users on your website.


Filtering your customers by the number of orders

One of the columns that the WooCommerce module makes available in the Users Insights table is the “Orders” column. This field shows you the number of orders every customer has made in your store. By clicking on the title of the field in the Users Insights table we can order our customers list by the number of orders that they have made, in a descending order.

woocommerce customer order by order history

Clicking a second time will sort the customer list by the numbers of orders in an ascending order. This feature allows you very easily to find your customers with the highest or lowest number of orders.

The Number of orders data is also available in the smart filters section. This allows you to filter your customers by using the number of orders data. For example, if you want to see a list of all the customers who have made two orders from your WooCommerce store, all you need to do is add a filter “Number of orders is 2”:

woocommerce customer order history


You can also use the operators “is bigger than” or “is smaller than” to show only the customers who have more or fewer orders than a specific number. For example, here is a list of all the customers who have made more than 5 orders:

woocommerce customer order is bigger


The Users Insights plugin allows you to add multiple filters at once, which means that you can further filter the already filtered list of customers. For example, we can add one filter that lists the customers that have at least one order and another one that lists the customers that have less than three orders, so we can find the customers that have between 1 and 2 orders.

woocommerce customer order is smaller

Filtering customers by order status

The WooCommerce module also adds an option to filter your customers by their order status. In this way if you want to see all the customers who have been refunded you can just add a filter “Order status includes refunded”:

woocommerce customer order history


The available options for the order status include/exclude filter are:

  • Pending Payment
  • Processing
  • On Hold
  • Completed
  • Cancelled
  • Refunded
  • Failed


Filtering customers by the products that they have ordered

Another useful feature that the WooCommerce module adds to the smart filters is the “Ordered Product” filter. This filter allows you to filter your WooCommerce customers by the product they have (or have not) ordered. In the following article, you can learn more about how to filter WooCommerce customers by the product they have ordered.


Using the WooCommerce customer order history with other filters

As we already mentioned, the Users Insights filters are stackable. This means that not only you can use multiple filters to segment your WooCommerce customers by their order history, but you can also combine the order filters with the rest of the available filters of Users Insights. Here is an example of a list of all the customers who have ordered a particular product and are from United States:

woocommerce customer order

Using lifetime value to search WooCommerce order history

Another filter that can be found handy when searching the order history is the Lifetime Value filter. The Lifetime Value field shows you how much in total each customer has spent in your store. With this field you can even further customise your order history search, so you can easily find your most valuable customers.

Let’s see an example. Let’s say that you need to find all the customers who have purchased a certain product and have spent more than $100 in your store. This can be easily accomplished by combining the Ordered Products filter with the Lifetime Value filter:

WooCommerce search order history by lifetime value

Showing the WooCommerce customer history on the profile page

The Users Insights custom profile page is the place that includes all of the available information for each WordPress user/customer. The user profile section has a dedicated section from WooCommerce in the activity section. This is where you can find some additional info about your customer order history like a list with the several most recent orders and info about the order status. Each of the orders has a link to the corresponding WooCommerce order page where you can view and edit all the order details. The list also includes a link to the WooCommerce Orders List page that shows only the list of orders for this user. You can access the customer profile page by clicking on the customer username from the Users Insights user table.

woocommerce groups profile page

Creating custom segments based on your customer purchase history

So, using this information you can create your own WooCommerce customer lists by using the segments. You may filter your users based on their activity, loyalty, lifetime value. In order to do that you can use the segments feature of Users Insights.

First, you need to create the filtering aspects that you are going to use for your customers. For instance, we’ll filter through our WooCommerce customers’ order history, and find out the repeat buyers who were active in the last month. We can do that with these filters:

Repeat buyers and active users

Now let’s save this list as a segment:

Adding a segment for the repeat buyers

In this way we can quickly gather WooCommerce customer list when you click again in that segment in particular.

As we mentioned earlier you can filter and order your customer based on different aspects. For example, you can order your users based on their lifetime value, you can filter them based on the number of orders. All of this can be seen in this video:


That’s it! Now you know how you can use your WooCommerce customer history to search and filter your WooCommerce customers. You can now segment your customers by using their purchase data and create your own custom marketing campaigns. We hope that you will find this article useful and that it is going to help you better manage and organize your WooCommerce customers.