{"id":329554,"date":"2026-06-24T11:18:45","date_gmt":"2026-06-24T11:18:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/revenuepilot-for-woocommerce\/"},"modified":"2026-08-20T08:18:20","modified_gmt":"2026-08-20T08:18:20","slug":"concatstring-revenue-insights-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/fr.wordpress.org\/plugins\/concatstring-revenue-insights-for-woocommerce\/","author":23500825,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.0","stable_tag":"1.6.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Concatstring Revenue Insights for WooCommerce","header_author":"Concatstring","header_description":"Actionable revenue intelligence for WooCommerce store owners.","assets_banners_color":"131121","last_updated":"2026-08-20 08:18:20","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/concatstring.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":426,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"concatstring","date":"2026-06-24 11:24:01"},"1.1.0":{"tag":"1.1.0","author":"concatstring","date":"2026-06-27 11:12:05"},"1.2.0":{"tag":"1.2.0","author":"concatstring","date":"2026-06-30 18:06:46"},"1.3.0":{"tag":"1.3.0","author":"concatstring","date":"2026-07-31 08:29:36"},"1.4.0":{"tag":"1.4.0","author":"concatstring","date":"2026-07-29 10:43:10"},"1.5.0":{"tag":"1.5.0","author":"concatstring","date":"2026-07-31 08:06:07"},"1.6.0":{"tag":"1.6.0","author":"concatstring","date":"2026-08-20 08:18:20"}},"upgrade_notice":{"1.6.0":"<p>Adds the Customer Analytics page under WooCommerce \u2192 Revenue Insights, with per-customer revenue, orders, Avg Order Value, New\/Returning classification, date-range filtering, search, customer-type and threshold filters, and CSV\/Excel export. No database changes \u2014 safe to upgrade from any previous version.<\/p>","1.5.0":"<p>Adds the Category Analytics page under WooCommerce \u2192 Revenue Insights, with full date-range filtering, sorting, search, CSV\/Excel export, and summary insight cards. No database changes \u2014 safe to upgrade from any previous version.<\/p>","1.4.0":"<p>Adds the Product Performance Dashboard: KPI cards, performance summary, and insight spotlights above the analytics table. All data is derived from the existing filtered set \u2014 no extra queries. No database changes \u2014 safe to upgrade.<\/p>","1.3.0":"<p>Adds advanced product filters (Category, Product Type, Product Status, Performance Label), Reset All Filters button, Active Filter Summary with date range chip, and URL-persisted filter state. All filters apply to CSV\/Excel exports. No database changes \u2014 safe to upgrade.<\/p>","1.2.0":"<p>Adds one-click CSV and Excel export of the product analytics table. Fixes refund revenue calculations and export\/dashboard data consistency. No database changes \u2014 safe to upgrade.<\/p>","1.1.0":"<p>Adds date range filters (Today, Last 7 Days, Last 30 Days, Custom, and more) and fixes admin view tracking during Coming Soon mode. Upgrade recommended.<\/p>","1.0.0":"<p>Initial release of Concatstring Revenue Insights for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3587341,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3587341,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3587341,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3587341,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.2.0","1.3.0","1.4.0","1.5.0","1.6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3587343,"resolution":"1","location":"assets","locale":"","width":1080,"height":800},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3587343,"resolution":"2","location":"assets","locale":"","width":1080,"height":800}},"screenshots":{"1":"Revenue Insights dashboard with product performance table.","2":"Revenue Insights settings page for conversion thresholds and view session duration."}},"plugin_section":[],"plugin_tags":[232,984,282,3609,286],"plugin_category":[36,45,55],"plugin_contributors":[266302,141771,268695],"plugin_business_model":[],"class_list":["post-329554","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-conversion","plugin_tags-ecommerce","plugin_tags-revenue","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-concatstring","plugin_contributors-kakshak","plugin_contributors-manthansparmar7","plugin_committers-concatstring"],"banners":{"banner":"https:\/\/ps.w.org\/concatstring-revenue-insights-for-woocommerce\/assets\/banner-772x250.jpg?rev=3587341","banner_2x":"https:\/\/ps.w.org\/concatstring-revenue-insights-for-woocommerce\/assets\/banner-1544x500.jpg?rev=3587341","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/concatstring-revenue-insights-for-woocommerce\/assets\/icon-128x128.png?rev=3587341","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/concatstring-revenue-insights-for-woocommerce\/assets\/screenshot-1.jpg?rev=3587343","caption":"Revenue Insights dashboard with product performance table."},{"src":"https:\/\/ps.w.org\/concatstring-revenue-insights-for-woocommerce\/assets\/screenshot-2.jpg?rev=3587343","caption":"Revenue Insights settings page for conversion thresholds and view session duration."}],"raw_content":"<!--section=description-->\n<p>Concatstring Revenue Insights helps WooCommerce store owners understand product performance by tracking views, cart additions, and completed orders. Aggregated stats and performance labels help you spot underperforming products quickly.<\/p>\n\n<p>\ud83d\udc49 See this plugin in context with our other products: <a href=\"https:\/\/labs.concatstring.com\/products\/concatstring-revenue-insights-for-woocommerce\">Concatstring Labs Product Page<\/a><\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li><strong>Customer Analytics<\/strong> \u2014 a dedicated page (WooCommerce \u2192 Revenue Insights \u2192 Customer Analytics) showing per-customer Orders, Revenue, Avg Order Value, First\/Last Order, and New\/Returning classification; sortable, searchable, filterable by date range, customer type, minimum orders, and minimum revenue, fully exportable to CSV and Excel<\/li>\n<li><strong>Category Analytics<\/strong> \u2014 a dedicated page (WooCommerce \u2192 Revenue Insights \u2192 Category Analytics) showing Views, Cart Adds, Orders, Revenue, Conversion %, and Performance Status per product category; sortable, searchable, filterable by date range and category status, fully exportable to CSV and Excel<\/li>\n<li>Unique product view tracking with configurable session duration<\/li>\n<li>Automatic tracking of add-to-cart events and completed orders<\/li>\n<li>Advanced date range filters: Today, Yesterday, Last 7 Days, Last 30 Days, This Month, Last Month, and Custom Range<\/li>\n<li>Advanced product filters: Category, Product Type, Product Status, and Performance Label \u2014 all combinable, URL-persisted<\/li>\n<li>Active Filter Summary with individual remove links and one-click Reset All Filters<\/li>\n<li>One-click export of the full product analytics table to CSV or Excel (.xlsx) \u2014 respects all active filters<\/li>\n<li>Daily aggregation into per-product statistics<\/li>\n<li>WooCommerce-style admin dashboard with search, sorting, pagination, and Screen Options<\/li>\n<li>Configurable conversion thresholds and performance status labels<\/li>\n<li>Multi-currency revenue support with per-currency breakdowns<\/li>\n<li>Stock status column with out-of-stock alert icon (\u26a0) visible for all out-of-stock products<\/li>\n<li>Weekly email summary sent to the site administrator<\/li>\n<li>Product Performance Dashboard: KPI cards (Views, Cart Adds, Orders, Revenue, Conversion), performance summary, and insight spotlights (Best Seller, Most Viewed, Highest Conversion, Needs Attention) \u2014 shown above the analytics table and fully responsive to all active filters<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.2 or higher<\/li>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New Plugin<\/strong>.<\/li>\n<li>Search for <strong>Concatstring Revenue Insights for WooCommerce<\/strong> and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Alternatively, download the ZIP file and go to <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>, choose the ZIP file, and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Ensure <a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">WooCommerce<\/a> is installed and active.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Revenue Insights<\/strong> to view your dashboard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce must be installed and active. The plugin will show an admin notice if WooCommerce is missing.<\/p><\/dd>\n<dt id=\"how%20does%20tracking%20work%3F\"><h3>How does tracking work?<\/h3><\/dt>\n<dd><p>The plugin hooks into WooCommerce and records events in custom database tables. A daily cron job aggregates raw events into per-product stats.<\/p><\/dd>\n<dt id=\"are%20product%20views%20unique%3F\"><h3>Are product views unique?<\/h3><\/dt>\n<dd><p>Yes. Repeat page refreshes within the configured session window (default 24 hours) do not increase view counts. A cookie is used to identify returning visitors in the same browser.<\/p><\/dd>\n<dt id=\"can%20i%20refresh%20stats%20manually%3F\"><h3>Can I refresh stats manually?<\/h3><\/dt>\n<dd><p>Yes. Use the <strong>Refresh Stats<\/strong> button on the RevenuePilot dashboard.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20multiple%20currencies%3F\"><h3>Does this plugin support multiple currencies?<\/h3><\/dt>\n<dd><p>Yes. Order revenue is stored with its currency code. When a product has orders in multiple currencies, the dashboard shows separate totals per currency instead of one incorrect combined amount.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Custom database tables, plugin settings, and scheduled cron events are removed when the plugin is deleted (not on deactivation).<\/p><\/dd>\n<dt id=\"what%20data%20does%20this%20plugin%20store%3F\"><h3>What data does this plugin store?<\/h3><\/dt>\n<dd><p>Product view, cart, and order events linked to product IDs. Anonymous visitors may receive a cookie for unique view tracking. No personal customer data is stored beyond WooCommerce order line totals.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New: Customer Analytics page (WooCommerce \u2192 Revenue Insights \u2192 Customer Analytics) showing per-customer Orders, Revenue, Avg Order Value, First Order, Last Order, and New\/Returning classification<\/li>\n<li>New: Customer Analytics table is fully sortable on every column (7 columns total)<\/li>\n<li>New: Customer Analytics supports all existing date range presets (Today, Yesterday, Last 7 Days, Last 30 Days, This Month, Last Month, Custom Range) and All Time view<\/li>\n<li>New: Search customers by name or email address with URL-persisted filter state<\/li>\n<li>New: Customer Type filter \u2014 All, New (1 order ever), or Returning (2+ orders ever); classification always uses all-time history regardless of the active date filter<\/li>\n<li>New: Minimum Orders filter \u2014 show only customers with at least N total orders in the period<\/li>\n<li>New: Minimum Revenue filter \u2014 show only customers with at least a given revenue total in the period<\/li>\n<li>New: Customer Analytics dashboard summary section \u2014 5 KPI cards (Total Customers, New Customers, Returning Customers, Avg Revenue\/Customer, Avg Orders\/Customer) and 3 insight spotlight cards (Highest Spending, Most Orders, Highest Avg Order Value)<\/li>\n<li>New: Export customer analytics to CSV or Excel (.xlsx) \u2014 respects all active date range, search, customer type, min-orders, and min-revenue filters<\/li>\n<li>New: Registered customer names link to their WordPress profile in the table and insight cards; guest customers identified by billing email address<\/li>\n<li>New: Row actions for registered customers \u2014 Profile and Orders links (HPOS-aware order admin URL)<\/li>\n<li>New: Friendly empty-state notice when no customer data exists yet<\/li>\n<li>No database schema changes \u2014 safe to upgrade from any previous version<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: Category Analytics page (WooCommerce \u2192 Revenue Insights \u2192 Category Analytics) showing per-category Views, Cart Adds, Orders, Revenue, Conversion %, and Performance Status<\/li>\n<li>New: Category Analytics table is fully sortable on every column<\/li>\n<li>New: Category Analytics supports all existing date range presets (Today, Yesterday, Last 7 Days, Last 30 Days, This Month, Last Month, Custom Range) and All Time view<\/li>\n<li>New: Search categories by name with live URL-persisted filter state<\/li>\n<li>New: Category Status filter \u2014 Hide Empty Categories (default) or Show All Categories; persisted in URL<\/li>\n<li>New: Active Filter Summary chips with individual \u00d7 remove links for date range and category filters<\/li>\n<li>New: Category Analytics dashboard summary section \u2014 Best Performing, Highest Revenue, and Highest Conversion insight cards above the table<\/li>\n<li>New: Export category analytics to CSV or Excel (.xlsx) \u2014 respects all active date range, search, and category-status filters<\/li>\n<li>New: Category export generates meaningful filenames with timestamp<\/li>\n<li>New: Friendly empty-state notice when no category data exists for the selected period<\/li>\n<li>No database schema changes \u2014 safe to upgrade from any previous version<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: Product Performance Dashboard \u2014 a summary section above the analytics table showing five KPI cards (Total Views, Cart Adds, Orders, Total Revenue, Avg Conversion Rate)<\/li>\n<li>New: Performance Summary row \u2014 counts of Strong, Average, Needs Attention, and No Orders\/Refunded products for the current filtered set<\/li>\n<li>New: Insight Cards \u2014 automatically identifies your Best Seller (highest revenue), Most Viewed, Highest Conversion, and Needs Attention product for the current filtered set<\/li>\n<li>New: Dashboard summary responds to all active filters (date range, search, category, type, status, performance, stock) \u2014 no duplicate queries<\/li>\n<li>No database changes \u2014 safe to upgrade<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: Product Category filter \u2014 filter the dashboard and exports by WooCommerce product category<\/li>\n<li>New: Product Type filter \u2014 filter by Simple, Variable, Grouped, or External\/Affiliate product type; Downloadable and Virtual shown as sub-options matching WooCommerce's native product list<\/li>\n<li>New: Product Status filter \u2014 filter by Published, Draft, or Private products<\/li>\n<li>New: Performance Label filter \u2014 filter by Strong Performer, Average Performer, Needs Attention, Fully Refunded, or No Orders Yet<\/li>\n<li>New: Reset All Filters button \u2014 clears all product filters in one click while preserving the active date range<\/li>\n<li>New: Active Filter Summary \u2014 date range and product filter chips appear together below the filter controls, each with an individual \u00d7 remove link<\/li>\n<li>New: All filters work together in any combination without resetting each other<\/li>\n<li>New: All filter selections persist in URL params across pagination, sorting, and page refresh<\/li>\n<li>New: Clicking a date range preset now preserves active product filters (and vice versa)<\/li>\n<li>New: CSV and Excel exports respect all new filters (category, type, status, performance) in addition to the existing date range, search, and stock filters<\/li>\n<li>Enhancement: Category dropdown restricted to categories that contain at least one tracked product \u2014 no misleading empty categories shown<\/li>\n<li>Fix: Category filter correctly matches products assigned only to a child category when a parent category is selected<\/li>\n<li>Fix: Applying a product filter now preserves the active date range \u2014 no longer resets to All Time<\/li>\n<li>Fix: Category dropdown stays populated when a date range filter is active<\/li>\n<li>Fix: Stock alert icon (\u26a0) shown for all out-of-stock products, not only strong performers<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Export product analytics table to CSV or Excel (.xlsx) directly from the dashboard<\/li>\n<li>New: Export respects all active filters \u2014 date range, product search, and stock status<\/li>\n<li>New: Export filenames include a Unix timestamp for easy tracking (e.g. <code>revenue-insights-woocommerce-report-1782841012.csv<\/code>)<\/li>\n<li>New: Export button with dropdown (Export CSV \/ Export Excel) shown inside the date filter box<\/li>\n<li>Fix: Partial refunds through the WooCommerce refund UI now calculate base-currency amounts correctly \u2014 previously each partial refund stored the full order base amount, producing incorrect negative net revenue<\/li>\n<li>Fix: Date-range exports now correctly deduct refunds and cancellations from revenue and order counts, matching the dashboard exactly<\/li>\n<li>Fix: Export revenue currency label now matches the per-product currency shown on the dashboard instead of always using the store base currency<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Advanced date range filters \u2014 Today, Yesterday, Last 7 Days, Last 30 Days, This Month, Last Month, and Custom Range<\/li>\n<li>New: Custom date range picker with client-side and server-side validation (prevents future dates and invalid ranges)<\/li>\n<li>Fix: Product view tracking now correctly records views from logged-in administrators when WooCommerce \"Coming Soon\" mode is active<\/li>\n<li>Performance: Added database index on <code>created_at<\/code> column in the events table for efficient date range queries<\/li>\n<li>Compatibility: Tested with latest WordPress and WooCommerce versions<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Unique product view tracking with configurable session hours<\/li>\n<li>WooCommerce-style list table with search, sorting, pagination, and Screen Options<\/li>\n<li>Configurable conversion thresholds and performance status labels<\/li>\n<li>Multi-currency revenue support with per-currency breakdowns<\/li>\n<li>Stock status column with stock alert icon for out-of-stock products<\/li>\n<li>Settings page under WooCommerce<\/li>\n<li>Weekly email summary for store administrators<\/li>\n<\/ul>","raw_excerpt":"Actionable revenue intelligence for WooCommerce store owners.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=329554"}],"author":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/concatstring"}],"wp:attachment":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329554"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329554"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329554"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329554"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329554"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}