Documentation — Installation, Setup & Cookie Consent Configuration | Consenta
Documentation

Consenta — Documentation & Setup Guide

Installation, cookie scan, dialog/banner/widget & all cookie consent features explained step by step.

Installation & Activation

Consenta is installed as a standard WordPress plugin. You need WordPress 5.8+ and PHP 7.4+.

Install Plugin

1
Download ZIP file

Log in at My Account and download the latest consenta.zip.

2
Upload to WordPress

Go to WordPress Admin → Plugins → Add New → Upload Plugin. Select the ZIP file and click Install Now.

3
Activate Plugin

Click Activate Plugin. Consenta will appear in the left menu under Consenta.

4
Activate License

Go to Consenta → Settings → License and enter your license key (from the confirmation email).

Update tip: To update: deactivate the old plugin, upload the new one and activate — all settings are preserved.

Activate License

1
Copy license key

Find your key in the confirmation email (format: CONSENTA-XXXX-XXXX-XXXX) or at My Account → Licenses.

2
Enter in plugin

Open Consenta → Settings → License, paste the key and click Activate.

3
Check status

After successful activation the dashboard shows Active and your plan (Starter / Pro / Agency).

License on multiple sites: Pro = up to 10 sites, Agency = unlimited. Each new site requires separate license activation.

Customize Dialog / Banner / Widget

Consenta offers three consent elements: the consent dialog (modal), the cookie banner and the privacy widget (toggle). All are configurable under Consenta → Appearance.

Consent DialogModal window with granular cookie selection. Equal buttons for accept/reject.
Cookie BannerSlim banner at top or bottom of screen. Position, colors and texts customizable.
Privacy WidgetFloating icon at the page edge. Allows withdrawal of consent at any time.
Custom CSSCustom CSS for complete control over the design (Pro/Agency).

Google Fonts — GDPR-compliant self-hosted v1.12

Since version 1.12.0 you can pick a Google font in the dialog or banner editor — and Consenta makes sure it is delivered fully GDPR-compliant, without IP address transfer to Google. The LG München 2022 ruling (3 EO 1361/21) is automatically satisfied.

Pick a font

1
Open the editor

Under Consenta → Settings → Dialog (or Banner) you find the Font field. Pick the entry "Google Font (GDPR-compliant self-hosted)".

2
Pick from 160 top fonts

A picker with 160 curated families opens (Inter, Roboto, Open Sans, Poppins, Montserrat, Playfair Display, Lora, Noto Sans JP/KR/SC, Cairo, Vazirmatn …). Search field + category filter (sans-serif / serif / display / handwriting / monospace) — live preview with the actual font.

3
Save — auto-download

Click Save: Consenta downloads the woff2 files (latin + latin-ext subsets) and CSS locally to wp-content/uploads/consenta-fonts/{slug}/. The same directory holds the OFL or Apache-2.0 license file (deployment requirement per OFL §3 / Apache §4(a)).

Use a different Google font (all 1500+)

If the top-160 selection isn't enough, click "Use other Google font" in the picker and type any slug from the Google Fonts catalogue (crete-round, roboto-flex, playfair-display-sc, noto-sans-display …). Consenta derives the family name from the slug and downloads it on next save. Non-existent fonts produce a concrete error.

How zero requests to Google are guaranteed

  • On the frontend the CSS loads from your own domain (wp-content/uploads/consenta-fonts/{slug}/{slug}.css) — the @font-face declarations point to local woff2 files.
  • There are no connections to fonts.googleapis.com or fonts.gstatic.com on the frontend. The visitor IP stays with you.
  • In the admin area the Google CDN is loaded for the picker preview — legally unproblematic because the admin is a data subject of their own site and consciously works with the editor.

Auto-verify: protection against lost downloads

On every Consenta admin page load, Consenta checks whether the selected fonts are actually present locally. If a family's CSS is missing (e.g. because the initial save hit a PHP timeout or a brief outbound block), the download is silently re-attempted. If that also fails, a red admin notice surfaces with the concrete error (HTTP code, missing write permission, SSL cert problem) — no more silent fallback to system-ui.

