GDPR-ready forms

The compliance work the GDPR actually asks for — consent, deletion deadlines, access and erasure requests — built into the plugin, not bolted on.

wp-admin · QueryCue — privacy & compliance
Required consent — enforced and recordedArt. 7Free
Automatic deletion after a retention periodArt. 5Free
Data access requests via WordPress toolsArt. 15Free
Erasure requests — submissions and uploadsArt. 17Free
IP stored only as a salted hashArt. 5Free
Uploaded files encrypted at restArt. 32Pro

Compliance you can actually operate.

„Self-hosted” answers where the data lives — on your server, never a third party’s cloud. This is the other half: the tools you need to run a form the way the GDPR expects, without stitching three plugins together.

Ask for consent and have it enforced, not just displayed. Set a retention period and let old entries delete themselves. When someone exercises their right to access or erasure, answer it through WordPress’s own privacy tools — the ones your DPO already knows. And know that what you do keep is minimised: an IP address is never stored in the clear.

Most of it is in the free edition. It isn’t a lawyer, and it won’t write your privacy policy — but the mechanics that a compliant form depends on are there and working

Four things the regulation asks of a form.

Consent that has to be given — and is kept on file

Add a consent checkbox with your own wording and a link to your privacy policy. Turn on required consent and the server rejects any submission without the box ticked. When it is ticked, QueryCue freezes a record with the submission: the exact wording shown, a version fingerprint of that text, and the moment of agreement.

Data that deletes itself

Choose how long entries may live. A daily job then removes anything older — and the encrypted files that came with it. It stays off until you switch it on, and shows you how many entries the first run would touch before you commit.

Access & erasure, the WordPress way

Requests for access or deletion run through WordPress’s built-in privacy tools. Ask for an export and matching submissions are included; ask for an erasure and they’re removed, uploads and all. Entries are matched by the person’s email address.

Only what's needed, kept how it should be

The visitor’s IP is never stored as-is — only a salted hash, used for rate-limiting. Prefer to keep nothing in WordPress at all? Switch storage off and route leads by email or webhook instead.

The parts an audit actually looks at.

Consent that counts

A ticked box the server never checks isn’t consent. Here it’s enforced in PHP before anything is stored, so „they agreed” is a fact about the submission, not a hope about the browser.

Right to be forgotten, for real

Erasure doesn’t leave files behind. Deleting a submission — by request or by retention — removes its uploaded documents from disk too, not just the database row.

Nothing loads from elsewhere

By default a form pulls nothing from another server: system fonts, no CDN, a honeypot instead of reCAPTCHA. Opt-in extras like hCaptcha or Calendly are the only exceptions — and the plugin says so.

Encryption where it earns its keep.

Uploaded files are encrypted the moment they land, and stored secrets — a Calendly token, a captcha key, a webhook signing secret — are encrypted in the database rather than sitting in plain text. Both use authenticated encryption from libsodium with a 256-bit key.

That key lives in your wp-config.phpnot in the database — so a database dump alone can’t decrypt anything. It’s the kind of measure Art. 32 asks you to be able to point to.

To be precise about scope: encryption at rest covers uploaded files and stored secrets. Answer text is held in your own database on your own server — see Self-hosted & data ownership for where that data lives and who can reach it.

Great for

Compliance is a stack, not a checkbox.

These carry the rest of the privacy story:

Run forms your DPO can sign off on.

Consent, retention and data-subject requests are free. Encrypted uploads come with Pro.