From 256a4a9decd3cbdd2d4164526207424d7bcc5380 Mon Sep 17 00:00:00 2001 From: Steve Hanlon Date: Mon, 16 Feb 2026 08:17:02 +0000 Subject: [PATCH] Add optional global gtag() exposure setting New checkbox in General settings to conditionally expose window.gtag() for compatibility with third-party scripts (e.g. HFCM). Defaults to off, keeping only window.attCCGtag() available. Co-Authored-By: Claude Opus 4.6 --- admin/views/settings-general.php | 16 ++++++++++++++++ includes/class-admin.php | 1 + includes/class-att-consent.php | 1 + includes/class-frontend.php | 3 +++ 4 files changed, 21 insertions(+) diff --git a/admin/views/settings-general.php b/admin/views/settings-general.php index abcc442..aadac99 100644 --- a/admin/views/settings-general.php +++ b/admin/views/settings-general.php @@ -101,6 +101,22 @@ if ( ! defined( 'ABSPATH' ) ) { + + + + + + +

+ +

+ + + diff --git a/includes/class-admin.php b/includes/class-admin.php index 7d605bc..9ebeee0 100644 --- a/includes/class-admin.php +++ b/includes/class-admin.php @@ -170,6 +170,7 @@ class ATT_Consent_Admin { true ) ? $_POST['floating_widget'] : 'bottom-right'; $settings['floating_widget_label'] = sanitize_text_field( $_POST['floating_widget_label'] ?? '' ); + $settings['expose_gtag_global'] = ! empty( $_POST['expose_gtag_global'] ); break; case 'appearance': diff --git a/includes/class-att-consent.php b/includes/class-att-consent.php index 519884a..fb0d814 100644 --- a/includes/class-att-consent.php +++ b/includes/class-att-consent.php @@ -33,6 +33,7 @@ class ATT_Consent { 'consent_expiry' => 365, 'floating_widget' => 'bottom-right', 'floating_widget_label' => 'Cookie Settings', + 'expose_gtag_global' => false, // Appearance. 'banner_bg_color' => '#1a1a2e', diff --git a/includes/class-frontend.php b/includes/class-frontend.php index fb0ee83..964e99d 100644 --- a/includes/class-frontend.php +++ b/includes/class-frontend.php @@ -72,6 +72,9 @@ var c=window.attCCConfig; window.dataLayer=window.dataLayer||[]; function g(){window.dataLayer.push(arguments);} window.attCCGtag=g; + +window.gtag=g; + g('js',new Date()); if(c.ads_data_redaction){g('set','ads_data_redaction',true);} if(c.url_passthrough){g('set','url_passthrough',true);}