SSL issue on MAMP/XAMPP/Local-by-Flywheel? On cURL error 60: SSL certificate problem (broken CA bundle on local dev hosts or corporate proxies) Consenta retries the download once automatically with sslverify=false. The downloaded content is static fonts without credentials, woff2 URLs are whitelisted against fonts.gstatic.com — MITM risk is bounded.

Manage Languages v1.8

Consenta ships all dialog, banner and widget texts in 34 languages out of the box. The current language is detected automatically via URL prefix (/en/, /fr/, …), consenta_lang cookie or WordPress locale — nothing to configure, it just works.

Customize texts

1
Open Languages tab

Under Consenta → Settings → Languages you find all 34 languages. Each shows its status: Default (unchanged) or X/20 customized (when you have overridden texts).

2
Click Edit

Expand the target language with "Edit" — 20 fields appear (title, description, button labels, category names, banner text etc.). Each customized field is marked with an orange border and asterisk.

3
Save

Click Save to persist your changes. The dedicated consent-text hash ensures material text changes are captured in the audit trail without invalidating existing consents.

4
Reset

The Reset button discards all customizations for this language and reverts to the shipped defaults.

Automatic translation

In the top-right of the Languages tab you find the Translation source dropdown — defaults to German. When you open another language for editing, a small grey line with the source text appears under each field, plus a 🌐 icon for single-field translation.

The 🌐 Translate all from source button at the bottom translates all non-customized fields with one click — sequentially with a progress indicator to stay within MyMemory's free API quota. Customized fields (orange border) are skipped by default. A confirm dialog offers to override if you want to translate them anyway.

Choose a different source: Any of the 34 languages can be the source. If you're editing EN and your DE texts have legal nuances to mirror in EN, edit DE first and translate from DE. If your EN source texts are better-curated, set the source to EN.
Tip: Translation results are cached server-side for 7 days as WP transients. Re-runs of the same text cost no quota and are instantaneous.

MyMemory translation service

For auto-translation MyMemory is used — free, no API key, no signup. Your site's admin email is sent as identification parameter, raising the anonymous daily limit (~5,000 chars) to ~50,000 chars/day. For most sites that's enough to fill all 20 fields × active languages.

Rich Text Editor for long texts v1.8

The three long-text fields consent-text (dialog description), banner-text (banner content) and blocked-content-desc (blocked placeholder text) use a full TinyMCE editor with toolbar — instead of a single-line text input.

Available formatting

  • Bold, Italic, Underline
  • Bullet lists and numbered lists
  • Insert / remove link (with target, rel)
  • Paragraphs (<p>) and line breaks
  • Remove formatting, Undo/Redo
  • Switch to Text/Code view (edit HTML directly)
Whitelist sanitization: Only safe HTML tags are allowed: <a href>, <strong>, <em>, <b>, <i>, <u>, <br>, <span class>, <p class>. <script>, <style>, inline events and style="" attributes are stripped for security.

Performance

The editor loads lazily — TinyMCE instances are created only when you click "Edit" on a language and torn down when you close. Without this lazy pattern, 34 languages × 3 long-text fields would mean 102 editor instances loaded at once — the admin would freeze.

Google Consent Mode v2

Google Consent Mode v2 is fully supported. Consenta automatically sends the correct consent signals to Google services.

Setup

1
Enable GCM

Under Consenta → Settings → Google Consent Mode enable the toggle.

2
Check parameters

Consenta automatically sets: ad_storage, analytics_storage, ad_user_data and ad_personalization based on the visitor consent decision.

Note: No manual GTM configuration needed. Consent signals are sent automatically before Google tags load.

Configure IAB TCF

Pro Feature: Available from the Pro plan.

The IAB Transparency & Consent Framework 2.0 is fully supported. TC strings are automatically generated and managed.

1
Enable TCF

Under Consenta → Settings → IAB TCF enable the toggle.

2
Configure vendors

