WooCommerce plugin · functional reference

Widerrufsmanager Functional Manual

This documentation explains what the plugin provides for shop owners, admins and customers. It is intentionally structured like a functional/API reference: modules, purpose, behavior, inputs, outputs, common use cases and boundaries.

Checked version: Aligned with Lite version 1.0.13 and Pro version 1.0.3. Registered shortcodes: [wmwiderrufsmanager_formular] and [wmwiderrufsmanager_button]. Registered Gutenberg blocks: widerrufsmanager/revocation-form and widerrufsmanager/revocation-button.

00.01

Process flow

1

Entry

The customer opens the withdrawal page through a shortcode, button, Gutenberg block, widget, Elementor widget or the WooCommerce My Account area.

2

Lookup

Lite validates order number and billing email. PRO can optionally add order date, billing name/company or billing postcode to the verification flow.

3

Selection

Eligible order items are displayed. Partial quantities and partial withdrawals are supported. In Pro, optional reasons can be captured per item.

4

Submission

The request is stored, logged in the history and optionally confirmed by email.

5

Review

The admin reviews the request in the backend and decides per item or for the complete request.

6

Evidence

Status, history, emails, optional PDFs, exports, privacy tools and the refund helper provide traceability.

00.02

Data model

revocation_request

A withdrawal case. It stores the order reference, customer data, status, withdrawal type, customer message, admin note, timestamps, privacy/anonymization state, optional alternative notification email and the selected items as structured data.

order

The WooCommerce order. It is the source for order number, billing email, order status, order date, line items, quantities, billing name/company, postcode and customer data.

item

A single order line with product name, SKU, product ID, variation ID, order item ID, purchased quantity, requested quantity, optional reason group, optional reason/note and the later admin decision.

history_event

Internal evidence for events such as submission, status changes, decisions, email dispatch, anonymization or deletion.

01.01

Dashboard / start page

LiteAdmin
WMWRM_Admin::render_dashboard_page()admin.php?page=wmwrm-dashboard

The dashboard is the compact starting point of the plugin. It combines setup status, shortcodes, support links and quick access to the most important working areas. Since Lite 1.0.13 the dashboard area has been visually modernized and includes a direct tutorial entry point.

What does the admin see?

  • Modernized quickstart area for page, form, button and compliance check.
  • Direct tutorial link to the YouTube playlist with setup and usage videos.
  • Status of form and button integration.
  • Shortcodes for form and button with copy actions.
  • KPI cards for open withdrawals, total requests and check state.
  • FAQ accordions, support cards and Pro status hints.

Value

Shop owners quickly see whether the required process is configured, where the shortcodes can be copied, whether open withdrawal requests need attention and where tutorial videos are available.

SetupLinks to settings, compliance check and form/button integration.
TutorialsLinks to the official YouTube playlist for setup and usage guidance.
Daily workLinks to open withdrawals, the request overview and extension management.
SupportProvides FAQ and support entry points without mixing operational documentation with licensing details.

WordPress dashboard widget since Lite 1.0.13

Lite 1.0.13 also registers a compact WordPress dashboard widget titled “WM Widerrufsmanager”. It shows the most important withdrawal KPIs directly on the main WordPress dashboard.

KPI cardsTotal, Open, Approved and Rejected. Each complete card is clickable and opens the filtered withdrawal overview.
Lite displayIf PRO is not active, the widget shows a subtle hint for statistics and exports in WM Widerrufsmanager PRO.
PRO activeIf PRO 1.0.3 is active, the teaser is replaced by a real PRO statistics summary with current-month count, top product, top reason and actions for statistics and export.

Lite 1.0.13 also adjusts the admin footer review hint: the line is more subtle, italic and highlights “WM Widerrufsmanager” typographically.

01.02

Withdrawal form

LiteFrontend
[wmwiderrufsmanager_formular]widerrufsmanager/revocation-formWMWRM_Shortcode::render()

Purpose

The form is the central intake channel for withdrawal requests. It replaces unstructured email requests with a controlled process: order validation, item selection and properly stored data.

