{"id":308219,"date":"2026-05-11T23:38:02","date_gmt":"2026-05-11T23:38:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/capiflow-meta-pixel-conversions-api-capi-for-woocommerce\/"},"modified":"2026-05-13T15:06:44","modified_gmt":"2026-05-13T15:06:44","slug":"capiflow","status":"publish","type":"plugin","link":"https:\/\/es-cr.wordpress.org\/plugins\/capiflow\/","author":23492201,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"CapiFlow \u2013 Conversions API (CAPI) Tracking for WooCommerce","header_author":"CapiFlow","header_description":"Server-side Meta Conversions API (CAPI) tracking for WooCommerce. Maximize ad attribution with browser pixel deduplication, 10\/10 Event Match Quality, fraud alerts, and an analytics dashboard.","assets_banners_color":"3b3c5a","last_updated":"2026-05-13 15:06:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/capiflowpro.com\/capiflow\/","header_author_uri":"https:\/\/capiflowpro.com\/about\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"capiflow","date":"2026-05-13 15:06:44"}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3529278,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3529278,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3529278,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3529278,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3531074,"resolution":"1","location":"assets","locale":"","width":695,"height":725},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3529278,"resolution":"10","location":"assets","locale":"","width":852,"height":355},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3529278,"resolution":"2","location":"assets","locale":"","width":1366,"height":1839},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3531074,"resolution":"3","location":"assets","locale":"","width":1191,"height":532},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3531074,"resolution":"4","location":"assets","locale":"","width":900,"height":993},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3531074,"resolution":"5","location":"assets","locale":"","width":911,"height":940},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3531074,"resolution":"6","location":"assets","locale":"","width":909,"height":548},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3529278,"resolution":"7","location":"assets","locale":"","width":1204,"height":476},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3529278,"resolution":"8","location":"assets","locale":"","width":405,"height":555},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3529278,"resolution":"9","location":"assets","locale":"","width":998,"height":547}},"screenshots":{"1":"<strong>Setup Wizard<\/strong> \u2014 Guided first-time configuration","2":"<strong>Settings Page<\/strong> \u2014 Pixel ID, Access Token, and connection test","3":"<strong>Analytics Dashboard<\/strong> \u2014 Event tracking overview","4":"<strong>Event Configuration<\/strong> \u2014 Per-event browser and server toggles","5":"<strong>System Health<\/strong> \u2014 Token validity and queue status","6":"<strong>Debug Console<\/strong> \u2014 Event log with API responses","7":"<strong>Order Columns<\/strong> \u2014 CAPI sync status in order list","8":"<strong>Pixel Helper<\/strong> \u2014 Browser and server event verification","9":"<strong>Event Test Tool<\/strong> \u2014 All events delivery status","10":"<strong>Purchase Event<\/strong> \u2014 Server-side Purchase with API response"},"jetpack_post_was_ever_published":false},"plugin_section":[262246],"plugin_tags":[195844,7855,207498,219244,286],"plugin_category":[36,45],"plugin_contributors":[262612],"plugin_business_model":[],"class_list":["post-308219","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-conversions-api","plugin_tags-facebook-pixel","plugin_tags-meta-pixel","plugin_tags-server-side-tracking","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-ecommerce","plugin_contributors-capiflow","plugin_committers-capiflow"],"banners":{"banner":"https:\/\/ps.w.org\/capiflow\/assets\/banner-772x250.png?rev=3529278","banner_2x":"https:\/\/ps.w.org\/capiflow\/assets\/banner-1544x500.png?rev=3529278","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/capiflow\/assets\/icon-128x128.png?rev=3529278","icon_2x":"https:\/\/ps.w.org\/capiflow\/assets\/icon-256x256.png?rev=3529278","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-1.png?rev=3531074","caption":"<strong>Setup Wizard<\/strong> \u2014 Guided first-time configuration"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-2.png?rev=3529278","caption":"<strong>Settings Page<\/strong> \u2014 Pixel ID, Access Token, and connection test"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-3.png?rev=3531074","caption":"<strong>Analytics Dashboard<\/strong> \u2014 Event tracking overview"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-4.png?rev=3531074","caption":"<strong>Event Configuration<\/strong> \u2014 Per-event browser and server toggles"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-5.png?rev=3531074","caption":"<strong>System Health<\/strong> \u2014 Token validity and queue status"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-6.png?rev=3531074","caption":"<strong>Debug Console<\/strong> \u2014 Event log with API responses"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-7.png?rev=3529278","caption":"<strong>Order Columns<\/strong> \u2014 CAPI sync status in order list"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-8.png?rev=3529278","caption":"<strong>Pixel Helper<\/strong> \u2014 Browser and server event verification"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-9.png?rev=3529278","caption":"<strong>Event Test Tool<\/strong> \u2014 All events delivery status"},{"src":"https:\/\/ps.w.org\/capiflow\/assets\/screenshot-10.png?rev=3529278","caption":"<strong>Purchase Event<\/strong> \u2014 Server-side Purchase with API response"}],"raw_content":"<!--section=description-->\n<p><strong>CapiFlow<\/strong> sends supported WooCommerce events from your server to Meta's Conversions API (CAPI) \u2014 helping reduce the impact of browser-side tracking limitations like ad blockers, Safari ITP, and Firefox ETP.<\/p>\n\n<h4>Why Server-Side Tracking Matters<\/h4>\n\n<p>When the Meta pixel is blocked, event data may not reach Meta \u2014 affecting ad optimization. CapiFlow complements the browser pixel by sending events server-side with a matching <code>event_id<\/code> for deduplication.<\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Install &amp; Activate<\/strong> \u2014 Setup wizard launches automatically<\/li>\n<li><strong>Enter Pixel ID + Access Token<\/strong> \u2014 From Meta Events Manager<\/li>\n<li><strong>Click Test Connection<\/strong> \u2014 Events start flowing<\/li>\n<\/ol>\n\n<p>No theme edits. No GTM server container required. No separate server-container subscription needed for the built-in Meta CAPI workflow.<\/p>\n\n<h4>Core Features<\/h4>\n\n<p><strong>Server-Side Event Tracking<\/strong><\/p>\n\n<ul>\n<li>\ud83c\udfaf <strong>7 Standard Events<\/strong> \u2014 Purchase, InitiateCheckout, AddPaymentInfo, AddToCart, ViewContent, Search, PageView<\/li>\n<li>\ud83d\udd04 <strong>Deduplication<\/strong> \u2014 Browser pixel and server events share the same <code>event_id<\/code> to support Meta's deduplication<\/li>\n<li>\ud83d\udee1\ufe0f <strong>First-Party Event Endpoint<\/strong> \u2014 Browser events can be delivered through your own domain where configured<\/li>\n<li>\ud83d\udd10 <strong>SHA-256 PII Hashing<\/strong> \u2014 Email, phone, name hashed before leaving your server<\/li>\n<\/ul>\n\n<p><strong>Event Match Quality Support<\/strong> \u2014 <code>fbc<\/code>, <code>fbp<\/code>, <code>external_id<\/code>, client IP, user agent, and hashed customer data (email, phone, name) for logged-in users.<\/p>\n\n<p><strong>Analytics &amp; Monitoring<\/strong><\/p>\n\n<ul>\n<li>\ud83d\udcc8 Dashboard \u2014 event breakdown and source attribution<\/li>\n<li>\ud83d\udd0d Debug console \u2014 payloads and Meta API responses<\/li>\n<li>\ud83c\udfe5 System health \u2014 token, queue, connection test<\/li>\n<li>\ud83d\uded2 Cart monitor \u2014 abandoned cart summary<\/li>\n<\/ul>\n\n<p><strong>Data Quality &amp; Control<\/strong><\/p>\n\n<ul>\n<li>\ud83d\udcde Phone validation at checkout<\/li>\n<li>\ud83d\udd12 COD Purchase gate \u2014 hold events until admin confirms<\/li>\n<li>\ud83d\udccb Order metabox and columns \u2014 per-order CAPI status<\/li>\n<\/ul>\n\n<p><strong>Developer Tools<\/strong><\/p>\n\n<ul>\n<li>\ud83d\udd27 Code injection \u2014 GTM, analytics, chat widgets (admin-only)<\/li>\n<li>\ud83e\ude9d Filter hooks \u2014 <code>capiflow_proxy_url<\/code>, <code>capiflow_has_tracking_consent<\/code><\/li>\n<li>\ud83d\udce6 HPOS compatible \u2014 WooCommerce High-Performance Order Storage support<\/li>\n<li>\u23f1\ufe0f Action Scheduler queue \u2014 async event delivery with retry logic<\/li>\n<\/ul>\n\n<h4>CapiFlow Pro<\/h4>\n\n<p>CapiFlow Pro is a separate addon that extends the free plugin with:<\/p>\n\n<ul>\n<li>Phone reputation scoring and fraud detection<\/li>\n<li>Negative Purchase events for cancelled\/refunded orders<\/li>\n<li>Multi-pixel and category-based pixel routing<\/li>\n<li>COD auto-confirm with courier integration<\/li>\n<li>Real-time EMQ score display from Meta API<\/li>\n<li>Blacklist management for known fraud patterns<\/li>\n<li>Advanced order quality tools<\/li>\n<\/ul>\n\n<p>Learn more on the <a href=\"https:\/\/capiflowpro.com\">CapiFlow website<\/a>.<\/p>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li><strong>Gateways:<\/strong> bKash, Nagad, SSLCommerz, Stripe, PayPal, COD, and all standard WooCommerce gateways<\/li>\n<li><strong>Themes:<\/strong> Any theme \u2014 Classic, Block (FSE), page builders<\/li>\n<li><strong>WooCommerce:<\/strong> HPOS and legacy post-based orders<\/li>\n<li><strong>Consent:<\/strong> CookieYes, Complianz, CookieBot, GDPR Cookie Consent, custom filter hook<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0+<\/li>\n<li>WooCommerce 7.0+<\/li>\n<li>PHP 7.4+<\/li>\n<li>OpenSSL PHP extension<\/li>\n<li>Meta Pixel ID and System User Access Token<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin connects to the following third-party services:<\/p>\n\n<p><strong>Meta (Facebook) Conversions API<\/strong><\/p>\n\n<p>CapiFlow sends WooCommerce event data to the Meta Conversions API via: <code>https:\/\/graph.facebook.com\/<\/code><\/p>\n\n<p>This connection is made from your server to Meta's servers when a configured tracking event occurs. No data is sent until a valid Pixel ID and Access Token are configured.<\/p>\n\n<p>Data transmitted includes:<\/p>\n\n<ul>\n<li>Hashed email, phone, first and last name (SHA-256)<\/li>\n<li>Client IP address and Browser User Agent<\/li>\n<li>Meta Click ID (_fbc) and Browser ID (_fbp) cookies<\/li>\n<li>Order total, currency, and event metadata<\/li>\n<\/ul>\n\n<p>All personal data is SHA-256 hashed before transmission.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/www.facebook.com\/terms.php\">Meta Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Meta Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/developers.facebook.com\/terms\/\">Meta Platform Terms<\/a><\/li>\n<\/ul>\n\n<p><strong>Meta Pixel JavaScript SDK<\/strong><\/p>\n\n<p>This plugin loads the Meta Pixel SDK from: <code>https:\/\/connect.facebook.net\/en_US\/fbevents.js<\/code><\/p>\n\n<p>Loaded on frontend pages when a Pixel ID is configured. The SDK is hosted by Meta.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/www.facebook.com\/terms.php\">Meta Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Meta Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>For server-side events, all personal data is SHA-256 hashed before transmission. For browser events, the Meta Pixel SDK handles hashing via Advanced Matching. This plugin does not store raw PII in its own tables. See <a href=\"https:\/\/www.facebook.com\/privacy\/policy\/\">Meta's privacy policy<\/a>.<\/p>\n\n<h4>Cookies<\/h4>\n\n<ul>\n<li><code>cs_uid<\/code> \u2014 Random visitor identifier for <code>external_id<\/code> deduplication. 180 days. No PII.<\/li>\n<li><code>_fbc<\/code> \u2014 Meta Click ID. Set by Meta SDK on ad click. CapiFlow reads\/extends server-side. 180 days.<\/li>\n<li><code>_fbp<\/code> \u2014 Meta Browser ID. Set by Meta SDK. CapiFlow reads\/extends server-side. 180 days.<\/li>\n<\/ul>\n\n<p>All cookies are first-party and contain no personally identifiable information.<\/p>\n\n<h4>Data Storage<\/h4>\n\n<ul>\n<li><code>{prefix}_capiflow_events<\/code> \u2014 Queued\/sent event payloads. Auto-purged after delivery.<\/li>\n<li><code>{prefix}_capiflow_analytics<\/code> \u2014 Daily aggregated analytics. Auto-purged by retention settings.<\/li>\n<li>Order metadata with <code>_capiflow_<\/code> prefix. Removed on uninstall if \"Keep Data\" is disabled.<\/li>\n<li>Logs in <code>wp-content\/uploads\/capiflow-logs\/<\/code> with <code>.htaccess<\/code> protection. Auto-cleaned daily.<\/li>\n<\/ul>\n\n<h4>Consent<\/h4>\n\n<p>By default, events fire once configured. Enable \"Consent Enforcement\" in Settings to respect CMP signals for both browser and server events.<\/p>\n\n<p>Supported CMPs: CookieYes, Complianz, CookieBot, GDPR Cookie Consent. Custom integration via <code>capiflow_has_tracking_consent<\/code> filter.<\/p>\n\n<p>When Consent Enforcement is enabled, browser and server-side events are blocked until valid tracking consent is detected.<\/p>\n\n<p>Store owners are responsible for lawful consent configuration where required by privacy regulations.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install from WordPress plugins screen or upload <code>capiflow<\/code> to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Setup wizard launches \u2014 enter <strong>Pixel ID<\/strong> and <strong>Access Token<\/strong>.<\/li>\n<li>Click <strong>Test Connection<\/strong> \u2014 check <strong>CapiFlow \u2192 Dashboard<\/strong> to monitor.<\/li>\n<\/ol>\n\n<h4>Getting an Access Token<\/h4>\n\n<ol>\n<li><a href=\"https:\/\/www.facebook.com\/events_manager2\/\">Meta Events Manager<\/a> \u2192 Select Pixel \u2192 Settings \u2192 Conversions API<\/li>\n<li>Click <strong>Generate Access Token<\/strong> or create a System User<\/li>\n<li>Paste into CapiFlow \u2192 Settings \u2192 Pixel Settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20the%20meta%20browser%20pixel%3F\"><h3>Does this replace the Meta browser pixel?<\/h3><\/dt>\n<dd><p>No. CapiFlow works alongside the browser pixel using Meta's recommended redundant setup \u2014 both share a matching <code>event_id<\/code> for deduplication.<\/p><\/dd>\n<dt id=\"will%20this%20cause%20duplicate%20events%3F\"><h3>Will this cause duplicate events?<\/h3><\/dt>\n<dd><p>No. Matching <code>event_id<\/code> values ensure Meta deduplicates browser and server events automatically.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20gtm%20server%20container%20or%20a%20service%20like%20stape.io%3F\"><h3>Do I need a GTM server container or a service like Stape.io?<\/h3><\/dt>\n<dd><p>No. CapiFlow sends events directly from your WooCommerce server to Meta \u2014 no separate GTM server container, third-party service, or monthly subscription needed.<\/p><\/dd>\n<dt id=\"how%20does%20this%20support%20event%20match%20quality%3F\"><h3>How does this support Event Match Quality?<\/h3><\/dt>\n<dd><p>CapiFlow sends <code>fbc<\/code>, <code>fbp<\/code>, <code>external_id<\/code>, client IP, user agent, and hashed customer data \u2014 additional signals that can improve event matching vs browser-only tracking.<\/p><\/dd>\n<dt id=\"how%20is%20privacy%20handled%3F\"><h3>How is privacy handled?<\/h3><\/dt>\n<dd><p>All PII is SHA-256 hashed before transmission. Consent Enforcement toggle blocks events until CMP consent is granted. Privacy policy content auto-added to your WordPress Privacy Policy page.<\/p><\/dd>\n<dt id=\"which%20order%20storage%20is%20supported%3F\"><h3>Which order storage is supported?<\/h3><\/dt>\n<dd><p>Both traditional posts-based and HPOS (High-Performance Order Storage). Auto-detected, no configuration needed.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20my%20payment%20gateway%3F\"><h3>Does this work with my payment gateway?<\/h3><\/dt>\n<dd><p>Yes. CapiFlow uses WooCommerce's standard order status hooks. Compatible with bKash, Nagad, SSLCommerz, Stripe, PayPal, COD, and all standard gateways.<\/p><\/dd>\n<dt id=\"what%20happens%20with%20cod%20orders%3F\"><h3>What happens with COD orders?<\/h3><\/dt>\n<dd><p>Purchase event is held until admin confirms the order, preventing unverified COD orders from reaching Meta.<\/p><\/dd>\n<dt id=\"do%20i%20need%20google%20tag%20manager%3F\"><h3>Do I need Google Tag Manager?<\/h3><\/dt>\n<dd><p>No. CapiFlow works standalone. If you need GTM or other scripts, a built-in code injection feature is included.<\/p><\/dd>\n<dt id=\"what%20is%20capiflow%20pro%3F\"><h3>What is CapiFlow Pro?<\/h3><\/dt>\n<dd><p>A separate addon that adds fraud protection, negative Purchase events for cancellations, multi-pixel routing, courier integration, and real-time EMQ scores. <a href=\"https:\/\/capiflowpro.com\">Learn more<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0 \u2014 2026-05-01<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Server-side tracking for 7 Meta standard events via Conversions API<\/li>\n<li>Browser + server event deduplication with matching event_id<\/li>\n<li>First-party event endpoint, SHA-256 PII hashing, Advanced Matching<\/li>\n<li>COD Purchase gate, phone validation, analytics dashboard<\/li>\n<li>Debug console, system health, setup wizard<\/li>\n<li>HPOS compatible, Action Scheduler queue, CMP integration<\/li>\n<\/ul>","raw_excerpt":"Send WooCommerce events to Meta Conversions API with server-side tracking, deduplication, and confirmed Purchase control.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=308219"}],"author":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/capiflow"}],"wp:attachment":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308219"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308219"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308219"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308219"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308219"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}