Select the relevant IAB vendors for your website. The TC string is generated automatically.

Enable Geolocation

Pro Feature: Available from the Pro plan.

Shows the consent dialog only to visitors from the EU or configurable regions. Visitors outside the configured regions see no banner.

1
Enable Geolocation

Under Consenta → Settings → Geolocation enable the toggle.

2
Select regions

Select the countries/regions where the consent dialog should be shown. Default: all EU countries.

Service Worker Blocking v1.4

Consenta uses a three-layer blocking mechanism that intercepts cookies and scripts before execution. Service Worker Blocking is the third and deepest layer and activates automatically in full-consent mode.

The 3 Blocking Layers

Layer Description
Layer 1 — Script BlockingBlocks known third-party scripts based on a blocklist before they are inserted into the DOM.
Layer 2 — Cookie BlockingMonitors document.cookie via setter override and prevents writing unapproved cookies.
Layer 3 — Service WorkerIntercepts outgoing network requests at the service worker level and blocks requests to tracking endpoints before they leave the browser.
Automatic: Service Worker Blocking requires no manual configuration. It is registered automatically when full-consent mode is enabled under Consenta → Settings → Blocking.
Note: The service worker is only activated in full-consent mode (not in simple cookie banner mode). This guarantees gapless blocking of all unapproved tracking requests.

Browser API Blocking v1.5

In full-consent mode, Consenta overrides specific browser APIs to ensure that push notifications, background sync and cache access are only possible after consent is given.

Blocked APIs

API Description
Notification.requestPermissionPrevents browser push notification dialogs until consent is given
PushManager.subscribeBlocks registration of web push subscriptions
SyncManager.registerPrevents registration of background sync tasks
caches.openBlocks access to the Cache Storage API (except for whitelisted prefixes)

Whitelisted Cache Prefixes

The following cache prefixes are exempt from blocking and are always allowed:

  • consenta — Consenta-internal caches
  • wp- — WordPress core caches (e.g. wp-offline)
  • workbox — Workbox service worker caches

Automatic Restoration

As soon as a visitor gives consent, all blocked APIs are automatically restored. Pending calls are not replayed — they must be re-executed by the application after consent.

Note: Browser API Blocking is only active in full-consent mode. In simple cookie banner mode all browser APIs remain unchanged.

Webhooks v1.5

Pro Feature: Available from the Pro plan.

Consenta can send real-time HTTP POST notifications to one or more configured HTTPS URLs when consent events occur. This lets you integrate consent events into external systems, CRMs or analytics pipelines.

Setup

1
Add webhook URL

Go to Consenta → Settings → Webhooks and enter an HTTPS URL. Only HTTPS endpoints are accepted.

2
Select events

Select which consent events should be sent to the endpoint: consent.new, consent.update, consent.revoke or consent.optout.

3
Test webhook

Click Send Test to send a test payload to the configured URL and verify the connection.

Supported Events

Event Description
consent.newVisitor gives consent for the first time
consent.updateVisitor updates their existing consent
consent.revokeVisitor fully revokes their consent
consent.optoutVisitor rejects all non-necessary categories

Signature Verification (HMAC-SHA256)

Every webhook payload is signed with HMAC-SHA256. The signature is sent in the X-Consenta-Signature header. Verify it server-side to ensure payload authenticity:

// PHP example for signature verification
$secret = 'your-webhook-secret';
$payload = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_CONSENTA_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $sig)) { http_response_code(401); exit; }

Payload Structure

{
  "event": "consent.new",
  "uid": "a1b2c3d4e5",
  "timestamp": 1713200000,
  "categories": ["necessary", "functional", "statistics"],
  "site_url": "https://example.com",
  "version": "1.5"
}
Tip: Your endpoint must respond with HTTP 200 within 5 seconds, otherwise the webhook is marked as failed. Failed webhooks are retried up to 3 times.

WooCommerce v1.4

The WooCommerce integration automatically detects all cookies set by WooCommerce and assigns them to the correct consent categories. Tracking cookies from WooCommerce Analytics and marketing extensions are loaded only after consent.