Customer actions

  • Enter order number and billing email; in PRO, depending on the selected mode, also or alternatively provide order date, billing name/company or billing postcode.
  • For shops with sequential or custom order numbers, PRO can map the entered number to the correct WooCommerce order.
  • Validate the order automatically.
  • See eligible order items.
  • Select one or multiple products.
  • Request partial quantities when multiple units were purchased.
  • Optionally enter an alternative notification email address for confirmations and status updates.
  • Submit the request bindingly.
InputsOrder number, billing email, selected item quantities, optional message/withdrawal statement and confirmation. PRO can additionally request order date, billing name/company, billing postcode and an alternative notification email address. Depending on the mapping source, the entered order number can be interpreted as a WooCommerce order ID, an automatically detected order number or a custom order number stored in configured meta keys.
ChecksOrder exists, the entered order number is mapped correctly, verification data matches the order, status is allowed, deadline is valid, remaining quantities are available and no blocking open/approved withdrawal exists. PRO can also use a signed verification token between lookup and final submission.
OutputA new withdrawal record with status pending, a history entry and optional customer/admin emails.
Use casesDedicated withdrawal page, footer link, help/service area or a legally relevant self-service page.
01.03

Button, block and widget

LiteEntry Point
[wmwiderrufsmanager_button]widerrufsmanager/revocation-buttonWMWRM_Button_Widget

The withdrawal button is a flexible entry point to the configured withdrawal page. It can be placed wherever customers should be able to start the process.

Shortcode

For classic pages, theme templates, builder content or manual embedding.

Gutenberg block

For native WordPress block editing without manual shortcode input.

Widget

For sidebars, footers or other widget areas provided by the theme.

PurposeFast and consistent entry point to the withdrawal form.
ConfigurationButton text, target page and design values are taken from the plugin settings.
Attributestext, class, background and text_color can override specific shortcode output.
01.04

Order validation

LiteValidation
WMWRM_Order_Validator::validate_lookup()WMWRM_Order_Validator::is_revocation_allowed()WMWRM_Order_Validator::get_revocable_items()

Order validation is the functional gatekeeper. It determines whether an order may be opened for withdrawal and which positions are selectable.

  • Searches the WooCommerce order by the submitted order number.
  • In PRO, the order-number source can be controlled: automatic detection, direct WooCommerce order ID or custom order number via configured meta keys.
  • In Lite, compares the submitted email with the billing email.
  • In PRO, can use flexible verification combinations with order date, billing name/company and billing postcode.
  • Checks the order status against allowed or blocked statuses.
  • Calculates the withdrawal deadline from the configured number of days.
  • Respects quantities already approved in previous withdrawal requests.
  • Hides or marks items that are no longer eligible.
01.05

Admin workflow

LiteBackend
WMWRM_AdminWMWRM_Database::update_decision()WMWRM_Database::append_history()

The admin area is the working interface for incoming withdrawal requests. Requests can be filtered, opened, reviewed, decided and documented.

Overview

List of requests with status, order number, customer data, submission date and actions.

Detail view

Shows order, customer data, message, items, quantities, history and decision controls.

Item decision

Admins can approve, reject or partially approve individual items and quantities.

Admin note

Internal or customer-facing decision text used for evidence and email communication.

Finalization

Sets the request to approved, partially approved or rejected.

WooCommerce order notes

Submission and later decisions can also be documented as order notes.

01.06

Basic emails

LiteMail
WMWRM_Email::send_customer_received()WMWRM_Email::send_admin_received()WMWRM_Email::send_customer_decision()

Basic emails inform customers and admins about receipt and decision of a withdrawal request. They contain order reference, customer data, status and item information.

EmailTriggerPurpose
Customer receipt confirmationAfter form submissionConfirms that the request was received.
Admin notificationAfter form submissionNotifies the shop owner about a new request.
Customer decision emailAfter admin decisionCommunicates approval, partial approval or rejection.

