{"id":319657,"date":"2026-07-27T13:01:18","date_gmt":"2026-07-27T13:01:18","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/citcom-customer-insights\/"},"modified":"2026-07-27T13:59:39","modified_gmt":"2026-07-27T13:59:39","slug":"citcom-customer-insights","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/citcom-customer-insights\/","author":23479796,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.1","stable_tag":"2.5.1","tested":"7.0.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"CitCom Customer Insights","header_author":"CitCom","header_description":"Comprehensive user behaviour analytics and CRM dashboard. Track page visits, sessions, device types, and WooCommerce activity with a sales-focused user profile view.","assets_banners_color":"766678","last_updated":"2026-07-27 13:59:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/citcom.co.uk\/wp-plugins\/customer-insights","header_author_uri":"https:\/\/citcom.co.uk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":28,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.0":{"tag":"2.5.0","author":"citcom0wpteam","date":"2026-07-27 13:00:49"},"2.5.1":{"tag":"2.5.1","author":"citcom0wpteam","date":"2026-07-27 13:59:39"}},"upgrade_notice":{"2.5.0":"<p>Privacy and review-compliance release: WordPress export\/erase support, IP anonymisation on by default, fully parameterised SQL, cron cleanup on deactivation. Recommended for all users.<\/p>","2.1.2":"<p>Maintenance release \u2014 resolves all WordPress.org Plugin Check tool findings. Recommended for anyone planning to submit to the WordPress Plugin Directory.<\/p>","2.1.1":"<p>Maintenance release \u2014 no user-facing changes. Recommended for all users.<\/p>","2.1.0":"<p>Introduces the Lite\/Pro freemium model. Free features are unchanged. Fixes PHP warnings on sites where another Freemius-powered plugin is active.<\/p>","2.0.1":"<p>Adds Wishlisted column (sortable) to the Product Insights list and a Wishlist tab on per-product profiles.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3624605,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3624605,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3624605,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3624605,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.0","2.5.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3624605,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3624605,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3624605,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3624605,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3624605,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Customer Insights list: combined registered users and guests with sortable columns (the Wishlist, Orders and Lifetime Value columns shown are Pro features).","2":"User profile, Activity tab: session timeline, page visits, and devices used.","3":"User profile, WooCommerce tab: lifetime value, order count, and order list (Pro).","4":"Product Insights list with views, viewers, purchases, and revenue (Pro).","5":"Product profile with viewer and purchaser tabs (Pro)."}},"plugin_section":[],"plugin_tags":[232,1150,3280,8543,2497],"plugin_category":[36,58],"plugin_contributors":[273472],"plugin_business_model":[],"class_list":["post-319657","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-crm","plugin_tags-page-views","plugin_tags-user-tracking","plugin_tags-visitor-tracking","plugin_category-analytics","plugin_category-user-management","plugin_contributors-citcom0wpteam","plugin_committers-citcom0wpteam"],"banners":{"banner":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/banner-772x250.png?rev=3624605","banner_2x":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/banner-1544x500.png?rev=3624605","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/icon-128x128.png?rev=3624605","icon_2x":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/icon-256x256.png?rev=3624605","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/screenshot-1.png?rev=3624605","caption":"Customer Insights list: combined registered users and guests with sortable columns (the Wishlist, Orders and Lifetime Value columns shown are Pro features)."},{"src":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/screenshot-2.png?rev=3624605","caption":"User profile, Activity tab: session timeline, page visits, and devices used."},{"src":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/screenshot-3.png?rev=3624605","caption":"User profile, WooCommerce tab: lifetime value, order count, and order list (Pro)."},{"src":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/screenshot-4.png?rev=3624605","caption":"Product Insights list with views, viewers, purchases, and revenue (Pro)."},{"src":"https:\/\/ps.w.org\/citcom-customer-insights\/assets\/screenshot-5.png?rev=3624605","caption":"Product profile with viewer and purchaser tabs (Pro)."}],"raw_content":"<!--section=description-->\n<p>CitCom Customer Insights gives you a clear, sales-focused view of everyone who visits your site: logged-in users, anonymous guests, and returning visitors you recognise by email.<\/p>\n\n<p>It brings page visits, sessions, devices, and history together in one clean admin dashboard, so you can understand who your visitors really are, before and after they register.<\/p>\n\n<p><strong>Free Features<\/strong><\/p>\n\n<ul>\n<li><strong>Page visit &amp; session tracking<\/strong> \u2013 every page view is recorded and grouped into sessions with a configurable 30-minute inactivity timeout.<\/li>\n<li><strong>Unified user\/guest list<\/strong> \u2013 single admin table showing registered users and anonymous visitors side-by-side. Sortable by visits, sessions, last seen, device type, and more.<\/li>\n<li><strong>User &amp; guest profile pages<\/strong> \u2013 individual profile pages showing the full activity timeline: pages visited, session history, referrers, device, browser, and OS.<\/li>\n<li><strong>CRM Notes<\/strong> \u2013 add, edit, and delete internal sales notes on any user profile.<\/li>\n<li><strong>Guest cookie management<\/strong> \u2013 assigns a persistent browser cookie to anonymous visitors. On checkout the guest record is automatically merged into the customer account.<\/li>\n<li><strong>Email deduplication<\/strong> \u2013 historical guest sessions are transferred to the user account when a matching billing email is detected at checkout, on login, or on account creation.<\/li>\n<li><strong>Device, browser &amp; OS detection<\/strong> \u2013 lightweight built-in user-agent parser; no third-party service or API key required.<\/li>\n<li><strong>Consent-aware tracking<\/strong> \u2013 integrates with the WP Consent API and with Cookies Banner &amp; Privacy Suite (WPConsent): when either is active, nothing is recorded until the visitor grants statistics consent.<\/li>\n<li><strong>Privacy tools built in<\/strong> \u2013 visitor IP addresses are anonymised by default, recorded data is included in WordPress's personal data export and erasure tools (Tools \u2192 Export\/Erase Personal Data), suggested privacy policy text is provided, and old data is pruned automatically after a configurable retention period.<\/li>\n<\/ul>\n\n<p><strong>Pro Features<\/strong><\/p>\n\n<ul>\n<li><strong>WooCommerce stats on user profiles<\/strong> \u2013 lifetime order value, total order count, average order value, and a full order history list (combined logged-in and guest orders matched by billing email).<\/li>\n<li><strong>WPC Smart Wishlist integration<\/strong> \u2013 see every product a user has wishlisted on their profile, and see every user who has wishlisted a product on the product profile page.<\/li>\n<li><strong>Product Insights<\/strong> \u2013 dedicated analytics for every WooCommerce product: views, unique viewers, purchases, revenue, and per-product profile pages.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/citcom.co.uk\/wp-plugins\/customer-insights\/\">Upgrade to Pro \u2192<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>citcom-customer-insights<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress <strong>Plugins \u2192 Add New<\/strong> screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Navigate to <strong>Customer Insights<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Optionally configure tracking preferences under <strong>Customer Insights \u2192 Settings<\/strong>.<\/li>\n<\/ol>\n\n<p>No database changes are needed \u2014 the plugin creates its own tables automatically on activation.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20woocommerce%3F\"><h3>Does it work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce is optional. Without it, the WooCommerce stats tab is hidden on user profiles and the Product Insights section is unavailable.<\/p><\/dd>\n<dt id=\"does%20tracking%20require%20user%20consent%3F\"><h3>Does tracking require user consent?<\/h3><\/dt>\n<dd><p>If a supported consent management plugin is active (any plugin implementing the <strong>WP Consent API<\/strong>, or <strong>Cookies Banner &amp; Privacy Suite<\/strong> (WPConsent)), tracking is automatically gated behind the visitor's statistics consent. Without a consent plugin, visits are recorded by default \u2014 it is the site owner's responsibility to disclose this in their privacy policy; the plugin registers suggested policy text to help with that.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20my%20site%20down%3F\"><h3>Will it slow my site down?<\/h3><\/dt>\n<dd><p>Tracking is performed via a lightweight, non-blocking AJAX request. The visitor-facing script is a single dependency-free file of about 6 kB, loaded in the footer. Database writes are single-row inserts on a dedicated table with proper indexes.<\/p><\/dd>\n<dt id=\"what%20data%20is%20stored%3F\"><h3>What data is stored?<\/h3><\/dt>\n<dd><p>Page URL, page title, referrer, visit time, time on page, session records with device\/browser\/OS and an IP address (anonymised by default \u2014 last octet zeroed for IPv4), plus billing name and email for guests identified at WooCommerce checkout. Two cookies are used: <code>citccuin_session<\/code> (session lifetime) and <code>citccuin_guest_id<\/code> (one year, guests only). All data stays in your own database \u2014 nothing is ever sent to an external service.<\/p><\/dd>\n<dt id=\"how%20do%20i%20delete%20a%20visitor%27s%20data%3F\"><h3>How do I delete a visitor's data?<\/h3><\/dt>\n<dd><p>Data recorded by this plugin is included in WordPress's built-in privacy tools: <strong>Tools \u2192 Export Personal Data<\/strong> and <strong>Tools \u2192 Erase Personal Data<\/strong> (works for registered users and for guests identified by email). You can also delete everything at once from the Danger Zone on the Settings page, and old data is pruned automatically after the configured retention period.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.1<\/h4>\n\n<ul>\n<li>Changed: Reworded the plugin description and screenshot captions for clarity.<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Security\/Review: all remaining database queries now pass table identifiers through the %i placeholder in $wpdb-&gt;prepare(); the user\/guest list query was rebuilt as a fully parameterised statement.<\/li>\n<li>Changed: removed the last raw <code>&lt;style&gt;<\/code> output \u2014 all admin CSS\/JS is loaded via wp_enqueue_style\/wp_enqueue_script, and the Danger Zone confirmation moved from an inline onsubmit attribute into the admin script.<\/li>\n<li>Changed: stopped invoking the third-party WPConsent filter for cookie-name discovery; the name is read from WPConsent's settings with a cookie-scan fallback.<\/li>\n<li>Added: WordPress privacy integration \u2014 suggested privacy policy text, personal data exporter and eraser covering visits, sessions, guest records, CRM notes and last-login meta.<\/li>\n<li>Changed: IP anonymisation is now ON by default for new installs; client IP is read from REMOTE_ADDR only (use the citccuin_client_ip filter behind a trusted reverse proxy).<\/li>\n<li>Added: WooCommerce checkout guest enrichment\/merge hooks are now registered in the free version, matching the documented behaviour.<\/li>\n<li>Fixed: the daily pruning cron event is now removed on deactivation and uninstall.<\/li>\n<li>Changed: CRM Notes are now listed as a free feature (they were always functional in the free version).<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li>Fixed: Added phpcs:disable annotations for DirectDatabaseQuery warnings in page-dashboard.php and page-settings.php to resolve WordPress Plugin Check findings.<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Fixed: Fatal error on user\/guest profile pages \u2014 class_exists() guards added before CITCCUIN_WooCommerce and CITCCUIN_Wishlist calls in class-citccuin-admin.php.<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Fixed: register_menu() now captures page hooks so admin pages are correctly targeted by the load-{hook} action.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Changed: Moved all top-level plugin functions into class static methods \u2014 removes the function_exists() guards that WP.org flagged in review.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Fixed: Danger Zone (Clear All Tracking Data) is no longer hidden behind a Pro-only flag \u2014 the feature was already fully functional, only the UI was gated.<\/li>\n<li>Fixed: Naming consistency \u2014 third-party WPConsent hook usage now properly annotated; internal bootstrap functions renamed to the citccuin_ prefix.<\/li>\n<li>Fixed: All database queries that reference table names now use $wpdb-&gt;prepare() with the %i identifier placeholder instead of raw string concatenation.<\/li>\n<li>Changed: Requires at least WordPress 6.2 (needed for the %i placeholder used in the SQL fixes above).<\/li>\n<\/ul>\n\n<h4>2.1.10<\/h4>\n\n<ul>\n<li>Fixed: Prevent \"Cannot redeclare\" fatal error when free and premium plugins are briefly both active during upgrade activation.<\/li>\n<\/ul>\n\n<h4>2.1.6<\/h4>\n\n<ul>\n<li>Lite (WP.org): Removed Pro-only classes (WooCommerce stats, Wishlist, Product Insights, Freemius SDK). This version contains only the free tracking and CRM dashboard features.<\/li>\n<li>Changed: Plugin renamed to CitCom Customer Insights.<\/li>\n<li>Fixed: Updated Plugin URI.<\/li>\n<\/ul>\n\n<h4>2.1.5<\/h4>\n\n<ul>\n<li>Fixed: Plugin Check compliance updates.<\/li>\n<\/ul>\n\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Fixed: Plugin Check compliance \u2014 added inline phpcs:disable annotations to all plugin-owned class files.<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Fixed: Moved all PHPCS suppressions to inline phpcs:disable comments in view files and list table class. Restored missing global $wpdb declaration in dashboard view.<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Fixed: WordPress.org plugin check compliance \u2014 added phpcs.xml; added missing translators comments; fixed unescaped output; added phpcs:ignore annotations for read-only display params.<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fixed: Data cleanup and cron removal execute correctly on plugin deletion.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added: Lite\/Pro split \u2014 free tracking and CRM dashboard features available to all users. Pro features (WooCommerce stats, Wishlist, CRM Notes, Product Insights) available via upgrade.<\/li>\n<li>Added: CUI_Features class \u2014 centralised feature gates with inline upgrade notices on all Pro sections.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Added: Wishlist tab on per-product profile page \u2014 lists every registered user who has saved that product, with avatar, name, email, and date added.<\/li>\n<li>Added: Wishlisted stat card on per-product profile showing total unique wishlister count.<\/li>\n<li>Added: Wishlisted column on the Product Insights list table, sortable by wishlister count (ascending and descending).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added: Product Insights \u2014 dedicated analytics list and per-product profile pages for WooCommerce products.<\/li>\n<li>Added: Product list with sortable columns: Views, Unique Viewers, Purchases, Revenue, Last Viewed.<\/li>\n<li>Added: Per-product profile with Viewers tab (registered users + guests) and Purchasers tab.<\/li>\n<li>Added: Category filter and \"Popular (last 7 days)\" quick-filter on the product list.<\/li>\n<li>Added: Branded Insights button injected into the native WooCommerce product list.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: WPConsent integration \u2014 tracking automatically respects statistics consent when Cookies Banner &amp; Privacy Suite is active.<\/li>\n<li>Added: JS tracker listens for wpconsent_consent_processed event to activate tracking mid-page after consent is given.<\/li>\n<li>Changed: Tracker script always enqueued; consent gate enforced server-side in the AJAX handler.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Page visit and session tracking for registered users and guests.<\/li>\n<li>Unified user\/guest list table with sortable columns.<\/li>\n<li>Individual user and guest profile pages with activity timeline.<\/li>\n<li>Guest cookie management with checkout enrichment and guest-to-user transfer on login.<\/li>\n<li>Email-based deduplication and historical session merging.<\/li>\n<li>WooCommerce combined order stats (logged-in + guest orders by billing email).<\/li>\n<li>CRM Notes on user profiles.<\/li>\n<li>WPC Smart Wishlist integration.<\/li>\n<li>Device, browser, and OS detection via built-in user-agent parser.<\/li>\n<li>Settings page (guest tracking, role exclusions, data retention, IP anonymisation, Danger Zone).<\/li>\n<\/ul>","raw_excerpt":"Comprehensive user behaviour analytics and CRM dashboard for WordPress and WooCommerce.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319657"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/citcom0wpteam"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319657"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319657"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319657"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319657"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319657"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}