Automatically Blocked Elements

  • WooCommerce Analytics — Tracking cookies (wp_woocommerce_session_*) are assigned to the Statistics category.
  • Marketing pixels — Facebook Pixel, Google Ads Conversion and other remarketing scripts are blocked until marketing consent is given.
  • Session cookies — Cart and session cookies are categorized as Necessary and never blocked.

Declared Cookies

Cookie Category Description
woocommerce_cart_hashNecessaryCart hash for cache invalidation
woocommerce_items_in_cartNecessaryStores whether items are in the cart
wp_woocommerce_session_*FunctionalUnique session ID for checkout
tk_aiStatisticsWooCommerce Analytics tracking identifier

Filter Hook for Developers

Use the consenta_woo_cookie_map filter to override the automatic categorization of WooCommerce cookies:

add_filter( 'consenta_woo_cookie_map', function( $map ) {
    // Eigene Zuordnung hinzufügen / Override mapping
    $map['my_custom_cookie'] = 'marketing';
    return $map;
});

Gutenberg Blocks v1.11

Consenta ships four native Gutenberg blocks — all on block API v3 (WordPress 6.9 compatible) and bundled in their own "Consenta" category in the block inserter. Open the block inserter, search for "Consenta" or look at the top of the category list.

Cookie Declaration

Renders an auto-generated table of all cookies, domains and resources — perfect alternative to the [consenta_cookies] shortcode on your Cookie Declaration page. Attributes in the right sidebar: filter by purpose (e.g. Marketing only), toggle "Type" and "Lifespan" columns.

Consent Status

Shows the visitor their current consent status: per category a ✓ (accepted) or ✗ (rejected), plus the date of last consent and optionally an "Edit settings" button that reopens the dialog. Two display variants: Card (bordered) or inline.

Conditional Content

The most powerful block in the suite — shows or hides nested content depending on consent status. Ideal for videos, maps, tracking pixels.

1
Tabbed UI with two slots

The editor shows two tabs: Conditional (appears after consent) and Fallback (appears before consent). Both tabs are real InnerBlocks zones — you can drop any blocks in: images, groups, columns, custom embeds. The inactive tab remains saved, only visually hidden.

2
Wrap an existing block

Select an existing block (YouTube embed, map, …), click Transform to → Conditional Content in the block menu — the block moves automatically into the Conditional slot, the Fallback stays empty for you to fill. Analogous to the core Group block.

3
Choose category

In the right sidebar under Consent condition → Required category you set which consent purpose must be active: Functional, Statistics, Marketing or Media. Essential is not available — it's always granted and would defeat the purpose.

Tip: The Fallback slot is pre-filled with two CMP Accept Buttons (primary "Accept", secondary "Settings") in a centered flex group — you can restyle, delete or replace them with your own buttons.

CMP Accept Button

Standalone button block to grant consent for a specific purpose or to reopen the consent dialog. Can be placed anywhere in the post — especially in the Fallback slot of Conditional Content, where it automatically inherits the purpose via block context. Full block toolbar: alignment, background/text color, gradient, font size, font family, padding, margin, border and radius.

1
Choose action

In the sidebar under Action choose between "Accept purpose" (grants consent for a category) and "Open dialog" (reopens the consent dialog, ideal for "Edit settings" buttons).

2
Purpose inheritance

If you place the button in the Fallback slot of a Conditional Content block, it inherits the configured purpose automatically via block context — no double-configuration needed. Outside, set the purpose manually via Purpose override.

3
Style & label

Two style presets Primary (brand color, filled) and Secondary (outline, transparent) — fully overridable via the block toolbar if desired. The label is RichText-editable directly in the editor ("Accept", "Open settings", …).

Legal note: The button stays GDPR-compliant as long as its label clearly names the purpose it activates and doesn't mislead the user. For manual implementations the HTML attribute data-consenta-accept-purpose="marketing" (or other categories) is still available — e.g. on custom buttons outside the block editor.