Pro extends this area with visual templates, logo, colors, custom HTML content, test emails, CC/BCC and Reply-To.

01.07

Settings

LiteAdmin
WMWRM_Settingswmwrm_settings

The settings control the complete base process: form, target page, button, withdrawal deadline, email behavior, frontend texts and privacy options.

Integration & display

  • Select the withdrawal page.
  • Copy form and button shortcodes.
  • Maintain button label and colors.
  • Adjust form title, intro text and success message.

Withdrawal logic

  • Define the deadline in days.
  • Select the deadline start: order, payment, completion or automatic fallback.
  • Optionally allow expired deadlines as goodwill/review requests.
  • Define blocked WooCommerce statuses.

Communication

  • Set admin email and sender name.
  • Enable or disable customer receipt, admin notification and decision emails.
  • Maintain email footer and basic email texts.

Privacy & retention

  • Control IP/user-agent storage.
  • Set retention duration.
  • Choose anonymization or deletion after the retention period.
01.08

Extensions & module management

LiteAdmin

The extensions page lists Lite and Pro modules, explains availability and provides entry points to related settings. It gives admins one place to understand which parts of the system are active.

Lite core modulesForm, button, dashboard, admin workflow, basic emails, privacy basics and compliance check.
Pro modulesRules, reasons, advanced emails, PDF evidence, analytics, GDPR automation, My Account, Elementor, refund helper and security features.
01.09

Compliance check

LiteAdmin

The check helps shop owners verify whether the basic withdrawal process is technically configured. It checks form page, button/link availability, relevant texts and process settings.

Checked areasForm page, shortcode/block output, button entry point, email settings, deadline settings and privacy configuration.
ResultClear status messages and links to the settings that need attention.
01.10

Basic privacy tools

LitePrivacy

The Lite privacy tools cover retention duration, anonymization/deletion behavior and optional storage of technical data. The plugin integrates with WordPress privacy tools for personal data export and erasure.

01.11

WooCommerce order column

LiteWooCommerce

The optional order column shows whether a WooCommerce order has related withdrawal activity. It helps admins see relevant cases directly in the order overview.

02.01

Product, category and tag rules

ProRules

Rules define whether specific products, categories or product tags are excluded from the withdrawal process or should show specific handling messages.

What can be configured?

  • Exclude individual products from withdrawal.
  • Assign rules by category or tag.
  • Show explanatory frontend messages for excluded items.
  • Keep item-level behavior traceable in the admin workflow.

Use cases

Useful for digital products, made-to-order products, special product groups or cases that require manual review instead of automatic selection.

02.02

Optional withdrawal reasons

ProReason Groups

Optional reasons let customers select a voluntary reason per withdrawal item. The field remains optional so the legal withdrawal is not made dependent on a reason.

What can be configured?

  • Create reason groups such as general reasons, textile reasons or electronics reasons.
  • Maintain frontend labels and selectable reason lines.
  • Allow or disable an “Other” field.
  • Assign groups globally, per product, category or tag.
  • Hide reasons for a specific product by selecting the “do not show” option.

Typical use

Reason data helps identify wrong sizes, wrong colors, defective products, accidental duplicate orders or product-specific quality issues without forcing customers to justify the withdrawal.

Statistics tab in Withdrawal reasons

The Statistics tab analyzes selected reasons and product behavior directly in the Withdrawal reasons area. It uses the currently selected filters and shows KPIs, top reasons, top products, reason groups, monthly trend and a product × reason matrix.

Filters & KPIs

  • Period, from/to date, status, withdrawal type and product/SKU search.
  • Total requests, products with reasons, revoked quantity and reason coverage.

Analyses

  • Most common reason and most frequently withdrawn product.
  • Top withdrawal reasons and top products.
  • Reason-group usage and monthly trends.
  • Product × reason matrix for product-level diagnosis.

Statistics export

The export modal lets admins choose exactly which dataset should be exported. Available export types include full report, top reasons, top products, product/reason analysis, reason groups, monthly trend and raw/detail export. The export respects the active filters and can be further narrowed by product/SKU or reason text.

