{"id":314477,"date":"2026-05-19T19:19:23","date_gmt":"2026-05-19T19:19:23","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codifycore-sgtm-for-fluentcart\/"},"modified":"2026-08-27T07:21:08","modified_gmt":"2026-08-27T07:21:08","slug":"codifycore-sgtm-for-fluentcart","status":"publish","type":"plugin","link":"https:\/\/lug.wordpress.org\/plugins\/codifycore-sgtm-for-fluentcart\/","author":23499889,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.0.4","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"CodifyCore sGTM for FluentCart","header_author":"CodifyCore","header_description":"Advanced, lightweight WordPress addon bridging FluentCart checkout activity with Server-Side Google Tag Manager (sGTM) through GA4 Measurement Protocol.","assets_banners_color":"000000","last_updated":"2026-08-27 07:21:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/codifycore.com\/codifycore-sgtm-for-fluentcart\/","header_author_uri":"https:\/\/codifycore.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":332,"num_ratings":2,"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":"codifycore","date":"2026-05-19 19:18:53","revision":3537871},"1.0.1":{"tag":"1.0.1","author":"codifycore","date":"2026-05-20 23:12:33","revision":3540280},"1.0.2":{"tag":"1.0.2","author":"codifycore","date":"2026-05-25 13:51:49","revision":3547686},"1.0.3":{"tag":"1.0.3","author":"codifycore","date":"2026-08-09 03:09:39","revision":3639040},"1.0.4":{"tag":"1.0.4","author":"codifycore","date":"2026-08-27 07:21:08","revision":3668261}},"upgrade_notice":{"1.0.4":"<p>Adds Pro Direct GA4 delivery without an sGTM URL, optional frontend identity continuity, catalog-backed routing, and browser engagement events.<\/p>","1.0.3":"<p>Adds the shared CodifyCore admin menu\/dashboard and FluentCart-aware admin permission handling.<\/p>","1.0.2":"<p>Adds optional Frontend Pixel tracking with Meta deduplication support when used alongside server-side events.<\/p>","1.0.1":"<p>Adds the Privacy Policy Tool for generated disclosure text.<\/p>","1.0.0":"<p>Initial public release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3540239,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3540239,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3540239,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3537869,"resolution":"1","location":"assets","locale":"","width":1329,"height":798},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3537869,"resolution":"2","location":"assets","locale":"","width":1343,"height":835},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3537869,"resolution":"3","location":"assets","locale":"","width":1316,"height":812},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3537869,"resolution":"4","location":"assets","locale":"","width":1235,"height":779},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3537869,"resolution":"5","location":"assets","locale":"","width":1204,"height":602},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3537869,"resolution":"6","location":"assets","locale":"","width":848,"height":431},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3537869,"resolution":"7","location":"assets","locale":"","width":1061,"height":351},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3537869,"resolution":"8","location":"assets","locale":"","width":1189,"height":569}},"screenshots":{"1":"Main CodifyCore sGTM for FluentCart settings screen.","2":"sGTM and GA4 endpoint configuration.","3":"Event selection and privacy\/hash controls.","4":"Frontend Pixel settings for browser-side Meta Pixel events.","5":"Privacy Policy Tool with generated policy, cookie, and data sharing text.","6":"Pro tabs for Direct GA4, Direct Meta CAPI, diagnostics, license, and event response logs when Pro is active."}},"plugin_section":[],"plugin_tags":[232,250438,193472,23294,219244],"plugin_category":[36],"plugin_contributors":[263582],"plugin_business_model":[],"class_list":["post-314477","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-fluentcart","plugin_tags-ga4","plugin_tags-google-tag-manager","plugin_tags-server-side-tracking","plugin_category-analytics","plugin_contributors-codifycore","plugin_committers-codifycore"],"banners":{"banner":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/banner-772x250.png?rev=3540239","banner_2x":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/banner-1544x500.png?rev=3540239","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/icon-256x256.png?rev=3540239","icon_2x":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/icon-256x256.png?rev=3540239","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-1.png?rev=3537869","caption":"Main CodifyCore sGTM for FluentCart settings screen."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-2.png?rev=3537869","caption":"sGTM and GA4 endpoint configuration."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-3.png?rev=3537869","caption":"Event selection and privacy\/hash controls."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-4.png?rev=3537869","caption":"Frontend Pixel settings for browser-side Meta Pixel events."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-5.png?rev=3537869","caption":"Privacy Policy Tool with generated policy, cookie, and data sharing text."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-6.png?rev=3537869","caption":"Pro tabs for Direct GA4, Direct Meta CAPI, diagnostics, license, and event response logs when Pro is active."},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-7.png?rev=3537869","caption":""},{"src":"https:\/\/ps.w.org\/codifycore-sgtm-for-fluentcart\/assets\/screenshot-8.png?rev=3537869","caption":""}],"raw_content":"<!--section=description-->\n<p>CodifyCore sGTM for FluentCart connects FluentCart checkout activity to Server-Side Google Tag Manager and Google Analytics 4 Measurement Protocol.<\/p>\n\n<p>The plugin helps store owners send key ecommerce events from WordPress instead of relying only on browser-side scripts. It routes events to a server-side GTM endpoint and improves attribution with first-party checkout data. Advanced direct Google Analytics 4 Measurement Protocol delivery, direct Meta CAPI routing, diagnostics, and event tools are available in the separately distributed Pro extension.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Server-side ecommerce event tracking for FluentCart.<\/li>\n<li>Optional Frontend Pixel tab for Meta browser Pixel events using a Pixel ID, not a pasted script tag.<\/li>\n<li>sGTM routing through GA4 Measurement Protocol.<\/li>\n<li>Purchase, InitiateCheckout, AddToCart, PageView, ViewContent, and Search tracking.<\/li>\n<li>Optional throttled engagement events for scroll depth, file downloads, meaningful clicks, and HTML5 video starts\/pauses.<\/li>\n<li>Shared event catalog with separate GA4 and Meta event names for safer custom event routing.<\/li>\n<li>Compatibility points for separately distributed CodifyCore extensions.<\/li>\n<li>Shared CodifyCore admin dashboard and menu for CodifyCore plugins.<\/li>\n<li>FluentCart-aware admin permission support for delegated FluentCart store users.<\/li>\n<li>SHA-256 hashing options for selected customer matching fields.<\/li>\n<li>Privacy Policy Tool that generates copy-ready privacy, cookie, and data sharing statements from saved settings.<\/li>\n<li>Gross or net order value reporting.<\/li>\n<\/ul>\n\n<h4>Purchase event behavior<\/h4>\n\n<p>The Purchase event is deduplication-protected and fires after a reliable order signal:<\/p>\n\n<ul>\n<li>Payment status changes to Paid.<\/li>\n<li>Order status changes to Processing.<\/li>\n<li>Shipping status changes to Shipped or Delivered.<\/li>\n<li>The receipt page fallback only fires after a reliable paid or processing signal.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<p>This plugin requires FluentCart to be installed and active. Without FluentCart, the addon remains inactive and shows an admin notice.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin ZIP from <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>CodifyCore sGTM for FluentCart<\/strong> from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Make sure the core <strong>FluentCart<\/strong> plugin is installed and active.<\/li>\n<li>Go to <strong>CodifyCore &gt; sGTM for FluentCart<\/strong>.<\/li>\n<li>Configure your sGTM endpoint, GA4 Measurement ID, and GA4 API secret as needed. Licensed Pro users can choose Direct GA4 without an sGTM URL.<\/li>\n<li>Enable the ecommerce events you want to track.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20fluentcart%3F\"><h3>Do I need FluentCart?<\/h3><\/dt>\n<dd><p>Yes. CodifyCore sGTM for FluentCart is an addon for FluentCart and depends on FluentCart order, checkout, product, and customer data.<\/p><\/dd>\n<dt id=\"do%20i%20need%20server-side%20google%20tag%20manager%3F\"><h3>Do I need Server-Side Google Tag Manager?<\/h3><\/dt>\n<dd><p>The Free route requires a server-side Google Tag Manager endpoint. Licensed Pro users can select Direct GA4 to send server events from WordPress to Google Analytics without an sGTM URL, and can independently enable Direct Meta CAPI.<\/p><\/dd>\n<dt id=\"does%20direct%20ga4%20require%20frontend%20integration%3F\"><h3>Does Direct GA4 require frontend integration?<\/h3><\/dt>\n<dd><p>No. Direct GA4 can send server events with a generated first-party fallback identity. For better session continuity and attribution, Pro can install the Google tag for identity only or reuse an existing Google tag. The installed mode sets <code>send_page_view<\/code> to false, so the plugin's server route remains responsible for events. Do not install a second Google tag, and connect browser identity collection to your consent-management setup before enabling it.<\/p><\/dd>\n<dt id=\"how%20does%20frontend%20pixel%20work%20with%20server-side%20tracking%3F\"><h3>How does Frontend Pixel work with server-side tracking?<\/h3><\/dt>\n<dd><p>Frontend Pixel sends selected browser events directly to Meta using the configured Pixel ID. Server-side tracking continues to send events from WordPress to sGTM, and Pro Direct Meta CAPI continues to send server events from WordPress to Meta CAPI. When browser and server events overlap, the plugin shares event IDs so Meta can deduplicate supported Pixel\/CAPI event pairs.<\/p><\/dd>\n<dt id=\"which%20purchase%20triggers%20are%20supported%3F\"><h3>Which Purchase triggers are supported?<\/h3><\/dt>\n<dd><p>Purchase events can fire when payment status becomes Paid, order status becomes Processing, or shipping status becomes Shipped or Delivered. Receipt page tracking is only used as a guarded fallback after a reliable paid or processing signal.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20hash%20customer%20data%3F\"><h3>Does the plugin hash customer data?<\/h3><\/dt>\n<dd><p>Yes. When matching fields are enabled, selected customer data is normalized and SHA-256 hashed before being sent for supported tracking payloads.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20help%20with%20privacy%20policy%20text%3F\"><h3>Does the plugin help with privacy policy text?<\/h3><\/dt>\n<dd><p>Yes. The Free plugin includes a Privacy Policy Tool that generates suggested privacy, cookie, and data sharing statements from the saved CodifyCore sGTM for FluentCart settings. Site owners should review the generated text for their jurisdiction, consent tool, and actual third-party setup before publishing.<\/p><\/dd>\n<dt id=\"where%20is%20the%20plugin%20menu%3F\"><h3>Where is the plugin menu?<\/h3><\/dt>\n<dd><p>The plugin appears under the shared <strong>CodifyCore<\/strong> admin menu. If more CodifyCore plugins are installed, they use the same top-level menu and add their own submenu items.<\/p><\/dd>\n<dt id=\"can%20fluentcart%20delegated%20admin%20users%20access%20it%3F\"><h3>Can FluentCart delegated admin users access it?<\/h3><\/dt>\n<dd><p>Yes, when FluentCart Pro role management is active and the user has mapped FluentCart permissions for store settings, integrations, reports, or sensitive settings. WordPress administrators always retain full access. License activation remains administrator-only.<\/p><\/dd>\n<dt id=\"where%20can%20i%20review%20event%20responses%3F\"><h3>Where can I review event responses?<\/h3><\/dt>\n<dd><p>Event response logs are available through the Pro extension.<\/p><\/dd>\n<dt id=\"where%20can%20i%20find%20documentation%20and%20changelog%3F\"><h3>Where can I find documentation and changelog?<\/h3><\/dt>\n<dd><p>Documentation: https:\/\/codifycore.com\/docs\/codifycore-sgtm-for-fluentcart\/<\/p>\n\n<p>Changelog: https:\/\/codifycore.com\/docs\/codifycore-sgtm-for-fluentcart\/changelog\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added licensed Pro Direct GA4 Measurement Protocol delivery with sGTM-only, direct-only, and explicit dual-delivery modes.<\/li>\n<li>Added optional GA4 frontend identity integration that can install an identity-only Google tag or reuse an existing tag without sending automatic page views.<\/li>\n<li>Added first-party GA4 client\/session continuity across browser, checkout session, and order events, plus a consent-integration filter.<\/li>\n<li>Added strict Direct GA4 payload diagnostics while keeping the GA4 API secret server-only.<\/li>\n<li>Hardened public event ingestion with browser-event allowlists, same-site page URLs, trusted server-only conversion hooks, and bounded SSRF-safe outbound requests.<\/li>\n<li>Improved GA client\/session continuity for checkout and webhook completion, including current GA cookie formats, and stopped creating Meta identifiers for Direct-GA-only setups.<\/li>\n<li>Limited Meta Test Event Codes to staging and rejected Direct GA4 events outside Google's accepted timestamp window instead of silently re-dating them.<\/li>\n<li>Added strict GA4 Measurement ID routing, Google-specific enhanced-data hashing, protocol parameter\/body limits, malformed identity-cookie recovery, and tighter public payload bounds.<\/li>\n<li>Carried forward the 1.0.3 currency, decimal parsing, confirmed AddToCart, navigation-safe delivery, cookie, secret-field, and settings validation fixes.<\/li>\n<li>Added shared event catalog support with explicit GA4 and Meta event names.<\/li>\n<li>Added optional throttled browser engagement events for scroll depth, file downloads, meaningful clicks, and HTML5 video starts\/pauses.<\/li>\n<li>Added repeat purchase parameters for paid customer order history when available.<\/li>\n<li>Updated generated privacy-policy context for the new engagement event group.<\/li>\n<li>Updated the bundled sGTM Meta template to Graph API v25.0 and preserved source event timestamps through the sGTM route.<\/li>\n<li>Added request-size hardening for browser tracking context data.<\/li>\n<li>Added WordPressCS\/PHPCompatibilityWP release verification and package-shape checks for the event catalog release.<\/li>\n<li>Verified CAPI\/GA4 payload keys and browser tracker scripts remain compatible with previous release behavior.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added shared CodifyCore admin dashboard and top-level menu support.<\/li>\n<li>Moved the sGTM settings screen under CodifyCore while keeping the existing settings page slug.<\/li>\n<li>Added FluentCart-aware admin permission handling for delegated FluentCart admin users.<\/li>\n<li>Hardened shared admin and settings files with WordPressCS\/PHPCompatibilityWP verification while preserving existing settings and menu behavior.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added Frontend Pixel settings for optional browser-side Meta Pixel events.<\/li>\n<li>Added shared event IDs between browser Pixel events and server-side events for supported Meta deduplication.<\/li>\n<li>Added guarded receipt-page browser Purchase support.<\/li>\n<li>Updated privacy-policy text generation for browser Pixel data sharing.<\/li>\n<li>Added WordPressCS and PHPCompatibilityWP release verification for safer WordPress.org packaging.<\/li>\n<li>Verified tracking payload field names and browser tracker scripts remain compatible during standards cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added Privacy Policy Tool for generated privacy, cookie, and data sharing disclosure text based on saved settings.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Added sGTM routing for FluentCart ecommerce events.<\/li>\n<li>Added customer matching field hashing options.<\/li>\n<li>Added guarded Purchase event triggers for paid, processing, shipped, and delivered order flows.<\/li>\n<li>Added extension points for the Pro package.<\/li>\n<\/ul>","raw_excerpt":"Server-side tracking for FluentCart using sGTM, with Pro direct GA4 and Meta API delivery.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314477"}],"author":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codifycore"}],"wp:attachment":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314477"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314477"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314477"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314477"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314477"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}