This is an info Alert.
x402 Logo
  • Product
    • Become Agent-Ready
      • Merchants
        Agentic Commerce — list your store across ChatGPT, Gemini, Claude & Perplexity
      • Publishers
        Monetize your content when AI agents read, cite, or train on it
      • SaaS Companies
        Treat AI agents as first-class customers with agent-priced checkout
    • Monetize
      • Monetize MCP Server
        Charge per call on any MCP server in 2 minutes
      • Monetize AI Agents
        Turn n8n, Zapier, Activepieces workflows into revenue
      • Agent Feed
        Pay-per-query access to licensed publisher content for your agents
  • Resources
    • xpay Ecosystem
      • xpay✦ Tools
        1,000+ pay-per-use tools for your AI agents
      • Agent-Ready SaaS Index
        25,481 SaaS scored on agent-buyability
      • SaaS Pricing Database
        Pricing pages indexed across 1,000+ categories
      • Shopify Apps Directory
        Every Shopify app, with its full review history
      • WooCommerce Plugins Directory
        Every WooCommerce plugin, scored on how well it is maintained
      • GitHub
        Open source repositories
    • Agent Building
      • Agent Frameworks
        AI frameworks for building multi-agent systems
      • x402 Integration
        AI frameworks with x402 payment integration
      • Networks
        Blockchain networks supporting x402
    • Company
      • About xpay✦
        Our mission, products, and protocols
      • Blog
        Latest insights and updates
      • Docs
        Complete xpay documentation
  • Pricing
  • Blog
  • Docs
Get Started
  1. xpay✦ Commerce

  2. Directory

  3. WooCommerce plugins

  4. Purchase Contract Withdrawal Button for WooCommerce

Purchase Contract Withdrawal Button for WooCommerce

Adds a withdrawal button to WooCommerce My Account orders. Two-step submission with nonce, configurable cooling-off, automated emails.

40+ active installsFree on WordPress.org
View on WordPress.orgSupport forum
Will this break my store?

What the WordPress.org registry says about keeping Purchase Contract Withdrawal Button for WooCommerce running.

WordPress compatibility
Tested to 7.0.2
Tested against the WordPress branch in use today.
Last updated
10 days ago
Requires PHP
7.4
Your host must be running at least this version.
Requires WordPress
6.0
Requires other plugins
woocommerce
These must be installed and active first.
Contributors
1
A single maintainer. Worth knowing if the plugin is load-bearing for your store.

40+ active installsWordPress.org reports installs in bands, not exact counts.
Maintenance & trust

Scored on how Purchase Contract Withdrawal Button for WooCommerce is looked after — not on how many stores run it.

Well maintained
Not enough public feedback to put a confident number on this one. Little public feedback — score rests mostly on release activity. What we can see is below.

Maintenance
35 / 35
Updated 10 days ago.
WordPress compatibility
20 / 20
Tested to WP 7.0.2 (current).
Support responsiveness
Not enough data
Only 2 support thread(s) — not enough to judge.
Merchant satisfaction
Not enough data
No ratings yet.
Listing transparency
10 / 10
Provides: screenshots, description, homepage
2 of 5 measures had too little evidence to score. They are left out of the total rather than counted as zero — otherwise a plugin would be marked down for being small rather than for being poorly kept.Measured 2026-08-02 from the WordPress.org plugin registry.
Ratings

No one has rated this plugin on WordPress.org yet. That is a statement about the ratings page, not about the plugin — plenty of well-kept plugins never collect them.

Purchase Contract Withdrawal Button for WooCommerce adds a clearly-labeled “Withdraw from purchase contract” button to each customer’s order detail page in WooCommerce My Account. It implements the two-step submission process required by EU consumer law: the customer clicks the button, reviews their order details, optionally provides a refund bank account and reason, and then explicitly confirms.

After submission:

  • The order is moved to a configurable status (default: On hold)
  • A note is added to the order with the customer’s reason and refund account
  • The customer receives a confirmation email
  • The store administrator receives a notification email with all submission details

Both emails are registered as standard WooCommerce email classes and can be customized in WooCommerce → Settings → Emails.

Legal context

This plugin is designed to help merchants comply with EU Directive 2023/2673, which requires online merchants to provide consumers with a direct online function to withdraw from a contract — the same way they could enter into it. In the Czech Republic, this obligation enters into force on 19 June 2026 under § 1830a of the Civil Code (the so-called “button amendment 2.0”). Similar transposition is required across all EU member states.

The plugin is not legal advice. Merchants remain responsible for ensuring their full implementation (including terms and conditions, refund processing, and goods return) complies with applicable law.

Features

  • Two-step submission — button click → form with details → explicit confirmation
  • Guest shortcode — optional [pcwb_withdrawal_form] for non-logged-in customers (order number + billing email lookup, rate-limited)
  • Configurable cooling-off period — default 14 days, adjustable per store
  • Date of delivery meta box — admin can record when the goods were received; the cooling-off period then runs from that date (legally correct under EU law)
  • Configurable eligible statuses — choose which order statuses show the button
  • Configurable post-submission status — typically On hold or Processing
  • WooCommerce email integration — customer + admin emails as native WC_Email classes
  • Admin overview — dedicated “Withdrawals” screen under WooCommerce: filter by pending/resolved, search, date range, CSV export, per-row and bulk “Mark as resolved”, and per-row and bulk delete of a withdrawal record (removes the withdrawal data from the order without deleting the order itself)
  • Order actions — admins can submit a withdrawal on behalf of the customer (e.g. phone request) and mark requests resolved from the order edit screen
  • Translatable — full text domain, .pot included, all 24 official EU languages bundled (Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swedish)
  • Theme-overridable templates — copy templates/withdrawal-form.php or templates/guest-lookup.php into your theme to customize
  • HPOS-compatible — works with WooCommerce’s High-Performance Order Storage