02.03

Email templates

ProMail Design

The template builder improves the visual appearance and content control of withdrawal emails. It supports logo, colors, custom text, HTML mode, placeholders, test emails and template-specific PDF attachments.

Global design

Logo, header color, accent color, footer text and base layout create a consistent email appearance.

Template content

Receipt confirmation, admin notification and customer decision emails can use dedicated subjects and content blocks.

Important placeholders: {order_number}, {customer_name}, {status_label}, {items}, {reason}, {admin_note} and template-specific variables.

02.04

Advanced email recipients

ProMail Routing

Advanced email settings allow additional admin recipients, CC/BCC addresses and Reply-To configuration. This is useful when support, legal, warehouse or accounting teams need copies of specific messages.

02.05

PDF evidence

ProPDF

PDF documents create structured evidence for submission, decision and internal documentation. They can be downloaded in the admin area and optionally attached to emails.

  • Evidence of the submitted withdrawal request.
  • Decision PDF with status and item decisions.
  • Internal documentation PDF including history and notes.
  • Optional static PDF attachments per email template.
02.06

Analytics & export

ProAnalytics

The Analytics & export area provides broader withdrawal reporting independent from the specialized reason statistics. It supports filtering, KPI summaries and CSV downloads.

What can be done?

  • Filter withdrawal requests by period, status, type and search terms.
  • Export standard case-level CSV files.
  • Export detail CSV files with one row per item.
  • Analyze request volume, status distribution, privacy state and item data.

Export types

Standard CSV

One row per withdrawal case with request, order, customer, status, quantities, reasons and summary information.

Detail CSV

One row per withdrawal item with product, SKU, quantities, reason group, selected reason, decision and notes.

PRO summary in the WordPress dashboard since PRO 1.0.3

PRO 1.0.3 exposes the most important analytics data to the Lite dashboard widget. The admin can therefore see a compact PRO statistics summary on the main WordPress dashboard without opening the full analytics and export area first.

Current monthShows the number of withdrawals in the current month.
Top productShows the most affected product in the current monthly context.
Top reasonShows the most frequent optional withdrawal reason if reasons are used and can be evaluated.
ActionsDirect buttons open the full statistics view and the export area.
02.07

GDPR automation

ProPrivacy

GDPR automation extends the basic retention logic with status-based rules, preview/simulation, manual execution, optional cron automation and an audit log.

Open requestsRetention can be shorter or longer depending on business requirements.
Decided requestsApproved, partially approved and rejected requests can use separate retention values.
ActionsAnonymize personal data or delete eligible records after the retention period.
Audit logDocuments previewed and executed cleanup actions.
02.08

WooCommerce My Account area

ProCustomer Account

The My Account integration gives logged-in customers a structured place to start withdrawals and review previous withdrawal requests.

Start withdrawal

Customers can open the withdrawal flow from their account and reuse relevant order context.

Previous withdrawals

Customers can see status, scope, items and key dates of past requests.

02.09

Elementor widgets

ProBuilder

Elementor widgets allow designers to place the withdrawal button or full form directly in Elementor layouts.

Button widgetConfigurable entry point to the withdrawal page.
Form widgetRenders the complete withdrawal form in Elementor.
02.10

Refund helper

ProAdmin Helper

The refund helper supports admins after an approved or partially approved decision. It summarizes affected items, quantities and estimated amounts and links to the WooCommerce refund screen.

The module does not blindly execute payment refunds. It prepares and documents the refund workflow.

02.11

Security Plus

ProSecurity

Security Plus protects the public order lookup against excessive attempts and extends public order validation with flexible verification methods. It also includes order-number mapping for shops that display sequential, custom or third-party order numbers instead of the internal WooCommerce order ID.

