{"id":371535,"date":"2026-09-23T13:38:48","date_gmt":"2026-09-23T13:38:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gatemi-checkout-consent\/"},"modified":"2026-09-23T13:38:21","modified_gmt":"2026-09-23T13:38:21","slug":"gatemi-checkout-consent","status":"publish","type":"plugin","link":"https:\/\/kn.wordpress.org\/plugins\/gatemi-checkout-consent\/","author":23559004,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Gatemi Checkout Consent","header_author":"Gatemi","header_description":"Consent boxes above the pay button \u2014 your terms, an age confirmation, a marketing opt-in \u2014 with what was agreed, and when, recorded on the order.","assets_banners_color":"133394","last_updated":"2026-09-23 13:38:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/gatemi-checkout-consent\/","header_author_uri":"https:\/\/gatemi.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"gatemi","date":"2026-09-23 13:38:21","revision":3709430}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3709430,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3709430,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3709430,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3709430,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3709430,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3709430,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3709430,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"A required consent box above the pay button on the Checkout block.","2":"The settings screen: five rows, each with its wording, its refusal message and its two switches.","3":"The Consent panel on an order, with the wording as it was shown and the time it was agreed."}},"plugin_section":[],"plugin_tags":[3148,20011,131785,9686,286],"plugin_category":[45],"plugin_contributors":[279530],"plugin_business_model":[],"class_list":["post-371535","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout","plugin_tags-consent","plugin_tags-gdpr","plugin_tags-terms-and-conditions","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-gatemi","plugin_committers-gatemi"],"banners":{"banner":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/banner-772x250.png?rev=3709430","banner_2x":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/banner-1544x500.png?rev=3709430","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/icon-128x128.png?rev=3709430","icon_2x":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/icon-256x256.png?rev=3709430","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/screenshot-1.png?rev=3709430","caption":"A required consent box above the pay button on the Checkout block."},{"src":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/screenshot-2.png?rev=3709430","caption":"The settings screen: five rows, each with its wording, its refusal message and its two switches."},{"src":"https:\/\/ps.w.org\/gatemi-checkout-consent\/assets\/screenshot-3.png?rev=3709430","caption":"The Consent panel on an order, with the wording as it was shown and the time it was agreed."}],"raw_content":"<!--section=description-->\n<p>Extra tick boxes at checkout: your terms, an age confirmation, a marketing\nopt-in. Up to five, each with its own wording and its own refusal message.<\/p>\n\n<h4>A consent that is not recorded is not a consent<\/h4>\n\n<p>The point of the box is being able to show, months later, that this customer\nticked it. Every \"just add a checkbox\" snippet validates the tick and throws\nit away, which leaves a shop with a checkout that looks compliant and an\norder file that proves nothing. Here the acceptance lands on the order, and\nevery order screen carries a Consent panel showing it.<\/p>\n\n<h4>The words they agreed to are stored with the agreement<\/h4>\n\n<p>Rewrite your terms next month and a past order still says what was actually\nagreed to, because the <strong>wording as it was shown<\/strong> is written onto the order\nbeside the tick \u2014 not a reference to a setting that has since moved on. The\ntime is recorded too, because \"when\" is half of what a consent record is\nfor.<\/p>\n\n<h4>Required means required<\/h4>\n\n<p>The <code>required<\/code> attribute is a courtesy to the browser and nothing more \u2014\nanybody can post past it. A required box that was not ticked stops the order\non the server, where the order is actually created.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li>Up to five consent boxes above the pay button \u2014 on the classic checkout and on the Checkout block<\/li>\n<li>A link inside the wording, so \"I agree to the terms\" points at your terms<\/li>\n<li>Your own message for each box when it is not ticked<\/li>\n<li>Each box required or optional<\/li>\n<li>The acceptance, the exact wording and the time on every order<\/li>\n<li>Uninstalling never removes what a customer agreed to<\/li>\n<li>No JavaScript, no external service, nothing phoned anywhere<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to WooCommerce \u2192 Checkout Consent.<\/li>\n<li>Write what your box should say and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20the%20boxes%20appear%3F\"><h3>Where do the boxes appear?<\/h3><\/dt>\n<dd><p>Immediately above the Place order button, on both checkouts. Agreeing to\nterms three screens earlier is not agreeing to anything a shopper remembers\nreading. The classic checkout prints them through WooCommerce's own hook just\nabove the button; the Checkout block draws them in its Order information step\nthrough WooCommerce's checkout-fields API, which refuses a required box that\nwas not ticked and writes the tick onto the order \u2014 and this plugin then\nrecords the wording and the time beside it, exactly as on the classic\ncheckout.<\/p><\/dd>\n<dt id=\"does%20the%20link%20in%20my%20wording%20work%20on%20the%20checkout%20block%3F\"><h3>Does the link in my wording work on the Checkout block?<\/h3><\/dt>\n<dd><p>The words do; the link does not. WooCommerce's checkout-fields API shows a\nfield's wording as plain text, so on the block \"I agree to the terms\" is\nshown without its link. Keep the link to your terms in the block's own terms\ntext as well, which is what most block-checkout shops already have.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20change%20my%20terms%20later%3F\"><h3>What happens if I change my terms later?<\/h3><\/dt>\n<dd><p>Past orders keep saying what was agreed at the time. The wording is stored\nwith the acceptance rather than looked up when the order is read.<\/p><\/dd>\n<dt id=\"does%20uninstalling%20delete%20the%20record%3F\"><h3>Does uninstalling delete the record?<\/h3><\/dt>\n<dd><p>No. The acceptances stay on the orders \u2014 they are the record the checkbox\nexisted to create.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20checkout%20fields%20themselves%3F\"><h3>Can I edit the checkout fields themselves?<\/h3><\/dt>\n<dd><p>That is <a href=\"https:\/\/gatemi.com\/plugins\/checkout-fields-for-woocommerce\/\">Gatemi Checkout Fields for WooCommerce<\/a>,\na separate plugin sold on gatemi.com: it renames, reorders, requires and\nhides the checkout's own fields, and adds fields of your own. The two run\nalongside each other.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<li>Up to five consent boxes above the pay button, each required or optional and each with its own refusal message.<\/li>\n<li>The acceptance, the exact wording shown and the time written onto the order, and a Consent panel on both order screens.<\/li>\n<li>Required boxes enforced on the server, where the order is created \u2014 on the classic checkout through WooCommerce's own checkout process, on the Checkout block through WooCommerce's checkout-fields API.<\/li>\n<li>Uninstalling removes the boxes and never what a customer agreed to.<\/li>\n<li>No JavaScript, no external service, nothing phoned anywhere.<\/li>\n<\/ul>","raw_excerpt":"Consent boxes above the pay button \u2014 with what was agreed, and when, recorded on the order.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371535"}],"author":[{"embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gatemi"}],"wp:attachment":[{"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371535"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371535"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371535"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371535"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371535"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}