CMP-Import v1.4

Migrate your existing cookie configuration from CookieBot, OneTrust, Usercentrics, Borlabs Cookie, Complianz or GDPR Cookie Compliance to Consenta in a few clicks. The importer transfers cookie lists, categories and descriptions.

Supported CMPs

  • CookieBot — CSV export from the Cookiebot dashboard
  • OneTrust — JSON export from the OneTrust administration
  • Usercentrics — CSV export from the Usercentrics dashboard
  • Borlabs Cookie — Detected automatically, no export needed (direct DB access)
  • Complianz — Detected automatically, no export needed (direct DB access)
  • GDPR Cookie Compliance — Detected automatically, no export needed (direct DB access)

Step-by-Step Guide

1
Export from previous CMP

Export your cookie list from CookieBot (CSV), OneTrust (JSON) or Usercentrics (CSV). For Borlabs Cookie, Complianz and GDPR Cookie Compliance, Consenta detects the installed CMP automatically — no export needed.

2
Open Importer

Go to Consenta → Tools → CMP-Import and select your previous CMP from the dropdown.

3
Upload file

Upload the exported file. Consenta detects the format automatically and shows a preview of the cookies to import.

4
Review mapping

Review the automatic category mapping. The 6 Consenta categories are mapped to the categories of the previous CMP. Adjust individual mappings if needed.

5
Start import

Click Import. Existing cookies are not overwritten, new ones are added.

Tip: After import we recommend a fresh cookie scan to ensure all currently active cookies are captured.

Auto-Scan v1.4

Auto-Scan runs the cookie scan automatically at regular intervals and notifies you via email when new cookies are found.

Setup

1
Enable Auto-Scan

Go to Consenta → Cookie Scanner → Auto-Scan and enable the toggle.

2
Choose interval

Choose the scan interval: Daily, Weekly or Monthly. Default: Weekly.

3
Email notification

Enter one or more email addresses (comma-separated). You will receive an email when new or unknown cookies are found.

Note: Auto-Scan uses WP-Cron. On low-traffic sites we recommend a real server cronjob for reliable intervals.

Logs & Reports

Consenta logs every consent decision for GDPR proof-of-consent requirements. Under Consenta → Logs you find all entries.

Consent LogTimestamp, selected categories, browser, anonymized IP
HTML ReportsAcceptance rate, rejection rate, most popular categories, device breakdown
CSV ExportAll logs exportable as CSV for external analysis or audit
Time Range FilterFilter by date for targeted evaluations

Multi-Site Dashboard

Agency Feature: Available with Agency license only.

Manage cookie consent settings for all your WordPress sites centrally. Consent statistics for all sites at a glance.

1
Copy remote token

Consenta → Sites → Copy Site Token (generated on the main site).

2
Paste on remote site

On the remote site: Consenta → Settings → Multi-Site → Paste token and enter main site URL.

3
Test connection

Click Test Connection. The remote site now sends consent data to the main site.

REST API v1.4

Agency Feature: Available with Agency license only.

The REST API enables programmatic management of consent settings, cookie lists, logs and remote sites. All endpoints use the namespace /wp-json/consenta/v1/.

Authentication

All endpoints (except /log) require authentication. Generate an API token under Consenta → Settings → API and send it as a Bearer token in the Authorization header:

Authorization: Bearer <your-api-token>

POST /consenta/v1/log

Stores a consent entry. This endpoint is called automatically by the frontend script and requires no authentication (public).

ParameterTypDescription
categoriesarrayAccepted consent categories, e.g. ["necessary","statistics"]
uidstringAnonymous visitor identifier (generated by frontend)
timestampintegerUnix timestamp of the consent decision
user_agentstringBrowser user agent (optional, otherwise read from request)
tcf_stringstringIAB TCF TC string if TCF is active (optional)
// Example request
POST /wp-json/consenta/v1/log
Content-Type: application/json

{
  "categories": ["necessary", "functional", "statistics"],
  "uid": "a1b2c3d4e5",
  "timestamp": 1713200000
}