Rate limitLimits order lookup attempts within a time window and temporarily blocks excessive requests.
Flexible verificationThe order number remains mandatory; email address, order date, billing name/company or billing postcode can be requested additionally.
Verification modesSupports order number + email, order number + order date, order number + name/company, combinations with postcode and stricter multi-field checks.
Alternative notification emailOptional form field for another recipient address for confirmations and later status updates.
Verification tokenSigns the successful lookup so the final submission cannot simply be repeated with manipulated order data.
Frontend messageConfigurable message shown to customers after too many lookup attempts.
LogShows blocked lookup attempts with timestamp, type, masked data and reason. Admins can clear the security log.
Admin UIThe page is organized into tabs: rate limit, verification, order-number mapping and log. A compact configuration overview shows the most important active settings.

Order-number mapping

Mapping defines how the order number entered in the public form is assigned to a WooCommerce order. This is especially important when customers see a custom number generated by a custom-order-number plugin instead of the internal WooCommerce order ID.

Automatic detectionDefault mode. The plugin checks the WooCommerce order ID and known order-number meta keys without broadly scanning all orders on each form request.
WooCommerce order IDUses only the internal technical WooCommerce order ID. Use this when customers see that exact number in emails and account pages.
Custom order number via meta keyUses only the configured meta keys. The active custom meta-key field is shown only in this mode.
Active meta keysOne meta key per line. Only these keys are queried in custom-meta-key mode, keeping the public lookup fast.
Inspect meta keysThe button scans recent WooCommerce orders for likely custom order-number fields. Found keys are shown as selectable options and can be added to the active list.
Test mappingAdmins can enter an order number exactly as a customer would. The test shows whether a matching WooCommerce order is found and which source was used.
03.01

Shortcodes & entry points

Entry pointEditionPurpose
[wmwiderrufsmanager_formular]LiteFull withdrawal form.
[wmwiderrufsmanager_button]LiteButton to the configured withdrawal page.
Gutenberg form blockLitePlace the form without manual shortcode entry.
Gutenberg button blockLitePlace the button without manual shortcode entry.
WordPress button widgetLiteButton in sidebar, footer or widget area.
Elementor button widgetProButton inside Elementor.
Elementor form widgetProForm inside Elementor.
WooCommerce My Account integrationProCustomer account overview for starting and viewing withdrawals.
03.02

Status values

Status keyLabelMeaning
pendingOpen / under reviewThe request has been submitted but not finally decided.
approvedApprovedThe request was fully accepted.
partially_approvedPartially approvedOnly selected items or quantities were accepted.
rejectedRejectedThe request was not accepted.
03.03

CSV fields

The export feature distinguishes between standard CSV, detail CSV and specialized reason-statistics exports. Standard CSV is case-based, detail CSV is item-based, and reason-statistics exports focus on reasons, products, reason groups, trends or raw data depending on the selected export type.

Standard CSV: typical fields

Withdrawal ID, submitted date, updated date, decision date, status, order number, order ID, customer, email, withdrawal type, privacy status, message, admin note, number of items, product names, SKUs, requested/approved/rejected quantities, optional reasons, reason groups, reason notes, item decisions and item details.

Detail CSV: typical fields

One row per item with withdrawal ID, order, customer, product name, SKU, product ID, variation ID, order item ID, requested quantity, approved quantity, rejected quantity, optional reason group, optional reason, optional reason note, item decision and item note.

Reason statistics: typical fields

Depending on export type: period, status filter, withdrawal type, product/SKU filter, reason filter, KPI values, reason group, reason label, product name, SKU, product ID, requests, positions, quantity, share, month and detail rows.

03.04

Multilingual setup & internationalization

