{"id":314382,"date":"2026-08-13T19:06:17","date_gmt":"2026-08-13T19:06:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mark-funnel-for-woocommerce\/"},"modified":"2026-08-15T15:01:19","modified_gmt":"2026-08-15T15:01:19","slug":"mark-funnel-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/mark-funnel-for-woocommerce\/","author":23500897,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.7","stable_tag":"1.0.7","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"MARK Funnel for WooCommerce","header_author":"PocketLab","header_description":"Privacy-first conversion funnel analytics for WooCommerce. Track visits, product views, add-to-carts, checkouts and purchases \u2014 with zero personal data collected.","assets_banners_color":"1b5039","last_updated":"2026-08-15 15:01:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pocketlab.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":113,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"pocketlab","date":"2026-08-13 19:05:51"},"1.0.5":{"tag":"1.0.5","author":"pocketlab","date":"2026-08-15 14:24:19"},"1.0.6":{"tag":"1.0.6","author":"pocketlab","date":"2026-08-15 14:47:10"},"1.0.7":{"tag":"1.0.7","author":"pocketlab","date":"2026-08-15 15:01:19"}},"upgrade_notice":{"1.0.5":"<p>Critical tracking reliability update for cached and Cloudflare-proxied stores. Purge any remaining host\/CDN full-page cache after updating.<\/p>","1.0.0":"<p>Initial release.<\/p>","1.0.4":"<p>Prefix compliance fix required by WordPress.org review. No functional changes.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3646060,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3646060,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3646060,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3646060,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.0.5","1.0.6","1.0.7"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard tab \u2014 funnel table with color-coded bars, 4 KPI cards, and funnel diagnosis suggestions.","2":"About the Funnel tab \u2014 educational guide explaining tracking methods, KPI formulas, and benchmarks.","3":"Settings tab \u2014 plugin status, event count, and GDPR data-clearing tool."}},"plugin_section":[],"plugin_tags":[232,984,282,29408,286],"plugin_category":[36,45,55],"plugin_contributors":[275575],"plugin_business_model":[],"class_list":["post-314382","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-conversion","plugin_tags-ecommerce","plugin_tags-funnel","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-pocketlab","plugin_committers-pocketlab"],"banners":{"banner":"https:\/\/ps.w.org\/mark-funnel-for-woocommerce\/assets\/banner-772x250.png?rev=3646060","banner_2x":"https:\/\/ps.w.org\/mark-funnel-for-woocommerce\/assets\/banner-1544x500.png?rev=3646060","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mark-funnel-for-woocommerce\/assets\/icon-128x128.png?rev=3646060","icon_2x":"https:\/\/ps.w.org\/mark-funnel-for-woocommerce\/assets\/icon-256x256.png?rev=3646060","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>MARK Funnel for WooCommerce gives you a clear, honest view of where customers drop off in your store \u2014 from first visit to purchase \u2014 without collecting any personal data and without sending anything outside your server.<\/p>\n\n<h4>What it tracks<\/h4>\n\n<p>The plugin measures 5 funnel stages using random anonymous session identifiers:<\/p>\n\n<ul>\n<li><strong>Visits<\/strong> \u2014 any page load in your store<\/li>\n<li><strong>Product views<\/strong> \u2014 single product page visits<\/li>\n<li><strong>Add to cart<\/strong> \u2014 items added from product pages, shop grids, forms, and WooCommerce Blocks<\/li>\n<li><strong>Checkout start<\/strong> \u2014 reaching the checkout page<\/li>\n<li><strong>Purchases<\/strong> \u2014 confirmed orders (processing, completed, on-hold)<\/li>\n<\/ul>\n\n<h4>What it shows you<\/h4>\n\n<p><strong>Funnel table<\/strong> \u2014 sessions and step-over-step conversion rates for all 5 stages, with a color-coded visual bar (green \u2192 orange \u2192 red).<\/p>\n\n<p><strong>4 KPI cards<\/strong> with industry benchmarks:<\/p>\n\n<ol>\n<li><strong>Conversion Rate<\/strong> \u2014 purchases \u00f7 visits (benchmark: 1\u20133%)<\/li>\n<li><strong>Add to Cart Rate<\/strong> \u2014 ATC sessions \u00f7 product-view sessions (benchmark: 8\u201315%)<\/li>\n<li><strong>Checkout Start Rate<\/strong> \u2014 sessions reaching checkout \u00f7 ATC sessions (benchmark: 40\u201360%)<\/li>\n<li><strong>Checkout Abandonment<\/strong> \u2014 sessions that started checkout but didn't buy (benchmark: 60\u201380%)<\/li>\n<\/ol>\n\n<p><strong>Funnel Diagnosis<\/strong> \u2014 up to 3 contextual suggestions ranked by severity, based on your actual data compared to industry thresholds.<\/p>\n\n<p><strong>About the Funnel tab<\/strong> \u2014 an educational guide explaining how each stage is tracked, how the KPIs are calculated, what the benchmarks mean, and how to read the suggestions. Great for store owners who are new to conversion analytics.<\/p>\n\n<h4>Privacy first<\/h4>\n\n<ul>\n<li><strong>No direct identifiers stored<\/strong> \u2014 no names, emails, IP addresses, or order IDs; only random session identifiers<\/li>\n<li><strong>Zero external connections<\/strong> \u2014 everything stays on your server<\/li>\n<li><strong>90-day auto-cleanup<\/strong> \u2014 old events are deleted automatically by a daily background task<\/li>\n<li><strong>GDPR-ready<\/strong> \u2014 \"Clear all data\" button in Settings with one click<\/li>\n<\/ul>\n\n<h4>Bot and crawler filtering<\/h4>\n\n<p>All metrics show only <strong>human<\/strong> sessions. The plugin scores each request using User-Agent detection, IP range checks, and browser version analysis. Bots, crawlers and suspicious traffic are stored separately and excluded from all KPIs and the funnel.<\/p>\n\n<h4>Excluded roles<\/h4>\n\n<p>Administrators and shop managers are never tracked. Customers, visitors, and other WordPress roles are included.<\/p>\n\n<h4>No setup required<\/h4>\n\n<p>Install, activate, and the plugin starts tracking immediately. No API keys, no account registration, no configuration needed.<\/p>\n\n<!--section=installation-->\n<h4>From your WordPress dashboard<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Search for <strong>MARK Funnel for WooCommerce<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Visit <strong>MARK Funnel<\/strong> in the left admin menu. Tracking starts automatically.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file.<\/li>\n<li>Go to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Upload the ZIP and click <strong>Install Now<\/strong>.<\/li>\n<li>Activate the plugin from the Plugins page.<\/li>\n<li>Visit <strong>MARK Funnel<\/strong> in the left admin menu.<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>WooCommerce 6.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MySQL 5.6+ or MariaDB 10.1+<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20any%20data%20outside%20my%20server%3F\"><h3>Does this plugin send any data outside my server?<\/h3><\/dt>\n<dd><p>No. MARK Funnel has zero external connections. All data is stored in your own WordPress database and never leaves your server.<\/p><\/dd>\n<dt id=\"what%20personal%20data%20does%20it%20collect%3F\"><h3>What personal data does it collect?<\/h3><\/dt>\n<dd><p>The plugin does not store names, email addresses, IP addresses, order IDs, or account IDs. It stores only a random browser-session identifier used to connect funnel steps.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%20plugins%20%28wp%20rocket%2C%20litespeed%20cache%2C%20etc.%29%3F\"><h3>Does it work with page caching plugins (WP Rocket, LiteSpeed Cache, etc.)?<\/h3><\/dt>\n<dd><p>Yes. Session IDs are generated in the browser, and tracking uses a cache-safe public endpoint without expiring page nonces. Failed requests retry automatically and are marked complete only after WordPress confirms the event. The plugin also requests cache purges from LiteSpeed Cache, WP Rocket, W3 Total Cache, and WP Super Cache when it activates or upgrades.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20store%3F\"><h3>Does it slow down my store?<\/h3><\/dt>\n<dd><p>No. The tracker is loaded asynchronously and sends compact requests through the WordPress REST API, with <code>admin-ajax.php<\/code> as a fallback. Requests use the browser's background-safe <code>keepalive<\/code> behavior and never block page rendering.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wordpress%20multisite%3F\"><h3>Does it work with WordPress Multisite?<\/h3><\/dt>\n<dd><p>No. Multisite is not supported in v1.0. The plugin will display a notice and stop functioning if Multisite is detected.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20woocommerce%3F\"><h3>What happens if I deactivate WooCommerce?<\/h3><\/dt>\n<dd><p>The plugin detects that WooCommerce is inactive and stops tracking. It will display an admin notice asking you to reactivate WooCommerce. No data is lost.<\/p><\/dd>\n<dt id=\"how%20do%20i%20delete%20all%20collected%20data%3F\"><h3>How do I delete all collected data?<\/h3><\/dt>\n<dd><p>Go to <strong>MARK Funnel &gt; Settings<\/strong> and click <strong>Clear all tracking data<\/strong>. This will immediately delete all records from the database. The plugin will continue tracking new events after clearing.<\/p><\/dd>\n<dt id=\"how%20long%20is%20data%20kept%3F\"><h3>How long is data kept?<\/h3><\/dt>\n<dd><p>Events are stored for 90 days. A daily background task (WordPress cron) automatically deletes records older than 90 days. This gives you a 30-day analysis window with a 60-day safety margin for future features.<\/p><\/dd>\n<dt id=\"why%20do%20i%20need%20at%20least%2050%20visits%20to%20see%20suggestions%3F\"><h3>Why do I need at least 50 visits to see suggestions?<\/h3><\/dt>\n<dd><p>With fewer than 50 visits, conversion rates are statistically unreliable \u2014 a single sale can move your conversion rate from 0% to 20%, which means nothing. The suggestions engine waits for a meaningful sample before drawing conclusions.<\/p><\/dd>\n<dt id=\"are%20admin%20visits%20counted%3F\"><h3>Are admin visits counted?<\/h3><\/dt>\n<dd><p>No. Users with the roles administrator or shop_manager are never tracked. Test the tracker in a private\/incognito browser window, because visits made while logged in with either role are intentionally ignored.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20gdpr%20%2F%20ccpa%3F\"><h3>Is this compatible with GDPR \/ CCPA?<\/h3><\/dt>\n<dd><p>The plugin is designed with privacy-first principles. Since it collects no personal data, IP addresses, or any information that could identify an individual, it has a minimal privacy footprint. That said, privacy compliance depends on your specific setup and local regulations \u2014 consult a legal professional for advice specific to your situation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fixed: human session, funnel, and KPI queries now bind their filters correctly instead of returning zero for populated event tables.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fixed: database health checks now read the index name correctly instead of reporting a false missing-index error.<\/li>\n<li>Fixed: successful schema upgrades are no longer repeated on every request.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed: replaced expiring cached-page nonces with a strictly validated public tracking endpoint.<\/li>\n<li>Fixed: events are marked as sent only after server confirmation and retry automatically on transient failures.<\/li>\n<li>Added: REST tracking with admin-ajax fallback for hosts or security layers that block one route.<\/li>\n<li>Fixed: relative same-origin endpoints prevent mixed-content blocking behind Cloudflare and reverse proxies.<\/li>\n<li>Added: database self-repair, schema diagnostics, insertion error reporting, and per-session event deduplication.<\/li>\n<li>Fixed: purchases now reuse the anonymous browser session through a first-party session cookie.<\/li>\n<li>Fixed: delayed-payment orders are captured when they later enter a confirmed status.<\/li>\n<li>Fixed: 30-day reporting windows now use the WordPress site timezone consistently.<\/li>\n<li>Changed: only administrators and shop managers are excluded from tracking.<\/li>\n<li>Added: cache purge integration for common WordPress caching plugins during activation and upgrades.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed: renamed all identifiers to use the <code>markfufo<\/code> prefix (4+ chars) per WP.org review requirements.<\/li>\n<li>Fixed: admin menu slug updated to <code>markfufo-dashboard<\/code>.<\/li>\n<li>Fixed: JS localized object renamed from <code>mfData<\/code> to <code>markfufoData<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>5-stage funnel tracking: visit, product view, add to cart, checkout start, purchase.<\/li>\n<li>4 KPI cards with industry benchmarks.<\/li>\n<li>Bot and crawler filtering with multi-factor scoring.<\/li>\n<li>Static funnel diagnosis suggestions with severity ranking.<\/li>\n<li>Educational \"About the Funnel\" tab.<\/li>\n<li>90-day data retention with daily cron cleanup.<\/li>\n<li>GDPR-ready \"Clear all data\" button.<\/li>\n<li>Zero external connections.<\/li>\n<\/ul>","raw_excerpt":"Privacy-first WooCommerce funnel analytics. No personal data, no external connections. Runs entirely on your server.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314382"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pocketlab"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314382"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314382"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314382"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314382"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314382"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}