Title: Checkout Consent Checkbox for WooCommerce – Gatemi
Author: gatemi
Published: <strong>September 23, 2026</strong>
Last modified: October 22, 2026

---

Search plugins

![](https://ps.w.org/gatemi-checkout-consent/assets/banner-772x250.png?rev=3709430)

![](https://ps.w.org/gatemi-checkout-consent/assets/icon-256x256.png?rev=3709430)

# Checkout Consent Checkbox for WooCommerce – Gatemi

 By [gatemi](https://profiles.wordpress.org/gatemi/)

[Download](https://downloads.wordpress.org/plugin/gatemi-checkout-consent.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/gatemi-checkout-consent/#description)
 * [Reviews](https://wordpress.org/plugins/gatemi-checkout-consent/#reviews)
 *  [Installation](https://wordpress.org/plugins/gatemi-checkout-consent/#installation)
 * [Development](https://wordpress.org/plugins/gatemi-checkout-consent/#developers)

 [Support](https://wordpress.org/support/plugin/gatemi-checkout-consent/)

## Description

Extra tick boxes at checkout: your terms, an age confirmation, a marketing
 opt-
in. Up to five, each with its own wording and its own refusal message.

#### A consent that is not recorded is not a consent

The point of the box is being able to show, months later, that this customer
 ticked
it. Every “just add a checkbox” snippet validates the tick and throws it away, which
leaves a shop with a checkout that looks compliant and an order file that proves
nothing. Here the acceptance lands on the order, and every order screen carries 
a Consent panel showing it.

#### The words they agreed to are stored with the agreement

Rewrite your terms next month and a past order still says what was actually
 agreed
to, because the **wording as it was shown** is written onto the order beside the
tick — not a reference to a setting that has since moved on. The time is recorded
too, because “when” is half of what a consent record is for.

#### Required means required

The `required` attribute is a courtesy to the browser and nothing more —
 anybody
can post past it. A required box that was not ticked stops the order on the server,
where the order is actually created.

#### What you get

 * Up to five consent boxes above the pay button — on the classic checkout and on
   the Checkout block
 * A link inside the wording, so “I agree to the terms” points at your terms
 * Your own message for each box when it is not ticked
 * Each box required or optional
 * The acceptance, the exact wording and the time on every order
 * Uninstalling never removes what a customer agreed to
 * No JavaScript, no external service, nothing phoned anywhere

## Screenshots

[⌊A required consent box above the pay button on the Checkout block.⌉⌊A required
consent box above the pay button on the Checkout block.⌉[

A required consent box above the pay button on the Checkout block.

[⌊The settings screen: five rows, each with its wording, its refusal message and
its two switches.⌉⌊The settings screen: five rows, each with its wording, its refusal
message and its two switches.⌉[

The settings screen: five rows, each with its wording, its refusal message and its
two switches.

[⌊The Consent panel on an order, with the wording as it was shown and the time it
was agreed.⌉⌊The Consent panel on an order, with the wording as it was shown and
the time it was agreed.⌉[

The Consent panel on an order, with the wording as it was shown and the time it 
was agreed.

## Installation

 1. Install and activate the plugin.
 2. Go to WooCommerce  Checkout Consent.
 3. Write what your box should say and save.

## FAQ

### Where do the boxes appear?

Immediately above the Place order button, on both checkouts. Agreeing to
 terms 
three screens earlier is not agreeing to anything a shopper remembers reading. The
classic checkout prints them through WooCommerce’s own hook just above the button;
the Checkout block draws them in its Order information step through WooCommerce’s
checkout-fields API, which refuses a required box that was not ticked and writes
the tick onto the order — and this plugin then records the wording and the time 
beside it, exactly as on the classic checkout.

### Does the link in my wording work on the Checkout block?

The words do; the link does not. WooCommerce’s checkout-fields API shows a
 field’s
wording as plain text, so on the block “I agree to the terms” is shown without its
link. Keep the link to your terms in the block’s own terms text as well, which is
what most block-checkout shops already have.

### What happens if I change my terms later?

Past orders keep saying what was agreed at the time. The wording is stored
 with
the acceptance rather than looked up when the order is read.

### Does uninstalling delete the record?

No. The acceptances stay on the orders — they are the record the checkbox
 existed
to create.

### Can I edit the checkout fields themselves?

That is [Gatemi Checkout Fields for WooCommerce](https://gatemi.com/plugins/checkout-fields-for-woocommerce/),

a separate plugin sold on gatemi.com: it renames, reorders, requires and hides the
checkout’s own fields, and adds fields of your own. The two run alongside each other.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Checkout Consent Checkbox for WooCommerce – Gatemi” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ gatemi ](https://profiles.wordpress.org/gatemi/)

[Translate “Checkout Consent Checkbox for WooCommerce – Gatemi” into your language.](https://translate.wordpress.org/projects/wp-plugins/gatemi-checkout-consent)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/gatemi-checkout-consent/),
check out the [SVN repository](https://plugins.svn.wordpress.org/gatemi-checkout-consent/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/gatemi-checkout-consent/)
by [RSS](https://plugins.trac.wordpress.org/log/gatemi-checkout-consent/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Fixed: ticked boxes stay ticked when the classic checkout refreshes after an 
   address or shipping change.
 * Fixed: an ampersand in a box’s wording now shows correctly on the Checkout block.
 * Fixed: a box saved without an id now gets a stable one taken from its wording.

#### 1.0.0

 * First release.
 * Up to five consent boxes above the pay button, each required or optional and 
   each with its own refusal message.
 * The acceptance, the exact wording shown and the time written onto the order, 
   and a Consent panel on both order screens.
 * Required boxes enforced on the server, where the order is created — on the classic
   checkout through WooCommerce’s own checkout process, on the Checkout block through
   WooCommerce’s checkout-fields API.
 * Uninstalling removes the boxes and never what a customer agreed to.
 * No JavaScript, no external service, nothing phoned anywhere.

## Meta

 *  Version **1.0.1**
 *  Last updated **14 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [checkout](https://wordpress.org/plugins/tags/checkout/)[consent](https://wordpress.org/plugins/tags/consent/)
   [GDPR](https://wordpress.org/plugins/tags/gdpr/)[terms and conditions](https://wordpress.org/plugins/tags/terms-and-conditions/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/gatemi-checkout-consent/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/gatemi-checkout-consent/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/gatemi-checkout-consent/reviews/)

## Contributors

 *   [ gatemi ](https://profiles.wordpress.org/gatemi/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/gatemi-checkout-consent/)