Purchase Contract Withdrawal Button for WooCommerce
Changelog
1.3.1
Lightweight build — the deployed package now ships only compiled .mo translation files. The matching .po source files remain in the GitHub repository for translators.
1.3.0
New: bundled translations for all 24 official EU languages — Bulgarian, Croatian, Danish, Dutch, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Slovenian, Spanish, Swedish (in addition to existing Czech and Slovak). Native-quality review via translate.wordpress.org is welcome and will override the bundled files automatically.
1.2.3
Removed: “Custom button CSS” textarea setting and the pcwb_custom_css option. WordPress.org guidelines do not allow plugins to accept arbitrary CSS input; the bundled stylesheet remains, and themes can override styles in their own files.
Replaced inline arrow-function sanitize_callback for pcwb_guest_enabled with a named class method.
Internal: renamed template-scoped $completed variable to $pcwb_completed in admin email templates.
1.2.1
Added Requires Plugins: woocommerce header to declare WooCommerce as a required dependency (WP 6.5+).
1.2.0
New: optional [pcwb_withdrawal_form] shortcode for non-logged-in customers (order number + email lookup with rate limiting, short-lived submission token).
New: dedicated “Withdrawals” admin screen under WooCommerce — list, filter (pending/resolved/all), date range, search, bulk “Mark as resolved”, and CSV export.
New: “Withdrawal cooling-off” order meta box — enter the date the goods were delivered to make the cooling-off period start from the legally correct moment.
New: order actions — “Submit withdrawal on behalf of customer” and “Mark withdrawal as resolved”.
New filter: pcwb_period_reference_date to override the reference date programmatically.
New action: pcwb_after_resolve ($order, $resolved_by) fires when a withdrawal is marked resolved.
Internal: PCWB_Frontend::do_submit() and ::resolve() are now reusable across customer, guest and admin flows.
1.1.0
New: configurable button position (after order table, before order table, top of view-order page, or orders list row action).
New: Custom CSS field in settings — inject styles for the withdrawal button and form without touching theme files.
New filter: pcwb_button_positions to register additional hooks.
1.0.1
Renamed plugin and slug to comply with WP.org plugin naming guidelines.
Fixed: replaced esc_url_raw with esc_url for displayed URL in plain text admin notification.
Updated function/class prefix to pcwb_ / PCWB_ for collision safety.