{"id":298912,"date":"2026-06-05T23:56:47","date_gmt":"2026-06-05T23:56:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/truss-consent-manager\/"},"modified":"2026-06-05T23:56:28","modified_gmt":"2026-06-05T23:56:28","slug":"truss-consent-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/truss-consent-manager\/","author":23451690,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"trunk","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Truss Consent Manager","header_author":"gutenplugins","header_description":"Cookie consent banner with multiple layouts, simple and granular consent modes, and email opt-in management.","assets_banners_color":"a4aab1","last_updated":"2026-06-05 23:56:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wptruss.com\/truss-consent-manager\/","header_author_uri":"https:\/\/wptruss.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5":{"tag":"1.5","author":"gutenplugins","date":"2026-06-05 23:56:28"}},"upgrade_notice":{"1.5.0":"<p>Adds Google Consent Mode v2 \u2014 enabled by default. If you do not use Google Analytics, Google Ads, or GTM, you can disable it in Settings \u2192 Advanced.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3562811,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3562811,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3562811,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-2316x750.png":{"filename":"banner-2316x750.png","revision":3562811,"resolution":"2316x750","location":"assets","locale":"","width":2316,"height":750},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3562811,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page \u2014 Display tab with layout picker and colour customisation","2":"Settings page \u2014 Consent Mode tab with Smart Toggle Visibility","3":"Settings page \u2014 Advanced tab with Script Blocking and Google Consent Mode v2","4":"Script Scanner \u2014 detected scripts grouped by category with Approve \/ Ignore actions","5":"Cookie Bar layout on the frontend","6":"Card layout on the frontend","7":"Floating Box layout with granular toggles"}},"plugin_section":[],"plugin_tags":[216591,16626,131785,234433,266018],"plugin_category":[],"plugin_contributors":[266019],"plugin_business_model":[],"class_list":["post-298912","plugin","type-plugin","status-publish","hentry","plugin_tags-consent-management","plugin_tags-cookie-consent","plugin_tags-gdpr","plugin_tags-google-consent-mode","plugin_tags-script-blocking","plugin_contributors-gutenplugins","plugin_committers-gutenplugins"],"banners":{"banner":"https:\/\/ps.w.org\/truss-consent-manager\/assets\/banner-772x250.png?rev=3562811","banner_2x":"https:\/\/ps.w.org\/truss-consent-manager\/assets\/banner-1544x500.png?rev=3562811","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/truss-consent-manager\/assets\/icon-128x128.png?rev=3562811","icon_2x":"https:\/\/ps.w.org\/truss-consent-manager\/assets\/icon-256x256.png?rev=3562811","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Truss Consent Manager is a full consent management plugin for WordPress and WooCommerce. It goes beyond a simple cookie banner to actively detect, categorise, and block tracking scripts until your visitors give consent.<\/p>\n\n<p><strong>Core Features<\/strong><\/p>\n\n<ul>\n<li><strong>Three banner layouts<\/strong> \u2014 Cookie Bar (full-width), Card (corner), Floating Box (centred)<\/li>\n<li><strong>Simple and granular consent modes<\/strong> \u2014 Accept All \/ Decline, or per-category toggles (Analytics, Marketing, Functional)<\/li>\n<li><strong>Script Scanner<\/strong> \u2014 automatically detects tracking scripts on your site by scanning real frontend output. Identifies 14 known trackers including Google Analytics, Google Tag Manager, Meta Pixel, TikTok Pixel, Microsoft Clarity, Hotjar, Matomo, and more.<\/li>\n<li><strong>Script Blocking Engine<\/strong> \u2014 prevents detected scripts from loading before consent is given. Rewrites script tags to <code>type=\"text\/plain\"<\/code> and re-activates them after consent.<\/li>\n<li><strong>Google Consent Mode v2<\/strong> \u2014 injects the required <code>gtag consent default<\/code> call before any Google scripts load, then updates consent signals automatically when visitors accept or decline.<\/li>\n<li><strong>Smart toggle visibility<\/strong> \u2014 granular toggles only appear for categories where trackers were actually detected on your site.<\/li>\n<li><strong>Fully customisable<\/strong> \u2014 banner colours, button labels, privacy policy link, cookie expiry, card position.<\/li>\n<li><strong>Developer API<\/strong> \u2014 <code>wpcm_register_script( $handle, $category )<\/code> for manual script registration.<\/li>\n<\/ul>\n\n<p><strong>Google Consent Mode v2 \u2014 Signal Mapping<\/strong><\/p>\n\n<p>When Google Consent Mode is enabled (default), the plugin injects a denied default state before any Google scripts load and updates the following signals based on visitor consent:<\/p>\n\n<ul>\n<li>Analytics consent \u2192 <code>analytics_storage<\/code><\/li>\n<li>Marketing consent \u2192 <code>ad_storage<\/code>, <code>ad_user_data<\/code>, <code>ad_personalization<\/code><\/li>\n<li>Functional consent \u2192 <code>functionality_storage<\/code>, <code>personalization_storage<\/code><\/li>\n<\/ul>\n\n<p>This works automatically with Google Analytics 4, Google Ads, and Google Tag Manager.<\/p>\n\n<p><strong>Privacy-first design<\/strong><\/p>\n\n<p>Consent is stored in a first-party browser cookie (<code>wpcm_consent<\/code>). No consent data is sent to any external server by this plugin. The Script Blocking Engine runs entirely server-side and client-side \u2014 no cloud dependency.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin integrates with the following external services when Google Consent Mode v2 is enabled:<\/p>\n\n<p><strong>Google Consent Mode \/ Google Tag Manager \/ Google Analytics<\/strong>\nWhen Google Consent Mode is enabled (Settings \u2192 Advanced \u2192 Google Consent Mode v2), this plugin injects JavaScript that communicates with Google's <code>dataLayer<\/code> and <code>gtag()<\/code> API. This sends consent signals to Google when a visitor interacts with the consent banner.<\/p>\n\n<ul>\n<li>What is sent: consent grant\/deny signals (no personal data, no IP address, no identifiers)<\/li>\n<li>When it is sent: when a visitor accepts, declines, or saves preferences; and on every page load for return visitors (to re-apply stored consent)<\/li>\n<li>Google Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<li>Google Terms of Service: https:\/\/policies.google.com\/terms<\/li>\n<\/ul>\n\n<p>If you disable Google Consent Mode in the plugin settings, no data is sent to Google by this plugin (though your own Google Analytics \/ GTM setup may still send data independently).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>truss-consent-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the Plugins menu in WordPress<\/li>\n<li>Go to <strong>Consent Manager<\/strong> in the WordPress admin menu<\/li>\n<li>Configure your banner layout, content, and colours on the Settings page<\/li>\n<li>Visit your site's homepage as a regular visitor, then go to <strong>Script Scanner \u2192 Run Scan<\/strong> to detect tracking scripts<\/li>\n<li>Review detected scripts and approve the ones you want to gate behind consent<\/li>\n<li>Enable <strong>Script Blocking<\/strong> in Settings \u2192 Advanced if you want scripts blocked before consent<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20make%20my%20site%20gdpr%20compliant%3F\"><h3>Does this plugin make my site GDPR compliant?<\/h3><\/dt>\n<dd><p>This plugin provides the technical tools required for consent management \u2014 a consent banner, script blocking, and Google Consent Mode v2. However, legal compliance depends on how you configure and use these tools, your privacy policy, and your specific situation. We recommend consulting a legal professional for advice specific to your business.<\/p><\/dd>\n<dt id=\"how%20does%20the%20script%20scanner%20work%3F\"><h3>How does the Script Scanner work?<\/h3><\/dt>\n<dd><p>The scanner uses a two-phase approach. First, it captures the real HTML output of your site's frontend (using output buffering on <code>wp_head<\/code> and <code>wp_footer<\/code>) and stores it in a transient. When you click \"Run Scan\" in the admin, it analyses this captured output against 14 known tracker signatures and writes results to the database. This approach is more accurate than HTTP fetching because it captures inline scripts, dynamically injected scripts, and WordPress-registered script handles.<\/p><\/dd>\n<dt id=\"does%20the%20script%20blocking%20engine%20break%20my%20site%3F\"><h3>Does the Script Blocking Engine break my site?<\/h3><\/dt>\n<dd><p>Script blocking can interfere with checkout flows, contact forms, or WooCommerce features if scripts are miscategorised. Always test on a staging site first. The plugin shows a warning in the admin when blocking is enabled. Necessary scripts (WordPress core, WooCommerce) are never blocked.<\/p><\/dd>\n<dt id=\"how%20does%20google%20consent%20mode%20v2%20work%20with%20gtm%3F\"><h3>How does Google Consent Mode v2 work with GTM?<\/h3><\/dt>\n<dd><p>The plugin injects the <code>gtag consent default<\/code> call before GTM loads. GTM reads the <code>dataLayer<\/code> consent state automatically. For full compliance, also enable Consent Mode in your GTM container settings and configure your GA4 \/ Ads tags to require consent.<\/p><\/dd>\n<dt id=\"where%20is%20consent%20data%20stored%3F\"><h3>Where is consent data stored?<\/h3><\/dt>\n<dd><p>In a first-party browser cookie named <code>wpcm_consent<\/code>. No data is sent to any external server by this plugin. The cookie contains a JSON object like <code>{\"necessary\":true,\"analytics\":true,\"marketing\":false,\"functional\":false}<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20woocommerce%3F\"><h3>Can I use this with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce functional scripts are detected separately and can be gated behind a Functional consent toggle. The plugin is designed to work alongside WooCommerce without interfering with cart or checkout functionality when configured correctly.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added Google Consent Mode v2 integration \u2014 injects denied default state before Google scripts load, updates signals on consent<\/li>\n<li>Added <code>gcm_enabled<\/code> setting in Advanced tab (enabled by default)<\/li>\n<li>Added <code>includes\/integrations\/<\/code> folder for platform integrations<\/li>\n<li>Bumped plugin version to 1.5.0<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added Script Blocking Engine \u2014 rewrites tracked script tags to <code>type=\"text\/plain\"<\/code> before consent<\/li>\n<li>Added <code>blocking_enabled<\/code> setting in Advanced tab<\/li>\n<li>Added <code>wpcm_register_script()<\/code> developer API function<\/li>\n<li>Added server-side consent cookie check for return visitors<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added Script Scanner \u2014 two-phase output buffering capture + 14 tracker signatures<\/li>\n<li>Added Scanner admin UI with Approve \/ Ignore \/ Reset actions<\/li>\n<li>Added Smart Toggle Visibility \u2014 granular toggles driven by scanner detection results<\/li>\n<li>Added <code>scanner_drives_toggles<\/code> setting in Consent Mode tab<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Cookie consent banner with Bar, Card, and Floating Box layouts<\/li>\n<li>Simple and Granular consent modes<\/li>\n<li>Full colour and content customisation<\/li>\n<li>Privacy Policy link support<\/li>\n<\/ul>","raw_excerpt":"Cookie consent banner with script detection, script blocking, and Google Consent Mode v2 \u2014 built for WooCommerce stores.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/298912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=298912"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gutenplugins"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=298912"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=298912"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=298912"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=298912"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=298912"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=298912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}