Changelog

Advanced Customer Reports

2.0.0 3rd August 2026 Latest
  • NewAdded a dedicated “Insights” tab to the customer report.
  • NewAdded a monthly spend chart showing the last 12 months of customer revenue.
  • NewPROAdded RFM analysis with a customer health score and named segment based on recency, frequency, and spend.
  • NewPROAdded store benchmark comparisons, including average lifetime value and the customer’s spend rank across all customers.
  • NewPROAdded a “Recommended Actions” panel to the Insights tab that prioritizes next steps from customer metrics.
  • NewPROAdded one-click coupon generation for win-back, second-order, and loyalty recommendations.
  • NewPROGenerated coupons are linked to the customer so existing active coupons are detected and shown instead of creating duplicates.
  • NewPROAdded coupon renewal logic so used, expired, or stale coupons can be regenerated after their renewal window.
  • NewPROAdded an inline email composer for recommended actions, sending through the site via wp_mail with the admin as Reply-To.
  • NewPROAdded an “Email code” composer to existing recommended coupons.
  • NewPROAdded a “Next Best Products” section to the Products tab, suggesting cross-sells and upsells based on past purchases.
  • NewPROAdded 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.
  • NewPROAdded 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.
  • NewPROCart contents are shown for guests too, matched to the email address they entered at checkout.
  • NewPROCustomers who have a cart but have not ordered yet now show their cart on the report, which previously showed nothing beyond the profile.
  • NewAdded 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).
  • NewAdded first-touch and latest-touch acquisition details, including the referrer, landing page, device, and number of visits before ordering.
  • NewAdded an order origins breakdown showing the orders, share, and revenue for each source the customer has ordered through.
  • NewAdded an “Origin” column to the orders table in the customer report.
  • NewPROAdded a campaign performance breakdown by UTM campaign, source, and medium.
  • NewPROAdded a device breakdown showing which devices the customer orders on and what each is worth.
  • NewPROAdded attribution columns (origin, source type, UTM source, medium and campaign, referrer, and device) to the orders CSV export.
  • NewGuest 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.
  • NewGuest 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.
  • NewThe customers list now includes guest orders in a customer’s order count and total spent, so the list matches their report.
  • NewAdded a “Merge Guest Orders” setting to control whether guest orders are matched to registered customers by email address.
  • NewCustomer lookup now accepts email address, display name, or billing name in addition to username.
  • NewCustomers list columns are now sortable (ID, name, email, orders, total spent).
  • NewAdded min/max order count and min/max spend filters to the Customers list.
  • NewCustomer 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.
  • NewAdded a “Sort Customers List By” option to the plugin settings.
  • NewThe order status filter can now be used in the free version to report on completed orders, with the remaining statuses available in PRO.
  • TweakReports 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.
  • TweakOrders 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.
  • TweakWhen 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.
  • TweakReports 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.
  • TweakOrder notes shown on a report are now fetched in a single query, rather than one query for every order in the report.
  • TweakThe 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.
  • TweakThe 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.
  • TweakThe 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.
  • TweakThe activity log now checks for its database table once per version, instead of on every admin page load.
  • TweakOld activity log entries are now removed in a single query, rather than one query per entry.
  • TweakAdded the PRO upsell box to the “Product Affinity” and “Activity Log” sections.
  • TweakImproved 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.
  • TweakHovering 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.
  • FixThe customers list no longer counts refunds as orders, which previously inflated order counts and reduced total spend for customers who had been refunded.
  • FixFixed a fatal error when generating a report for all customers, caused by refunds being processed as orders.
  • FixThe 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.
  • FixOrder and order note CSV exports now work for guest customers, and no longer fail when a customer has no account.
  • FixFixed the “View more order activity” page not finding any order notes, and fixed a fatal error when the customer searched for did not exist.
  • FixFixed a fatal error in the activity log when it contained activity from a user account that has since been deleted.
  • SecurityCSV 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.
  • SecurityCSV exports now verify a nonce, so an export can no longer be triggered by a link on another website.
  • SecurityCSV download file names are now sanitized, so the date filter values can no longer alter the download headers.
  • SecurityCustomer names, emails, and usernames are now escaped in the customers list, so details entered at checkout cannot affect the page.
  • SecurityOrder notes and order IDs are now escaped before being shown in the order activity table.
  • SecurityCoupon codes are now escaped before being shown in the customer activity log.
  • SecurityActivity log database queries now use prepared statements.
  • SecurityThe order activity page now checks user permissions in the page itself, rather than relying only on the menu registration.
1.1.5 20th December 2024
  • FixFixed an issue with reports not generating for some sites.
  • FixFixed 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
1.1.4 22nd September 2024
  • TweakCode improvements and optimizations.
  • Other: Updated to Freemius SDK 2.8.1
  • Other: Free version officially released.
1.1.3 31st August 2024
  • TweakCode improvements and optimizations.
1.1.2 21st July 2024
  • FixFixed an issue with the “Customers List” page being a little slow, and the pagination not showing the correct number of pages.
1.1.1 21st July 2024
  • TweakChanged some of the text on the customer reports page.
  • FixFixed an issue with the “Customers List” not showing properly.
  • FixFixed 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
1.1.0 20th June 2024
  • NewPROAdded export options to the “Orders” section of the customer reports.
  • TweakAdded a “Go back to customers list” link to the top of the customer reports page.
  • TweakAdded an option to view all order activity for the customer.
1.0.0 17th June 2024
  • NewInitial release of the plugin.