GET /consenta/v1/config

Returns the current consent configuration (cookie list, categories, dialog settings, blocking level). Requires API token.

Response FieldTypDescription
cookiesarrayList of all declared cookies with name, category, provider, duration
categoriesarrayConfigured consent categories with label and description
blocking_levelintegerActive blocking level (1–3)
gcm_enabledbooleanGoogle Consent Mode v2 active
tcf_enabledbooleanIAB TCF active
dialog_typestringDialog type: modal, banner or widget
// Example request
GET /wp-json/consenta/v1/config
Authorization: Bearer sk_live_xxxxxxxxxxxxx

POST /consenta/v1/revoke

Revokes a visitor consent by UID. Useful for data deletion requests (GDPR Art. 17). Requires API token.

ParameterTypDescription
uidstringAnonymous visitor identifier whose consent should be revoked (required)
reasonstringReason for revocation, e.g. user_request or gdpr_erasure (optional)
// Example request
POST /wp-json/consenta/v1/revoke
Authorization: Bearer sk_live_xxxxxxxxxxxxx
Content-Type: application/json

{ "uid": "a1b2c3d4e5", "reason": "gdpr_erasure" }

GET /consenta/v1/stats

Returns aggregated consent statistics. Requires API token.

Query ParameterTypDescription
fromstringStart date in format YYYY-MM-DD (optional, default: 30 days ago)
tostringEnd date in format YYYY-MM-DD (optional, default: today)
group_bystringGrouping: day, week or month (optional, default: day)
Response FieldTypDescription
total_decisionsintegerTotal number of consent decisions in the period
accept_ratefloatAcceptance rate (0.0–1.0)
reject_ratefloatRejection rate (0.0–1.0)
category_ratesobjectOpt-in rate per category, e.g. {"statistics": 0.72, "marketing": 0.34}
timelinearrayTime series with data points per group_by interval
// Example request
GET /wp-json/consenta/v1/stats?from=2026-03-01&to=2026-03-31&group_by=week
Authorization: Bearer sk_live_xxxxxxxxxxxxx

GET /consenta/v1/remote/settings

Retrieves the consent settings of a connected remote site. Used by the multi-site dashboard. Requires API token + remote token.

HeaderDescription
AuthorizationBearer <api-token> — API token of the main site
X-Consenta-Remote-Token<remote-token> — Token of the remote site (generated under Consenta → Sites)
// Example request
GET /wp-json/consenta/v1/remote/settings
Authorization: Bearer sk_live_xxxxxxxxxxxxx
X-Consenta-Remote-Token: rt_abc123def456

GET /consenta/v1/remote/entities

Lists all connected remote sites with status, last sync and consent summary. Requires API token.

Response FieldTypDescription
entitiesarrayList of remote sites
entities[].urlstringURL of the remote site
entities[].statusstringConnection status: connected, disconnected, error
entities[].last_syncstringISO 8601 timestamp of the last sync
entities[].total_consentsintegerTotal number of stored consent entries for this site
// Example request
GET /wp-json/consenta/v1/remote/entities
Authorization: Bearer sk_live_xxxxxxxxxxxxx

Error Codes

CodeDescription
401Missing or invalid API token
403API access not included in current plan (Agency required)
404Resource not found (e.g. unknown UID for /revoke)
422Invalid parameters (e.g. missing required field)
429Rate limit exceeded (max. 120 requests/minute)
Rate Limiting: The API allows max. 120 requests per minute per token. Current usage is returned in the response headers X-RateLimit-Remaining and X-RateLimit-Reset.

White Label Setup

Agency Feature: Available with Agency license only.

Replace Consenta branding with your own. Configurable under Consenta → Settings → White Label.

LogoUpload custom logo for dashboard and consent dialog
ColorsCustom accent color for buttons and elements
Plugin NameCustom name instead of Consenta in WordPress menu
Dashboard TitleCustom title in plugin header

RTL-Support v1.4

