{"id":10632,"date":"2026-05-18T04:29:55","date_gmt":"2026-05-17T20:29:55","guid":{"rendered":"https:\/\/aeosub.com\/terms-conditions-consent-log\/"},"modified":"2026-05-18T04:29:55","modified_gmt":"2026-05-17T20:29:55","slug":"terms-conditions-consent-log","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/terms-conditions-consent-log\/","title":{"rendered":"Terms &amp; Conditions Consent Log"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/terms-conditions-consent-log.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/fernandot\/\" target=\"_blank\" rel=\"noopener\">Fernando Tellado<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.0 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-17 7:54pm GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/terms-conditions-consent-log\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Tamper-evident GDPR consent log: WooCommerce checkout, CF7, WP comments and a [tccl_consent_box] shortcode. Works with or without WooCommerce.<\/div>\n<p>Article 7.1 of the GDPR demands more than a boolean: the defensible consent record needs the timestamp, the IP, the user agent, the document version in force at that moment and the exact text the user was shown.<\/p>\n<p>Terms &amp; Conditions Consent Log fills that gap for any acceptance checkbox on your site, with or without WooCommerce. Every accepted consent \u2014 at the WooCommerce checkout, in a Contact Form 7 form, in the WordPress comments form or in a stand-alone shortcode\/block \u2014 writes a row to a dedicated indexed table, sealed with a SHA-256 hash of the accepted text so any later change is detectable. From a clean admin screen you can filter, search, export to CSV, integrate with the native WordPress Privacy Tools, and open a one-page printable A4 certificate per record (your browser saves it as PDF in one click).<\/p>\n<h4>Works with or without WooCommerce<\/h4>\n<p>If WooCommerce is active, the menu lives under WooCommerce <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Consent log and the checkout is captured automatically. If it is not, the menu lives under Users <span aria-hidden=\"true\" class=\"wp-exclude-emoji\">\u2192<\/span> Consent log and the rest of the plugin (Records, Settings, CSV export, PDF certificate, Privacy Tools integration) keeps working the same way.<\/p>\n<h4>Four sources of consent<\/h4>\n<ul>\n<li><strong>WooCommerce checkout<\/strong> (auto when WC is active): captures the native terms checkbox.<\/li>\n<li><strong>Contact Form 7<\/strong> (opt-in): detects [acceptance] fields automatically and the first email field of the form. Stored as <code>cf7_form_{ID}<\/code>, one type per form. No snippets required.<\/li>\n<li><strong>WordPress comments<\/strong> (opt-in): logs the native <code>wp-comment-cookies-consent<\/code> checkbox (introduced in WP 4.9.6) when the visitor opts in. Stored as <code>comment_consent<\/code>.<\/li>\n<li><strong><code>[tccl_consent_box]<\/code> shortcode and Gutenberg block<\/strong>: drop a self-contained consent checkbox in any page, post, widget area or HTML field of a form builder. Submission posts to a REST endpoint and writes a record. Always available.<\/li>\n<\/ul>\n<p>For anything else (Gravity Forms, WPForms, Fluent Forms, custom flows), call <code>tccl_save_consent()<\/code> from the appropriate hook.<\/p>\n<h4>Why a dedicated table<\/h4>\n<p>Storing thousands of consent records in <code>wp_postmeta<\/code> is wasteful and slow. The plugin uses its own indexed table and exposes a public function (<code>tccl_save_consent<\/code>) that you can call from anywhere to log additional consents in the same place.<\/p>\n<h4>Main features<\/h4>\n<ul>\n<li>Records timestamp UTC, IP, user agent, document version, source URL and full consent text per acceptance.<\/li>\n<li>Custom database table with the right indexes (no <code>wp_postmeta<\/code> bloat).<\/li>\n<li><strong>Tamper-evident<\/strong>: each record is sealed with a SHA-256 hash. Any later change to the stored text is detected and reported as TAMPERED in the records list.<\/li>\n<li><strong>Printable A4 certificate<\/strong> per record, with a built-in &#8220;Print \/ Save as PDF&#8221; button \u2014 the browser exports the certificate to PDF natively, no external library bundled.<\/li>\n<li><strong>Native Privacy Tools integration<\/strong>: <code>Tools &gt; Export Personal Data<\/code> and <code>Tools &gt; Erase Personal Data<\/code> both include consent records (erasure anonymises rather than deletes \u2014 the record itself is the lawful basis to keep it).<\/li>\n<li>WooCommerce checkout texts are <strong>optional<\/strong> \u2014 leave them empty and the WooCommerce native text is shown to the customer and stored verbatim.<\/li>\n<li>Automatic version bump when the text changes (suggests <code>MAJOR.MINOR-YYYY-MM-DD<\/code>).<\/li>\n<li>Optional opt-out of IP and\/or user agent tracking.<\/li>\n<li>Configurable retention with a one-click anonymise button (records kept; PII scrubbed).<\/li>\n<li>Live partial-match filters (email, order, date range, type) + filtered CSV export with UTF-8 BOM (opens cleanly in Excel).<\/li>\n<li>(When WooCommerce is active) Order metabox with the consent summary, integrity badge and outdated-version indicator. &#8220;Consent&#8221; column on the orders list (legacy and HPOS) with a quick visual status. Optional consent line in the New order email (admin) and the order confirmation email (customer) \u2014 both off by default.<\/li>\n<li>Optional <code>delete_data_on_uninstall<\/code> setting (off by default) \u2014 uninstalling does not destroy consent evidence unless you explicitly opt in.<\/li>\n<li>HPOS (custom order tables) compatible.<\/li>\n<li>Public <code>tccl_save_consent()<\/code> function to log consents from anywhere.<\/li>\n<\/ul>\n<h4>Translation ready<\/h4>\n<p>All strings use the <code>terms-conditions-consent-log<\/code> text domain. Translations are managed through translate.wordpress.org.<\/p>\n<h3>Support<\/h3>\n<p>Need help or have suggestions?<\/p>\n<ul>\n<li><a href=\"https:\/\/servicios.ayudawp.com\" rel=\"nofollow ugc noopener\" target=\"_blank\">Official website<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/support\/plugin\/eu-withdrawal-compliance\/\" rel=\"ugc noopener\" target=\"_blank\">WordPress support forum<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/AyudaWordPressES\" rel=\"nofollow ugc noopener\" target=\"_blank\">YouTube channel<\/a><\/li>\n<li><a href=\"https:\/\/ayudawp.com\" rel=\"nofollow ugc noopener\" target=\"_blank\">Documentation and tutorials<\/a><\/li>\n<\/ul>\n<p>Love the plugin? Please leave us a 5-star review and help spread the word!<\/p>\n<h3>About AyudaWP.com<\/h3>\n<p>We are specialists in WordPress security, SEO, AI and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tamper-evident GDPR consent log: WooCommerce checkout, CF7, WP comments and a [tccl_consent_box] shortcode. Works with or without WooCommerce.<\/p>\n","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1001,912,590,787,569,555],"class_list":["post-10632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-consent","tag-contact-form-7","tag-gdpr","tag-privacy","tag-woocommerce","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10632"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}