Gravity Forms (WordPress)
Put verifiable consent evidence behind an existing Gravity Forms form without rebuilding it.
Evidence tooling, not legal advice. Whether a capture satisfies a particular consent requirement is for your counsel to decide.
Set up
- Get your client id (it starts with tnt_) from Magic Setup in the dashboard at capchacloud.com/app. Your site origin must be allowlisted there, or the widget will not boot.
- Find your form's numeric id (Forms, then the id column). Gravity Forms renders it as <form id="gform_ID">.
- Add a Custom HTML block (or a footer snippet plugin) on the SAME page, below the form, and paste the snippet. Replace YOUR_CLIENT_ID and the 1 in #gform_1.
- Submit a test entry. The form still submits normally; the consent checkboxes and disclosure appear directly under the form and the capture is recorded.
Snippets
Wrap the form (footer or Custom HTML block under the form)wrap
<script src="https://capchacloud.com/v1/widget.js" async></script>
<capcha-auth
data-capcha-client-id="YOUR_CLIENT_ID"
data-capcha-wrap="#gform_1"
data-capcha-company="Your Company Name"
data-capcha-privacy-url="https://example.com/privacy"
data-capcha-terms-url="https://example.com/terms"
data-capcha-campaign-id="gravity-forms"
data-capcha-form-id="gform-1"></capcha-auth>
Late bind: forms rendered by AJAX or multi-step (Gravity fires gform_post_render after each render)latebind
<script src="https://capchacloud.com/integrations/capchacloud-browser.js"></script>
<script>
var cc = CapchaCloudBrowser.init({ clientId: "YOUR_CLIENT_ID" });
cc.load();
function capchaWrap(selector, formId) {
if (!document.querySelector(selector)) return;
if (document.querySelector('capcha-auth[data-capcha-wrap="' + selector + '"]')) return;
cc.mount(null, { wrap: selector, company: "Your Company Name", privacyUrl: "https://example.com/privacy", termsUrl: "https://example.com/terms", campaignId: "gravity-forms", formId: formId });
}
jQuery(document).on("gform_post_render", function (event, formId) {
capchaWrap("#gform_" + formId, "gform-" + formId);
});
</script>
What is tested
Every snippet on this page is checked by an automated test that loads the page, takes the snippet out of it, and runs the real /widget.js in a browser DOM: the attributes must be exactly the ones the widget reads, the form selector must match exactly one form, and a test submission must produce a capture request carrying your campaign and form ids.
What is not verified
- We have not run this inside a live WordPress site with the Gravity Forms plugin (needs their licence). The automated test uses the form markup Gravity Forms renders (form id gform_N, plain inputs) and the real widget.js.
- The gform_post_render event name is taken from Gravity Forms documentation; the test simulates it, it does not use their code.
This is not a marketplace app, partner listing or certified integration of Gravity Forms. It is a snippet for your own pages.