Consenta supports right-to-left languages (Arabic, Hebrew, Farsi and others) fully automatically. When the HTML attribute [dir="rtl"] is set on the page, all consent elements — dialog, banner, widget and admin dashboard — are automatically mirrored.

No configuration needed: RTL support requires no manual setting. WordPress sets dir="rtl" automatically when an RTL language is configured as site language. Consenta detects this and adjusts layout, text alignment and icon positions accordingly.

Security v1.7

HMAC-SHA256 Consent Cookie (consenta_auth)

Since v1.7.0, every consenta_auth cookie is server-side signed with HMAC-SHA256. The WordPress AUTH_KEY from wp-config.php is used as the secret — this key is unique per WordPress installation and never leaves the server.

On every consent verification the server recomputes the expected signature and compares it using hash_equals() — this constant-time comparison prevents timing attacks. Cookie manipulation by visitors or browser extensions is reliably detected and rejected.

Requirement: Make sure your WordPress AUTH_KEY is set in wp-config.php and sufficiently random (at least 64 characters). New WordPress installations generate this automatically.

SSRF Protection

Since v1.7.0, all outbound HTTP calls from Consenta (webhook delivery, cookie scanner, geolocation lookup) pass through an SSRF protection check. The following targets are blocked:

  • Private IPv4 ranges (RFC1918): 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
  • Loopback: 127.0.0.0/8 and ::1
  • Cloud metadata endpoints: 169.254.169.254 (AWS/GCP/Azure Instance Metadata Service)
Note: If you need to deliver webhooks to internal development endpoints (e.g. local test servers), this is not possible in production. Use a publicly reachable staging server or a tunnel service such as ngrok instead.

Token Management

Since v1.7.0, API tokens are stored as SHA-256 hashes in the database — the plaintext token only leaves the server once, immediately after generation. It cannot be retrieved afterwards.

1
Generate token

Go to Consenta → Settings → API and click Generate Token. The plaintext token is shown once.

2
Save token immediately

Copy the token and store it securely (e.g. in a password manager). After closing the dialog the plaintext is no longer retrievable.

3
Regenerate on loss

If a token is lost, revoke it and generate a new one. The old token immediately loses its validity.

Security Best Practices for Hosting

HTTPSEnsure your entire WordPress installation is reachable via HTTPS. Consent cookies are only transmitted securely over HTTPS.
Current PHP VersionUse PHP 8.1 or higher. Older PHP versions no longer receive security updates.
WordPress UpdatesKeep WordPress core, all plugins and themes up to date. Enable automatic minor updates (security releases).
wp-config.php SecretsMake sure all secret keys and salts in wp-config.php are set and sufficiently random. Use the WordPress Secret Key Generator.

Troubleshooting

Consent dialog not showing

Check: (1) Is the license active? (2) Is the dialog enabled under Consenta → Appearance? (3) Are there JavaScript errors in the browser console? (4) Is a caching plugin active? Clear the cache.

Cookies set despite rejection

Check the blocking level under Consenta → Settings. Level 1 blocks only known cookies. Increase to Level 2 or 3 for more comprehensive blocking. Run a new cookie scan to detect all cookies.

Google Consent Mode not sending signals

Check: (1) Is the GCM toggle enabled under Settings? (2) Is the Consenta script loaded before the GTM script? (3) Check the browser console for errors.

License key not working

Check: (1) No spaces before/after the key. (2) The website URL matches the one used during activation. (3) The license has not expired. If problems persist: Contact support.

FAQ

Does Consenta work with caching plugins?

Yes. Consenta works entirely client-side. Cookie blocking and consent dialog work independently of server-side caching.

Do I need Consenta in addition to Google Consent Mode?

Yes. Google Consent Mode is just the interface — you need a Consent Management Platform (CMP) like Consenta that sends the consent signals.

How many languages are supported?

34 languages. Compatible with WPML and Polylang.

Where do I find my license after purchase?

In the confirmation email and at My Account → Licenses.

SUPPORT

Still have questions?

Our support team usually responds within 24 hours.

Contact Support FAQ