fabiodalez
Forum Replies Created
-
Forum: Plugins
In reply to: [FAZ Cookie Manager] Supporting YouGlad to hear it!
If you ever feel like leaving a review, that would genuinely be the best thing you could do for the project — it helps people find it.
I’m closing this one!
Forum: Plugins
In reply to: [FAZ Cookie Manager] how to bypass an inline script?Glad you got it working — and thank you for the clear feedback. The field name “Whitelisted URL Patterns” only hints at URLs, so figuring out that a bare class name works there is not obvious at all.
Good news: the naming and description have already been updated in the next release. The field will be renamed “Script Blocking Exceptions” and the description will explicitly list the three types of values it accepts — URL fragments (with dots or slashes), script id attributes, and CSS class names — with a concrete example for each. No one should have to guess anymore.
On your suggestion for a faz-skip class: i like it and I’m going to implement it. The idea is that adding class=”faz-skip” to any script tag will always exclude it from blocking — no settings page required, no whitelist entry needed. Something like:
<script class=”faz-skip”>
// this script will never be blocked by FAZ, regardless of its contentThis is a zero-configuration escape hatch for developers: add the class in your theme or plugin template, done. It also makes the intent explicit right in the HTML source — anyone reading the markup immediately knows the script is intentionally excluded.
I’ll document it in the Script Blocking section of the settings page so future users see it before they go looking for the whitelist.
Thanks again for the suggestion — this will save a lot of people the same confusion. 🙂
Forum: Plugins
In reply to: [FAZ Cookie Manager] Supporting YouThank you so much for the kind words — messages like yours make my day, and they’re a big part of why I keep pushing updates.
To answer your question directly: FAZ Cookie Manager is free, and it will always stay free — both free as in freedom and free as in beer. There’s no paid tier coming, no “pro” version locked behind a subscription, no feature held hostage. That’s a deliberate choice.
Here’s the honest backstory: I built this plugin because I needed it. I manage and maintain websites for clients too, and I got tired of the WordPress ecosystem being flooded with plugins that are “free” in name only — the ones that nag you, cripple core functionality until you upgrade, or quietly phone home. So I wrote what I wished existed. As long as I’m working in this field, I’ll need this plugin myself, which means it will keep getting updates and security patches — not out of charity, but because my own clients depend on it. You’re essentially riding along on maintenance I’d be doing anyway.
That said, if you’d like to support the work, here are the ways that genuinely help:
Buy me a coffee — if you want to throw something my way, this is the place: https://buymeacoffee.com/fabiodalez. Zero pressure, completely optional, and it absolutely won’t change what you get from the plugin.
Contribute on GitHub — I’m a solo developer, and that’s the real bottleneck. Bug reports, pull requests, feature ideas, code reviews, documentation improvements — all of it is hugely valuable. If you or anyone on your team has the bandwidth to dig in, you’d be very welcome: https://github.com/fabiodalez-dev/FAZ-Cookie-Manager
Help with the Open Cookie Database — this is the part that scales beyond me. The plugin is only as good as the cookie data behind it, and I maintain an open database here: https://github.com/fabiodalez-dev/Open-Cookie-Database. Adding cookies you encounter on client sites, correcting categorizations, or expanding descriptions benefits every user of the plugin (and anyone else who uses the database). It’s probably the single highest-leverage contribution someone managing multiple sites can make.
The bigger goal — and I’ll be a bit idealistic for a second — is to help free WordPress from the fake-free plugin economy. The more people who treat tools like this as a commons worth tending rather than a product to consume, the better the whole ecosystem gets.
Thanks again for reaching out, and seriously, glad it’s working well for you and your clients.
Cheers,
FabioForum: Plugins
In reply to: [FAZ Cookie Manager] how to bypass an inline script?Hi @rwky!
FAZ blocks scripts by scanning the page HTML and matching script tags against a database of known trackers and cookie providers. If your inline script contains a string that matches a known provider pattern — for example a tracking variable likefbq(orgtag(— FAZ will block it even if the script itself is not a tracker.
Here is a typical example of the problem. Say you have a product configuration script like this:
FAZ might block this script because the text “facebook.com” or “youtube.com” appears inside it, even though the script is just passing data — it is not running any Facebook or YouTube tracker code at all.
There are two ways to resolve this.
OPTION A — WHITELIST THE SCRIPT BY ID (works right now)
Step 1 — Add an id to your inline script tag:
Step 2 — Add that id to the FAZ exception list.
Go to FAZ Cookie Manager → Settings → Script Blocking. You will see a textarea called “Script Blocking Exceptions”. Add the id you chose, one per line:
my-product-config
Save the settings.
How the field works: patterns without dots or slashes are matched against the script’s id and class attributes. Patterns with dots or slashes (e.g. googleapis.com/maps) are URL fragments matched against the src attribute instead. Since your script has no src, a bare id handle is the correct format.
Step 3 — Clear your cache.
If you are running a caching plugin (LiteSpeed Cache, WP Rocket, W3 Total Cache, etc.), clear the full page cache after saving. FAZ’s blocking runs in PHP during page generation — cached pages will not reflect the new exception until the cache is invalidated.
After clearing the cache, reload the page: the script should now execute normally.
OPTION B — WAIT FOR THE NEXT FAZ RELEASE (will fix the root cause automatically)
A fix for this class of false positives is already merged and will ship in the next FAZ release. The change: URL-fragment patterns (e.g. facebook.com, youtu.be) will only match against a script’s src attribute, never against inline text content. Code-level tracking signatures (fbq(, gtag(, _gaq) will still match inline content as before.
If your script is being blocked because it references a tracker domain inside data (not because it actually runs tracker code), updating FAZ when the next version is out will resolve the false positive automatically — no whitelist entry needed.
The same release will also rename the Settings field from “Whitelisted URL Patterns” to “Script Blocking Exceptions” with a clearer description explaining that script IDs and handles are accepted alongside URL fragments.
IF YOU CANNOT MODIFY THE SCRIPT TAG
If the script is rendered by a third-party plugin and you cannot add an id attribute, try injecting it via your theme’s functions.php:
add_filter( ‘script_loader_tag’, function( $tag, $handle ) {
if ( $handle === ‘your-plugin-handle’ ) {
return str_replace( ‘<script ‘, ‘<script id=”my-product-config” ‘, $tag );
}
return $tag;
}, 10, 2 );
Note: this filter only applies to scripts enqueued via wp_enqueue_script(). Truly raw inline scripts echoed directly in a template cannot be intercepted this way — in that case, look for a plugin hook or edit the template directly.
Let me know what your script looks like and I can confirm which approach applies to your case!Forum: Plugins
In reply to: [FAZ Cookie Manager] GTM template to useHi @dieterj!
Two separate issues here, and yes let’s debug them properly — I’ll give you exact steps for each.
ISSUE 1 — BANNER NOT SHOWING
The most likely cause: your browser already has the FAZ consent cookie set from a previous visit or test. FAZ correctly hides the banner once consent is recorded.
Debug step 1: open your site in a fresh incognito/private window. If the banner appears, the plugin is working fine — you just need a clean browser state for testing.
Debug step 2: if the banner still doesn’t appear even in incognito, open DevTools (F12) → Console tab and run:
document.querySelector(‘.faz-consent-container’)
If it returns null, FAZ is not injecting the banner HTML at all. This usually means no banner is published in FAZ Cookie Manager → Banner.
If it returns an element, run:
window.getComputedStyle(document.querySelector(‘.faz-consent-container’)).display
If the result is “none”, the banner is hidden by JavaScript (likely because a consent cookie is already present). Check DevTools → Application → Cookies and delete any cookie named “fazcookie-consent”, then reload.
ISSUE 2 — GTM DEBUGGER SAYS “SCRIPT NOT LOADED” / TAG NOT FIRING
This is almost certainly because Google Consent Mode is not enabled inside FAZ.
When GCM is disabled, FAZ never pushes any consent signals to the dataLayer. GTM has no consent state to work with, so it blocks or skips tags that require consent.
To fix: go to FAZ Cookie Manager → Google Consent Mode and turn it on. Then map your categories: Analytics → analytics_storage, Marketing → ad_storage + ad_user_data + ad_personalization.
HOW TO DEBUG AFTER ENABLING GCM
Open your site in incognito (important — no stale cookies). Open DevTools → Console and run these checks in order:
Check 1 — is gcm.min.js loading?
document.querySelector(‘script[src*=”gcm.min.js”]’)
If this returns null, GCM is not enabled in FAZ settings. If it returns a script element, the file is loading.
Check 2 — is the dataLayer initialized?
console.log(JSON.stringify(window.dataLayer, null, 2))
With GCM enabled you should see something like:
[[“consent”,”default”,{“analytics_storage”:”denied”,”ad_storage”:”denied”,”ad_user_data”:”denied”,”ad_personalization”:”denied”,”wait_for_update”:500}]]
If window.dataLayer is undefined or an empty array, GCM is not running.
Check 3 — check the consent cookie state
document.cookie
Look for “fazcookie-consent” in the output. If you see it with “action:yes” or “action:no”, the user already gave consent — the banner won’t show again.
WHAT TO EXPECT IN GTM DEBUGGER WITH GCM WORKING
Open GTM Preview mode, then open your site in incognito. You should see:
– “Consent Initialization – All Pages” triggers on page load
– Your GA4 tag shows status “Consent not granted” — this is CORRECT behavior, not an error. The tag is wired up and consent-aware; it fires fully once the visitor clicks Accept
– After clicking Accept All on the FAZ banner, a “consent update” event appears in the dataLayer summary on the left, and the GA4 tag fires
If GA4 shows “Not fired” (instead of “Consent not granted”), the tag trigger is wrong — set it to “Consent Initialization – All Pages” and make sure Consent Settings on the tag require analytics_storage.
QUICK CHECKLIST
1. Test banner in incognito — if it appears, the plugin is fine
2. Enable GCM in FAZ Cookie Manager → Google Consent Mode
3. Run the console checks above to verify gcm.min.js loads and dataLayer is populated
4. In GTM debugger (incognito), confirm GA4 shows “Consent not granted” on load and fires after Accept
Share what you see in the console checks and I can help narrow it down further!Forum: Plugins
In reply to: [FAZ Cookie Manager] GTM template to useHi @dieterj, great question!
FAZ Cookie Manager ships with built-in Google Consent Mode v2 support via its gcm.js module, so you don’t need a dedicated GTM Community Template to make consent signals work — the plugin pushes them natively to the dataLayer automatically.HOW FAZ SENDS CONSENT SIGNALSWhen a visitor lands on your site, FAZ immediately fires a default consent state (denied for everything, or your configured defaults) to the dataLayer.
When the visitor accepts or rejects cookies, FAZ fires an update. GTM picks this up automatically — no extra template needed.
GTM SETUP FOR GA4 + GOOGLE ADSFirst, in GTM go to Admin → Container Settings and enable “Enable consent overview (beta)”. This lets you see and manage consent checks per tag.For the GA4 Configuration tag, use “Consent Initialization – All Pages” as the trigger, and in the tag’s Consent Settings require analytics_storage.
With Consent Mode active, GA4 will still fire on page load but will model conversions for users who denied consent (no PII collected). This is the recommended setup for GDPR compliance.For Google Ads Conversion Tracking, require ad_storage and ad_user_data in the consent settings. For Google Ads Remarketing, also require ad_personalization.
FAZ ADMIN SETTINGS TO CHECK
Go to FAZ Cookie Manager → Google Consent Mode in your WordPress admin. Make sure GCM v2 is enabled, and map your cookie categories to the correct consent types: Analytics → analytics_storage, Marketing → ad_storage + ad_user_data + ad_personalization.
Plugins like Complianz provide a GTM template mainly for users who don’t have native GCM integration.
Since FAZ handles this natively, you can skip the template entirely.If you’re using GTM to inject the GA4 script itself, just make sure your GA4 Config tag fires on “Consent Initialization – All Pages” — GTM will respect the consent state and apply modeling automatically.Hope this helps! Let me know if you run into any specific GTM configuration issue.
Forum: Reviews
In reply to: [FAZ Cookie Manager] Great pluginThank you so much!
Forum: Plugins
In reply to: [Frontend Admin by DynamiApps] Plugin Latest Version Broke WebsiteSame here: Warning: Cannot modify header information – headers already sent by (output started at /home/XXXX/public_html/wp-content/plugins/acf-frontend-form-element/main/frontend/fields/general/class-upload-file.php:1091) in /home/XXXX/public_html/wp-login.php on line 504
Php: 8.3 (but I tried also with 8.0), Elementor pro (latest version), WordPress 6.5.3
Yes, I know.
But simply doesn’t work and Buyer mail and Receipt mail is sent.
I don’t understand why