Filters and actions

  • pcwb_eligible_statuses — array of statuses where the button is shown
  • pcwb_period_days — cooling-off period override
  • pcwb_period_reference_date ($date, $order) — override the cooling-off reference date
  • pcwb_new_status — order status applied after submission
  • pcwb_admin_recipient — admin email recipient override
  • pcwb_after_submit ($order, $reason, $account, $source) — fires after a successful submission (source = customer|guest|admin)
  • pcwb_after_resolve ($order, $resolved_by_user_id) — fires when an admin marks a withdrawal resolved
  • pcwb_after_delete ($order) — fires after an admin removes a withdrawal record from an order

Where does the button appear?

In the customer’s My Account → Orders → individual order detail page, below the order table. It only appears when the order matches an eligible status and is within the configured cooling-off period.

Can the customer submit multiple withdrawals?

No. Once a withdrawal is submitted, the button is replaced with a notice showing the submission date and a contact email.

Does the plugin issue refunds automatically?

No. The plugin records the customer’s intent to withdraw — it does not move money. Refunds are processed manually (or via your payment gateway) after the goods are received. The plugin notifies the admin via email so the merchant can follow up.

Can guest orders use the button?

No. The button requires the customer to be logged in (their account must be linked to the order). This matches the typical “logged-in My Account” flow.

How do I customize the email content?

Go to WooCommerce → Settings → Emails, then select either “Withdrawal confirmation (customer)” or “Withdrawal notification (admin)”. You can edit subject, heading, and additional content. For deeper customization, copy template files from templates/emails/ into your theme.

Is this plugin GDPR-compliant?

The plugin only stores data the customer has explicitly submitted (reason, refund bank account) as order metadata, alongside the existing order record. It does not transmit data to third parties.

Categories
Privacy & performanceOrder managementMarketplaces & channels
Plugin details
Version1.3.6
Last updated2026-07-23 8:15pm GMT
Added2026-05-28
Requires WordPress6.0
Tested up to7.0.2
Requires PHP7.4

Tags on WordPress.org
eu
GDPR
refund
withdrawal
woocommerce
Alternatives
Other plugins in the same categories.
EU Withdrawal Compliance
1K+ installs
5.0(15)
Easy Actions Scheduler Cleaner
800+ installs
5.0(9)
Terms & Conditions Per Product
800+ installs
4.6(13)
Spotrebiteľské práva pre WooCommerce
200+ installs
5.0(1)
Additional Terms Lite for WooCommerce
2K+ installs
3.5(15)
Fast Woo Order Lookup
200+ installs
5.0(8)
x402 Logo

The agent-readiness stack for the AI shopping era — helping merchants, publishers and SaaS companies get discovered, cited and transacted with by ChatGPT, Perplexity, Claude, Gemini and the custom shopping agents underneath them.

CompanyAgentically Inc. (d/b/a xpay✦)1875 Mission St, Ste 103San Francisco, CA 94103, United Stateslegal@xpay.sh · privacy@xpay.sh
or ask your AI app
Company
About xpayAgency PartnersGitHubDiscordllms.txt
DevelopersDocumentationAPI ReferenceSDKs & LibrariesQuickstart GuideOpenAPI Spec
Stay Updated
Occasional product updates and agent-readiness playbooks from xpay (Agentically Inc.) — typically a couple of emails a month. Double opt-in: we email you a link to confirm before sending anything, and every email has one-click unsubscribe.
Social
  • For Publishers
    • News
    • Finance
    • Dev / Tech
    • Travel
    • View all verticals
  • Agent Feed
    • AI Search Engines
    • RAG Builders
    • Browser Agents
    • Vertical Research
    • Browse full catalog
  • Agent-Ready Index
    • SaaS Pricing Database
    • Agent-Ready SaaS Index
    • Verified band
    • AI & ML
    • Sales & CRM
  • Products
    • Pricing Widget
    • Monetize MCP Server
    • Paywall
    • Smart Proxy
    • Monetize AI Agents
    • xpay x402 Facilitator
  • Agentic Economy
    • Timeline
    • Resources
    • Manifesto
    • Stack
  • Agentic Commerce
    • Get listed
    • ChatGPT Ads
    • How ChatGPT Ads work
    • ChatGPT Ads · Apparel
    • ChatGPT Ads · Health & Beauty
    • xpay Listings · Amazon + Google
    • Pricing
    • Free audit
    • Shopify
    • WooCommerce
    • Apparel & Accessories
    • Health & Beauty
    • Overview
  • Commerce Index
    • Shopify apps directory
    • Agentic Commerce Ready Index
    • Methodology
    • Pet brands · WooCommerce
    • Pet brands · Shopify
  • Marketplace
    • 🛍️ xpay.deals — agentic storefront for deals
  • Protocols
    • Overview
    • x402
    • MPP
    • UCP
    • ACP
    • AP2
    • TAP
    • A2A
  • Agent Frameworks
    • Overview
    • LangChain
    • CrewAI
    • Claude MCP
    • AutoGPT
    • LangChain vs Mastra
    • LangGraph vs Pydantic AI
  • Company
    • About xpay
    • Blog
    • Docs
    • GitHub
  • Free prompts
    • Ecommerce prompts
    • Email marketing prompts
    • Product description prompts
    • Facebook ad prompts
    • Skincare prompts
    • Supplement prompts
    • Wine prompts
    • Electronics prompts

© 2025 Agentically Inc. All rights reserved.
Privacy PolicyTerms of UseAcceptable Use Policy