{"id":386804,"date":"2026-10-15T16:04:51","date_gmt":"2026-10-15T16:04:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eu-withdrawal-consent-for-memberships\/"},"modified":"2026-10-15T16:04:41","modified_gmt":"2026-10-15T16:04:41","slug":"ravenzoz-eu-withdrawal-button","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ravenzoz-eu-withdrawal-button\/","author":23585787,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.2","stable_tag":"0.2.2","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Ravenzoz EU Withdrawal Button & Consent for Memberships","header_author":"Raven Zoz","header_description":"EU withdrawal button and checkout consent for MemberPress, LearnDash and Paid Memberships Pro, built for Directive 2023\/2673.","assets_banners_color":"fefefe","last_updated":"2026-10-15 16:04:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.2":{"tag":"0.2.2","author":"praveen64","date":"2026-10-15 16:04:41","revision":3748906}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3748906,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3748906,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3748906,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3748906,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3748906,"resolution":"1","location":"assets","locale":"","width":800,"height":552},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3748906,"resolution":"2","location":"assets","locale":"","width":723,"height":793},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3748906,"resolution":"3","location":"assets","locale":"","width":723,"height":793},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3748906,"resolution":"4","location":"assets","locale":"","width":723,"height":793}},"screenshots":{"1":"The consent checkbox shown at checkout, with a plain-language explanation alongside the exact legal\nwording that gets recorded.","2":"Step one of the withdrawal function on the buyer's account page: name, confirmation email, and the\npurchase being withdrawn from.","3":"Step two: reviewing and separately confirming the withdrawal statement, as required by Art. 11a's\ntwo-step process.","4":"The admin-facing compliance log \u2014 every consent and withdrawal, with human-readable platform and\nproduct names rather than internal IDs."}},"plugin_section":[],"plugin_tags":[255182,15170,1932,263226,262873],"plugin_category":[58],"plugin_contributors":[286959],"plugin_business_model":[],"class_list":["post-386804","plugin","type-plugin","status-publish","hentry","plugin_tags-consumer-rights","plugin_tags-memberpress","plugin_tags-membership","plugin_tags-right-of-withdrawal","plugin_tags-withdrawal-button","plugin_category-user-management","plugin_contributors-praveen64","plugin_committers-praveen64"],"banners":{"banner":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/banner-772x250.png?rev=3748906","banner_2x":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/banner-1544x500.png?rev=3748906","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/icon-128x128.png?rev=3748906","icon_2x":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/icon-256x256.png?rev=3748906","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/screenshot-1.png?rev=3748906","caption":"The consent checkbox shown at checkout, with a plain-language explanation alongside the exact legal\nwording that gets recorded."},{"src":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/screenshot-2.png?rev=3748906","caption":"Step one of the withdrawal function on the buyer's account page: name, confirmation email, and the\npurchase being withdrawn from."},{"src":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/screenshot-3.png?rev=3748906","caption":"Step two: reviewing and separately confirming the withdrawal statement, as required by Art. 11a's\ntwo-step process."},{"src":"https:\/\/ps.w.org\/ravenzoz-eu-withdrawal-button\/assets\/screenshot-4.png?rev=3748906","caption":"The admin-facing compliance log \u2014 every consent and withdrawal, with human-readable platform and\nproduct names rather than internal IDs."}],"raw_content":"<!--section=description-->\n<p>Since 19 June 2026, EU Directive 2023\/2673 (Art. 11a) requires online sellers of in-scope distance contracts to\ndisplay a functional withdrawal button and confirm withdrawal requests on a durable medium. Sellers of digital\ncontent with immediate access can be exempted from withdrawal, but only if they capture explicit consent and\nacknowledgment from the buyer before the contract.<\/p>\n\n<p>This plugin adds that withdrawal button, the consent-capture checkout flow, and durable-medium email\nconfirmations to three membership and course platforms: MemberPress, LearnDash, and Paid Memberships Pro.<\/p>\n\n<p><strong>This plugin helps you meet these requirements; no plugin can guarantee legal compliance. It is a technical aid, not legal advice.<\/strong> Consult a qualified professional to confirm the exemption\nwording and process are correct for your business and target markets.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li>Works with MemberPress, LearnDash and Paid Memberships Pro (auto-detected)<\/li>\n<li>Consent checkbox at checkout, with the exact wording recorded<\/li>\n<li>Two-step withdrawal function on the buyer's account page<\/li>\n<li>Acknowledgement email sent on a durable medium<\/li>\n<li>Admin log of every consent and withdrawal<\/li>\n<\/ul>\n\n<h4>Planned Pro features<\/h4>\n\n<ul>\n<li>Compliance-evidence export<\/li>\n<li>Multilingual consent templates<\/li>\n<li>EU-only geotargeting<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin stores each buyer's consent text, consent time, and (if they withdraw) the name and email address they entered, in a table in your own WordPress database. It sends acknowledgement emails through your site's normal email system. It does not contact any external service and does not track visitors.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/ravenzoz-eu-withdrawal-button<\/code>, or install through the WordPress\nplugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen.<\/li>\n<li>The plugin auto-detects which supported platform(s) are active \u2014 no configuration required for the free tier.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20legal%20advice%3F\"><h3>Does this replace legal advice?<\/h3><\/dt>\n<dd><p>No. It's a technical implementation aid. Confirm the legal requirements and wording for your business with a\nqualified professional.<\/p><\/dd>\n<dt id=\"what%20is%20the%20eu%20withdrawal%20button%3F\"><h3>What is the EU withdrawal button?<\/h3><\/dt>\n<dd><p>Under EU Directive 2023\/2673 (Art. 11a), buyers in the EU must be able to withdraw from an online contract with a simple two-step function: submit a withdrawal statement, then confirm it. This plugin adds that function to your members' account page.<\/p><\/dd>\n<dt id=\"is%20this%20for%20woocommerce%3F\"><h3>Is this for WooCommerce?<\/h3><\/dt>\n<dd><p>No. It is for membership and course sites built with MemberPress, LearnDash or Paid Memberships Pro. WooCommerce stores need a different plugin.<\/p><\/dd>\n<dt id=\"which%20platforms%20are%20supported%3F\"><h3>Which platforms are supported?<\/h3><\/dt>\n<dd><p>MemberPress, LearnDash and Paid Memberships Pro. Whichever of them are active on your site are detected automatically. Note that MemberPress and LearnDash are paid plugins, so you need your own licence for them.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%27s%20access%20ends%20some%20other%20way%2C%20like%20a%20refund%3F\"><h3>What happens if a customer's access ends some other way, like a refund?<\/h3><\/dt>\n<dd><p>The admin log tracks that separately from an actual Art. 11a withdrawal, since legally they are not\nthe same thing \u2014 see the \"Access Ended\" column in the compliance log.<\/p><\/dd>\n<dt id=\"are%20consent%20records%20deleted%20if%20i%20remove%20the%20plugin%3F\"><h3>Are consent records deleted if I remove the plugin?<\/h3><\/dt>\n<dd><p>No. They are legal evidence, so they are kept. To delete them too, add <code>define( 'RZWC_DELETE_DATA_ON_UNINSTALL', true );<\/code> to wp-config.php before deleting the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>The withdrawal button now appears for every purchase the buyer has access to, including purchases with no recorded consent \u2014 those buyers keep their withdrawal right.<\/li>\n<li>Consent records are kept when the plugin is deleted (legal evidence); see the readme FAQ to remove them.<\/li>\n<li>Full Art. 11a two-step withdrawal flow (statement, then separate confirmation) \u2014 this is an EU-wide\nrequirement, not a national variation, confirmed against the Directive's own text.<\/li>\n<li>MemberPress, LearnDash, and Paid Memberships Pro adapters, with hook usage verified against official\ndocs\/source for all three and live-tested end to end against a real install for Paid Memberships Pro.<\/li>\n<li>Tracks access ending some way other than an actual withdrawal (refund, admin cancellation) separately\nfrom a real Art. 11a withdrawal in the compliance log.<\/li>\n<li>Translation-ready (.pot included); tested against a non-English locale.<\/li>\n<li>Passes the official Plugin Check tool with zero errors.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial development scaffold.<\/li>\n<\/ul>","raw_excerpt":"EU withdrawal button and checkout consent for MemberPress, LearnDash and Paid Memberships Pro, built for Directive 2023\/2673.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386804"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/praveen64"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386804"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386804"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386804"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386804"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386804"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}