WordPress plugin intelligence profile

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.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.4.1
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.0 · PHP 7.4
Directory statusactive
Last directory update26 Oct 20266d ago
Active installations50Adoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Purchase Contract Withdrawal Button for WooCommerce version 1.4.1 as active, updated 6d ago and tested up to WordPress 7.1.

Overview

About this plugin

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. 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
  • Partial withdrawal — the customer ticks the products (and quantities) they are returning; the admin can adjust the selection later in the order. Emails, the Withdrawals screen and CSV show the products and the amount to refund
  • 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
  • Optional mandatory refund account — require the customer to enter a bank account for the refund instead of defaulting to the original payment method
  • 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_refund_account_required — bool, whether the refund bank account field is mandatory
  • 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
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • eu
  • gdpr
  • refund
  • withdrawal
  • woocommerce
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.0 · PHP 7.4
Update activity26 Oct 20266d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.3.81.4.1
Version1.3.71.3.8
WordPress compatibility7.17.1.3
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.