=== Advanced Customer Reports for WooCommerce === Contributors: ElliotVS, RelyWP, freemius Tags: customer reports, woocommerce, reports, customers, analytics Requires at least: 6.0 Tested up to: 7.0 Stable tag: 2.0.0 License: GPLv3 or later. Generate advanced customer reports to view detailed analytics and data for each of your WooCommerce customer == Description == Generate advanced customer reports to view detailed analytics and data for each of your WooCommerce customer ## Everything you need to know about your WooCommerce customers. ## Make it easier for you to view advanced analytics and data regarding everyone one of your customers. You will be able to view your customers total orders, order averages, recent orders list, recent activity, totals for each product, coupons used, and much more! ## Getting Started ## Simply install the plugin, and visit the "Customer Reports" page under "WooCommerce" in the WordPress admin. Search for the customer you would like to generate a report for by name, email address, username, or ID, or pick one from the customers list, then click "Generate Report". The report will then be displayed on the page, showing you all the data you need to know about that customer. Leave the customer field empty to generate a store-wide report covering every customer instead. ## Features ## * **Total Order Analytics** - View the total number of orders, total amount spent, and total items purchased for each individual customer. * **Largest and Smallest Orders** - View what the largest and smallest order amounts are for each individual customer to give you an idea of their typical order range * **Last Order Date** - View the date in which the selected customer last placed an order on your store. * **Average Order Value** - View the Average Order Value for your customers to get an accurate view of their average spend each order. * **Average Time Between Orders** - View the average time between orders for each customer to see how often they are returning to your store. * **Average Products Per Order** - View how many orders a particular customer purchases on average, each time they place a new order. * **Customers Orders List** - View a full detailed list of all the orders that the customer has placed with their date, time, statuses, and order totals. * **Recent Order Activity** - View a recent order activity log, to view the progress and log updates for all their orders, such as status changes or payment errors. * **Products Purchased** - View a full list of the products that the customer has purchased with the ID, name, total purchased and total spent for each. * **Product Categories** - See which product categories the customer buys from the most, so you know what they are actually interested in. * **Insights Dashboard** - An "Insights" tab that summarises the customer at a glance, with their revenue breakdown, discount behaviour, and refund and status risk. * **Revenue Breakdown** - See gross sales, net retained revenue, discounts given, refunded amounts, shipping charged, and tax collected for each customer. * **Purchase Timeline** - A monthly spend chart covering the last 12 months, with the orders, gross revenue, discounts, and refunds for each month. * **Discount Behaviour** - See how many of the customer's orders used a coupon, the total discount given, and the average discount per order. * **First vs Latest Order** - Compare the customer's first order against their most recent one, to see whether their order value is growing or shrinking. * **Refund & Status Risk** - See how many of their orders were refunded, cancelled, or failed, and what percentage of their orders that represents. * **Payment Methods** - See which payment methods the customer uses, how many orders were placed with each, and how much each is worth. * **Shipping Details** - View every shipping address the customer has ordered to, along with the shipping methods they choose. * **Coupons Used** - View every coupon the customer has redeemed, how many times they used each one, and the total discount received. * **Guest Customers** - Customers who checked out without creating an account are included too, identified by their billing email, so guest orders are never missing from your reports. * **Order Attribution** - See where each customer came from, including how they were first acquired, what brought them back, and a breakdown of orders and revenue by source. * **Customers List** - Browse every customer in one sortable list with their orders and total spent, search by name, email, username, or ID, and filter by order count or amount spent. * **Store-Wide Reports** - Leave the customer field empty to run the same report across all of your customers at once. * **Shareable Report Links** - Every customer report has its own web address, so a report can be copied, shared with your team, or bookmarked to open straight back onto that customer. * **Report Filters** - Filter the customer reports to view analytics for all time, this month and last month. * **And Lots More!** - Lots more extra analytics are also available such as customer billing details, order status totals, and stock levels for products they buy. Please note this is a fairly new plugin being actively developed and improved, so if you have any suggestions for additional customer report features, please let us know! ## PRO Version ## You can upgrade to the premium version of the plugin to unlock additional features such as: * **Filter By Date** - Filter the customer reports to get all the analytics for only a specific date range, plus extra "This Year" and "Last Year" presets. * **Filter by Status** - Filter the customer reports to get all the analytics for only a specific order status. * **Customer Health & RFM** - Give every customer a health score and a named segment, such as VIP, loyal, at risk, or dormant, based on how recently they ordered, how often they order, and how much they spend. * **Reorder Predictions** - See when the customer is expected to order again, and whether that reorder is due or already overdue. * **Store Comparison** - Compare the customer against your store averages for order value, lifetime value, and orders per customer, and see where they rank by spend. * **Recommended Actions** - Turn the customer's metrics into a prioritized list of next steps, such as sending a win-back offer, nurturing a second order, or rewarding loyalty. * **One-Click Coupons** - Generate a win-back, second-order, or loyalty coupon for the customer in one click, without leaving the report. Existing coupons are detected so you never create duplicates. * **Email Your Customers** - Compose and send a follow-up email to the customer straight from the report, using a pre-written template for each recommended action. * **Product Affinity** - The product affinity table shows you which products are frequently bought together by that particular customer, or all customers. * **Next Best Products** - Get cross-sell and upsell suggestions for each customer, based on the products they have already purchased. * **Customer Activity Log** - View a log of all activity that the customer has done on your store, such as new orders, payments, logins, password changes, etc. * **Current Cart** - See what a customer has in their cart right now, what it is worth, any coupons they have applied, and how long it has been sitting there. * **Cart Status** - Every cart is marked as active, idle, or abandoned based on when it was last touched, so the carts worth following up are easy to spot. * **Campaign and Device Attribution** - See which UTM campaigns, sources, and mediums this customer buys through, what each is worth, and which devices they order on. * **Export Data** - Export data from the customer reports to a CSV file to view the data in a spreadsheet or other software. Available for the "Orders" section, including attribution columns, and for the order activity notes. [UPGRADE TO PRO](https://relywp.com/plugins/advanced-customer-reports-woocommerce/) ## 👍 Suggestions and Support If you have any suggestions for additional functionality, need any help, or have found a bug, please create a support ticket. == Installation == 1. Upload the 'advanced-customer-reports' plugin to the '/wp-content/plugins/' directory. 2. Activate the affiliate plugin through the 'Plugins' menu in WordPress. 3. Go to "WooCommerce" > "Customer Reports" to generate reports for each of your customers. == Screenshots == 1. Example of a customer report. 2. Example of the "orders" section of the customer report. 3. Example of the "products" section of the customer report. 4. Example of the "product affinity" section of the customer report. == Changelog == = Version 2.0.0 - 3rd August 2026 = - New: Added a dedicated "Insights" tab to the customer report. - New: Added a monthly spend chart showing the last 12 months of customer revenue. - New: (PRO) Added RFM analysis with a customer health score and named segment based on recency, frequency, and spend. - New: (PRO) Added store benchmark comparisons, including average lifetime value and the customer's spend rank across all customers. - New: (PRO) Added a "Recommended Actions" panel to the Insights tab that prioritizes next steps from customer metrics. - New: (PRO) Added one-click coupon generation for win-back, second-order, and loyalty recommendations. - New: (PRO) Generated coupons are linked to the customer so existing active coupons are detected and shown instead of creating duplicates. - New: (PRO) Added coupon renewal logic so used, expired, or stale coupons can be regenerated after their renewal window. - New: (PRO) Added an inline email composer for recommended actions, sending through the site via wp_mail with the admin as Reply-To. - New: (PRO) Added an "Email code" composer to existing recommended coupons. - New: (PRO) Added a "Next Best Products" section to the Products tab, suggesting cross-sells and upsells based on past purchases. - New: (PRO) Added a "Cart" tab to the customer report, showing what the customer has in their cart right now, with the items, quantities, stock levels, totals, and any coupons they have applied. - New: (PRO) Added a cart status of active, idle, or abandoned, based on when the cart was last touched, so carts worth following up are easy to spot. - New: (PRO) Cart contents are shown for guests too, matched to the email address they entered at checkout. - New: (PRO) Customers who have a cart but have not ordered yet now show their cart on the report, which previously showed nothing beyond the profile. - New: Added an "Attribution" tab to the customer report, showing where a customer's orders came from using WooCommerce order attribution data (recorded on orders placed from WooCommerce 8.5 onwards). - New: Added first-touch and latest-touch acquisition details, including the referrer, landing page, device, and number of visits before ordering. - New: Added an order origins breakdown showing the orders, share, and revenue for each source the customer has ordered through. - New: Added an "Origin" column to the orders table in the customer report. - New: (PRO) Added a campaign performance breakdown by UTM campaign, source, and medium. - New: (PRO) Added a device breakdown showing which devices the customer orders on and what each is worth. - New: (PRO) Added attribution columns (origin, source type, UTM source, medium and campaign, referrer, and device) to the orders CSV export. - New: Guest customers are now included everywhere in the plugin. Customers who checked out without an account are identified by their billing email, appear in the customers list and search, and have full customer reports. - New: Guest orders placed with a registered customer's email address are now included in that customer's report, so orders placed before signing up are no longer missed. - New: The customers list now includes guest orders in a customer's order count and total spent, so the list matches their report. - New: Added a "Merge Guest Orders" setting to control whether guest orders are matched to registered customers by email address. - New: Customer lookup now accepts email address, display name, or billing name in addition to username. - New: Customers list columns are now sortable (ID, name, email, orders, total spent). - New: Added min/max order count and min/max spend filters to the Customers list. - New: Customer reports now have their own web address. Viewing a report updates the browser URL, so the link can be copied, shared, or bookmarked to open straight onto that customer's report. - New: Added a "Sort Customers List By" option to the plugin settings. - New: The order status filter can now be used in the free version to report on completed orders, with the remaining statuses available in PRO. - Tweak: Reports now compile their figures from the WooCommerce Analytics tables instead of loading every matching order, making them several times faster to open and far lighter on memory. On a store-wide report covering just over 1,000 orders this cut the time spent compiling the figures from around 2.1 seconds to 0.18 seconds, and on a customer with around 920 orders from around 0.7 seconds to 0.1 seconds. - Tweak: Orders that WooCommerce Analytics has not recorded yet are read individually so report totals stay exact while it catches up, and reports fall back to reading every order on stores where the Analytics tables are unavailable. How far behind Analytics can be before a report falls back can be changed with the acreports_report_max_unsynced_orders filter. - Tweak: When a report does read orders directly, they are now loaded in batches instead of one at a time, cutting the number of database queries dramatically. On a customer with around 920 orders this reduced a report from roughly 9,000 queries to 200, and roughly halved the time taken. The batch size can be changed with the acreports_report_batch_size filter. - Tweak: Reports now cover the most recent 10,000 orders, with a notice shown when a report has been limited. This can be changed with the acreports_max_report_orders filter. - Tweak: Order notes shown on a report are now fetched in a single query, rather than one query for every order in the report. - Tweak: The store comparison figures are now cached for an hour instead of being recalculated every time a report is opened, and are cached per date range rather than per customer, so the whole-store totals are worked out once and reused for every customer. Spend rankings are held together in a single entry per date range, rather than leaving a stored value behind for every customer whose report has been opened. - Tweak: The attribution breakdowns now show the top 25 rows and state how many were left out, rather than rendering a row for every referrer and campaign. - Tweak: The product affinity table now shows the top 20 pairings and says when more were found, rather than rendering a row for every pair. This can be changed with the acreports_product_affinity_limit filter. - Tweak: The activity log now checks for its database table once per version, instead of on every admin page load. - Tweak: Old activity log entries are now removed in a single query, rather than one query per entry. - Tweak: Added the PRO upsell box to the "Product Affinity" and "Activity Log" sections. - Tweak: Improved email template copy, subjects, and sign-off for all recommended action emails. - Tweak: "Completed" is now listed first in the order status filter, rather than part way down the list. - Tweak: Hovering over a field in the customers list filters now shows its full text as a tooltip, so the narrower fields can still be read when their text is cut off. - Fix: The customers list no longer counts refunds as orders, which previously inflated order counts and reduced total spend for customers who had been refunded. - Fix: Fixed a fatal error when generating a report for all customers, caused by refunds being processed as orders. - Fix: The first and latest order shown on a report are now chosen by order date, so a backdated order is no longer reported as the wrong one. - Fix: Order and order note CSV exports now work for guest customers, and no longer fail when a customer has no account. - Fix: Fixed the "View more order activity" page not finding any order notes, and fixed a fatal error when the customer searched for did not exist. - Fix: Fixed a fatal error in the activity log when it contained activity from a user account that has since been deleted. - Security: CSV exports now escape values that begin with a formula character, so customer supplied content such as order notes and billing names cannot run as a formula when the export is opened in Excel or Google Sheets. - Security: CSV exports now verify a nonce, so an export can no longer be triggered by a link on another website. - Security: CSV download file names are now sanitized, so the date filter values can no longer alter the download headers. - Security: Customer names, emails, and usernames are now escaped in the customers list, so details entered at checkout cannot affect the page. - Security: Order notes and order IDs are now escaped before being shown in the order activity table. - Security: Coupon codes are now escaped before being shown in the customer activity log. - Security: Activity log database queries now use prepared statements. - Security: The order activity page now checks user permissions in the page itself, rather than relying only on the menu registration. - Security: Saving the plugin settings now checks user permissions as well as the nonce. - Security: Added a direct file access guard to the order activity file, which previously produced a PHP error revealing the server path when requested directly. = Version 1.1.5 - 20th December 2024 = - Fix: Fixed an issue with reports not generating for some sites. - Fix: Fixed an issue with the customer list not loading for some sites. - Other: Updated to Freemius SDK 2.10.1 - Other: Tested with WooCommerce 9.5.1 - Other: Tested with WordPress 6.7.1 = Version 1.1.4 - 22nd September 2024 = - Tweak: Code improvements and optimizations. - Other: Updated to Freemius SDK 2.8.1 - Other: Free version officially released. = Version 1.1.3 - 31st August 2024 = - Tweak: Code improvements and optimizations. = Version 1.1.2 - 21st July 2024 = - Fix: Fixed an issue with the "Customers List" page being a little slow, and the pagination not showing the correct number of pages. = Version 1.1.1 - 21st July 2024 = - Tweak: Changed some of the text on the customer reports page. - Fix: Fixed an issue with the "Customers List" not showing properly. - Fix: Fixed an issue with the "Activity Log" not showing some activity items correctly. - Other: Updated to Freemius SDK 2.7.3 - Other: Tested with WooCommerce 9.1.2 - Other: Tested with WordPress 6.6.0 = Version 1.1.0 - 20th June 2024 = - New: (PRO) Added export options to the "Orders" section of the customer reports. - Tweak: Added a "Go back to customers list" link to the top of the customer reports page. - Tweak: Added an option to view all order activity for the customer. = Version 1.0.0 - 17th June 2024 = - New: Initial release of the plugin.