LiteProi18n
load_plugin_textdomain()languages/*.potlanguages/*-de_DE.polanguages/*-de_DE.mo

Lite and Pro are prepared for multilingual operation. Source code should use English source strings while German and other languages are delivered through WordPress language files.

Basic principle

  • Visible plugin source strings use English.
  • German is provided through .po and .mo files.
  • Additional languages can be added later through separate language files.
  • The Lite text domain is wm-widerrufsmanager; Pro can provide its own translation files.

Development rules

  • Output new visible PHP text through WordPress i18n functions such as __(), esc_html__(), esc_attr__() or _n().
  • Escape HTML output correctly: visible text with esc_html(), attributes with esc_attr().
  • Avoid hard-coded German UI text in PHP, JavaScript or templates.
  • Maintain JavaScript and block texts through script translations/JSON language files where needed.
03.05

Lite vs. Pro

Lite includes the standard validation for regular WooCommerce orders. PRO expands this area with additional protection, verification and mapping features for shops with custom order numbers or higher security requirements.

Functional areaLiteProInternal value
Withdrawal formYesYesStructured intake through order validation, form logic and item selection.
Withdrawal buttonYesYesCentral entry point through shortcode, block or widget.
WordPress dashboard widgetYesExtendedLite 1.0.13 shows Total, Open, Approved and Rejected. PRO 1.0.3 adds current-month statistics, top product, top reason and direct statistics/export actions.
Modern quickstart with tutorial linkYesYesSetup status, key steps and YouTube tutorials are combined directly in the dashboard.
Gutenberg blocksYesYesBlock editor integration without manual shortcode knowledge.
Order and deadline validationYesYesPrevents unsuitable, duplicate or out-of-deadline requests.
Standard order validation by order number and emailYesYesLite includes the basic WooCommerce order check with billing email validation.
Flexible verification methodsNoYesPRO can use additional verification values such as order date, billing name/company or billing postcode.
Security Plus / rate limitNoYesLimits public lookup attempts and helps reduce misuse, automated checks and avoidable support cases.
Log of blocked lookup requestsNoYesBlocked verification attempts become more transparent so admins and support teams can react faster.
Custom order-number mappingBasic detectionAdvancedHelps shops with sequential or custom order numbers map customer input to the correct WooCommerce order.
Meta-key inspection for custom order-number pluginsNoYesRelevant order meta keys can be discovered, reviewed and activated for mapping.
Order-number mapping testNoYesAdmins can test whether a visible order number resolves to the correct internal WooCommerce order.
Partial quantities and partial withdrawalsYesYesSupports multi-item orders, variations and item quantities.
Admin managementYesYesReview, decisions, notes, history and traceability.
Item-level decisionsYesYesApprove or reject per item and quantity.
Basic emailsYesYesAutomatic receipt and decision information.
Product/category/tag exclusionsNoYesMaintain withdrawal exclusions centrally and traceably.
Optional withdrawal reasonsNoYesVoluntary reason selection per item with reason groups, product visibility, statistics and CSV export.
Email template builderNoYesMore professional emails with layout, logo, colors, placeholders and HTML mode.
Additional PDF attachments per email templateNoYesSend static PDFs such as return instructions or checklists with selected emails.
Multiple recipients / CC / BCC / Reply-ToNoYesImproves internal routing for support, legal or accounting workflows.
PDF evidenceNoYesDownloadable and email-ready evidence for submission, decision and internal documentation.
Analytics & exportNoYesCSV export, detail reports, KPIs and specialized reason/product statistics.
GDPR automationBasicAdvancedStatus-based retention, simulation, audit log and optional cron automation.
My Account integrationNoYesCustomers can start and review withdrawals in their WooCommerce account.
Elementor widgetsNoYesDesigner-friendly placement of button and form.
Refund helperNoYesSupports amount and item reconciliation before WooCommerce refunds.
03.06

Legal notice

  • This documentation describes the technical and functional scope of Widerrufsmanager from a user and admin perspective.
  • The content does not constitute legal advice and does not replace an individual review by qualified legal counsel.
  • Widerrufsmanager supports the structured intake, documentation and processing of withdrawal requests. The legal responsibility for texts, deadlines, exclusions and concrete shop configuration remains with the respective shop operator.
  • Legal requirements may change. Before using the plugin in production, review whether your withdrawal policy, privacy information, email texts and process setup match your business model.
  • Version information, shortcodes and feature descriptions should be checked for every release against the installed Lite and Pro version.