Title: Recesso Manager for WooCommerce
Author: giazam
Published: <strong>July 25, 2026</strong>
Last modified: July 27, 2026

---

Search plugins

![](https://ps.w.org/recesso-manager-for-woocommerce/assets/banner-772x250.png?rev
=3624452)

![](https://ps.w.org/recesso-manager-for-woocommerce/assets/icon.svg?rev=3624452)

# Recesso Manager for WooCommerce

 By [giazam](https://profiles.wordpress.org/giazam/)

[Download](https://downloads.wordpress.org/plugin/recesso-manager-for-woocommerce.1.6.32.zip)

 * [Details](https://wordpress.org/plugins/recesso-manager-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/recesso-manager-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/recesso-manager-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/recesso-manager-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/recesso-manager-for-woocommerce/)

## Description

Recesso Manager for WooCommerce helps WooCommerce store owners collect, document
and manage online right-of-withdrawal declarations from customers.

The plugin adds a public form where customers can identify an order, select eligible
products and quantities, confirm the declaration and receive an e-mail receipt with
content, date and time of the online transmission.

In the WordPress admin area, merchants can review declarations, manage the received/
accepted/rejected status, add private notes, resend e-mails, export data, and see
linked declarations from the WooCommerce order edit screen.

The plugin supports guest checkout, configurable allowed WooCommerce order statuses,
optional product/category exclusions, WPML/Polylang translation workflows and WooCommerce
HPOS.

Recesso Manager for WooCommerce is a technical workflow tool. It does not provide
legal advice, does not guarantee legal compliance, does not calculate or trigger
refunds, does not create shipping labels, does not manage couriers and does not 
automatically change WooCommerce order status.

### Author

Developed by Giacomo Zamprogno.

### Legal disclaimer

Recesso Manager for WooCommerce provides a technical workflow to help store owners
collect, record and manage online withdrawal declarations for WooCommerce orders.

The plugin does not provide legal advice, does not replace a qualified legal consultant
and does not guarantee that a store, its policies, its contractual documents or 
its withdrawal process are legally compliant.

Store owners remain responsible for verifying applicable laws, withdrawal deadlines,
product exclusions, customer communications, refund handling, data retention and
all legal, tax and operational obligations.

### Accessibility

Version 1.6.5 includes an accessibility-focused pass inspired by WCAG 2.2 principles
for the plugin-owned interface. The public form uses associated labels, fieldsets,
legends, table captions, keyboard-operable native controls, visible focus styles,
announced error/status messages and responsive tables that preserve text labels 
on small screens.

### Requirements

 * WordPress 6.4 or higher.
 * PHP 8.1 or higher.
 * WooCommerce 8.2 or higher.
 * WooCommerce is declared as a required plugin through the `Requires Plugins: woocommerce`
   header.
 * Database permissions to create custom tables.

The plugin uses WooCommerce CRUD APIs and declares compatibility with WooCommerce
High-Performance Order Storage (HPOS).

### Configuration

The settings page includes:

 * Withdrawal form page.
 * Informational withdrawal period in days.
 * Allowed WooCommerce order statuses for technical access to the withdrawal flow.
 * Optional excluded product categories.
 * Merchant notification recipients.
 * E-mail sender name and address.
 * Customer receipt subject and intro text.
 * Merchant notification subject and intro text.
 * Privacy checkbox text with a `%s` placeholder for the privacy policy link.
 * Privacy policy page.
 * Optional terms/withdrawal information page snapshot.
 * Optional e-mail footer text with safe HTML.
 * Optional WooCommerce e-mail and My Account links.
 * Predefined rejection reasons.
 * Merchant reminder settings.
 * Data retention settings.

Allowed order statuses are loaded from WooCommerce, including custom statuses added
by other plugins. The setting only controls technical access to the form and does
not determine whether the right of withdrawal legally applies.

Product and category exclusions are technical exclusions from the public form. They
should be configured only after verifying the concrete legal and operational case.

The withdrawal period value is informational only. The plugin does not automatically
accept or reject declarations based on dates, because it does not know the actual
product delivery date. The merchant remains responsible for verifying terms and 
applicability.

Configurable texts, privacy wording, e-mail content, rejection reasons and operational
procedures should be reviewed with a qualified legal consultant before production
use.

### Shortcodes

    ```
    [rmwc_withdrawal_form]
    ```

Displays the full withdrawal workflow.

    ```
    [rmwc_withdrawal_link]
    ```

Displays a link to the configured form page.

    ```
    [rmwc_withdrawal_link text="Exercise the right of withdrawal"]
    ```

Customizes the link text.

If no form page is configured, the shortcode does not generate a broken URL. Administrators
may see a discreet notice; visitors see no output.

### Customer workflow

 1. The customer enters billing e-mail address and order number, unless they start 
    from a logged-in My Account order action.
 2. The plugin verifies the order and allows only orders whose WooCommerce status is
    enabled in the plugin settings.
 3. The customer selects products and quantities.
 4. The plugin shows a summary.
 5. The customer must confirm the withdrawal statement and privacy checkbox.
 6. The customer submits the withdrawal declaration.
 7. The plugin creates a unique request code, saves the statement and historical item
    data, adds a private order note and attempts to send e-mails.
 8. If previous partial withdrawal declarations exist, the customer can submit a further
    declaration only for remaining quantities.

The essential workflow works without JavaScript.

### Admin workflow

The Recesso Manager menu contains:

 * Withdrawals.
 * Settings.
 * Event log.
 * Instructions.
 * Configuration status.

The merchant can view declarations, filter by status, search by code/order/customer/
e-mail/product/note, inspect selected products and quantities, review clearer event
logs, add private internal notes, resend customer receipts, resend merchant notifications,
accept or reject declarations and export CSV files.

Accepting or rejecting a declaration sends a decision e-mail to the customer. A 
rejection reason is required for rejected declarations.

### Multilingual and translation support

The plugin works on monolingual sites and is prepared for WPML, Polylang Pro and
Loco Translate workflows.

Fixed plugin interface strings use the standard WordPress gettext/i18n system with
the `recesso-manager-for-woocommerce` text domain. On WordPress.org, translations
are handled through translate.wordpress.org and delivered by the standard WordPress
translation update system.

Configurable texts entered in Recesso Manager > Settings are edited in the site 
source/default language. Runtime translations are handled as follows:

 * WPML: configurable texts are registered for WPML String Translation.
 * Polylang Pro: configurable texts are registered with Polylang string translations
   when the Polylang API is available.
 * Loco Translate: fixed gettext strings can be customized locally; texts saved 
   in settings remain site configuration values unless translated by a runtime multilingual
   plugin.

Multilingual page handling:

 * the configured form, privacy and terms pages are stored as default/source-language
   page IDs;
 * current-language page translations are resolved when generating frontend links;
 * the language active at submission time is saved in the declaration;
 * the historical declaration statement, customer receipt and decision e-mails are
   generated in the submission language;
 * merchant notifications and internal reminders use the site default/source language.

Recommended setup:

 1. Create the form page in the default/source language and add `[rmwc_withdrawal_form]`.
 2. Translate that page and keep the shortcode in each translation.
 3. Translate the privacy and terms/withdrawal pages.
 4. Translate configurable plugin strings in WPML String Translation or Polylang string
    translations.
 5. Use translate.wordpress.org or local gettext tools only for fixed plugin interface
    strings.
 6. Check Recesso Manager > Configuration status.

### E-mail compatibility

The plugin sends e-mails with the standard WordPress `wp_mail()` function. It does
not configure SMTP, include a custom PHPMailer library or call WP Mail SMTP APIs.
SMTP plugins can therefore intercept mail normally.

A successful `wp_mail()` result means that WordPress accepted the message for sending.
It does not prove final mailbox delivery.

### Data storage and retention

The plugin creates these custom tables:

 * `{$wpdb->prefix}rmwc_requests`
 * `{$wpdb->prefix}rmwc_request_items`
 * `{$wpdb->prefix}rmwc_request_logs`

Default retention settings:

 * withdrawal declarations: 10 years;
 * business/documentary logs: 10 years;
 * technical/security logs: 180 days;
 * automatic technical log cleanup: enabled;
 * automatic declaration deletion: disabled/manual.

Automatic cleanup only deletes technical and security logs older than the configured
retention period. Withdrawal declarations and business/documentary logs are not 
deleted automatically.

On plugin deletion, data is preserved by default. Administrators can explicitly 
enable complete data deletion before uninstalling from Recesso Manager > Settings
> Data retention. Complete deletion requires selecting the destructive uninstall
option and entering the confirmation phrase shown in the settings page. When enabled,
uninstall removes custom tables, plugin options and temporary transients. This operation
is irreversible and should only be used after checking retention obligations and
taking a backup.

### Privacy

The plugin stores personal data connected to withdrawal declarations, including 
billing e-mail address, customer name, order number, selected products and quantities,
withdrawal statement, privacy acceptance text, request status, merchant decision
notes, internal admin notes, e-mail status and management logs.

The plugin integrates with WordPress privacy tools:

 * personal data exporter for withdrawal declarations matching an e-mail address;
 * personal data eraser that reports retained documentary records instead of deleting
   them automatically.

Deletion requests should be assessed manually by the site owner according to the
store retention policy and applicable legal/contractual obligations.

The plugin also adds suggested text to the WordPress privacy policy guide.

### External services

The WordPress.org-ready build does not load third-party JavaScript, images, tracking
pixels or external anti-spam services. E-mail delivery uses WordPress `wp_mail()`.
Optional anti-spam integrations should be implemented by separate add-ons and documented
by those add-ons.

No Contact Form 7 integration is required or used.

### Security notes

The plugin uses WordPress nonces, server-side validation, rate limiting, opaque 
temporary tokens, idempotency keys, prepared database queries, late escaping and
WooCommerce CRUD APIs.

Order lookup errors are intentionally generic and do not disclose whether the order
number, e-mail address or order status is the failing condition.

### Limitations

The plugin does not:

 * determine whether a withdrawal is legally valid;
 * check product delivery dates;
 * apply withdrawal exceptions automatically;
 * manage return shipping;
 * generate return labels;
 * calculate refunds;
 * create WooCommerce refunds;
 * change stock;
 * change WooCommerce order status automatically;
 * provide legal advice or guarantee compliance.

### Developer documentation

Recesso Manager for WooCommerce exposes a small public developer API through WordPress
actions and filters. The supported public hook prefix is `rmwc_`. Use these hooks
from a custom plugin or child theme; do not edit the plugin files directly.

The plugin intentionally keeps the API focused on integration points that are useful
without turning the plugin into an RMA, shipping or refund system. Hook callbacks
should avoid changing the historical meaning of declarations that have already been
submitted.

#### Order and item filters

 * `rmwc_resolve_order_id` – Customize how the customer-entered order number is 
   resolved to a WooCommerce order ID. Parameters: `$order_id`, `$order_number`,`
   $billing_email`.
 * `rmwc_allowed_order_statuses` – Customize which WooCommerce order statuses can
   enter the withdrawal flow. The settings UI loads statuses dynamically from WooCommerce.
   Default: `completed`. Parameters: `$statuses`.
 * `rmwc_item_is_withdrawable` – Include or exclude a specific order item from the
   public withdrawal form. Parameters: `$is_withdrawable`, `$item`, `$order`, `$
   product`.
 * `rmwc_visible_item_meta` – Customize public order item metadata saved internally
   with the declaration. Parameters: `$public_meta`, `$item`, `$order`.

#### Validation and declaration filters

 * `rmwc_final_confirmation_validation` – Run additional server-side validation 
   before the final declaration is saved. Return `true` to continue, `false` to 
   block with a generic error, or `WP_Error` to block with a specific error message.
   Parameters: `$valid`, `$flow`, `$order`.
 * `rmwc_request_code` – Customize the generated declaration code after the database
   row has been created. Parameters: `$code`, `$request_id`, `$request_data`.
 * `rmwc_statement_text` – Customize the historical declaration text saved at submission
   time. Parameters: `$text`, `$order`, `$selected_items`, `$customer_name`, `$language`.
   Use this with caution because it changes the documentary statement stored for
   new declarations.

#### Status, label and log filters

 * `rmwc_allowed_review_statuses` – Customize the internal management statuses. 
   Default statuses are `received`, `accepted` and `rejected`. Parameters: `$statuses`.
   Use with caution because custom statuses may require custom UI handling.
 * `rmwc_review_status_labels` – Customize human-readable management status labels.
   Parameters: `$labels`.
 * `rmwc_email_status_labels` – Customize human-readable e-mail status labels. Parameters:`
   $labels`.
 * `rmwc_log_scope_for_event` – Customize the event-log scope assigned to an event.
   Parameters: `$scope`, `$event_type`.
 * `rmwc_log_event_type_labels` – Customize human-readable event labels shown in
   the event log. Parameters: `$labels`.

#### E-mail filters

 * `rmwc_customer_email_subject` – Customize the customer receipt subject. Parameters:`
   $subject`, `$request`.
 * `rmwc_customer_email_body` – Customize the customer receipt HTML body. Parameters:`
   $body`, `$request`, `$items`.
 * `rmwc_merchant_email_subject` – Customize the merchant notification subject. 
   Parameters: `$subject`, `$request`.
 * `rmwc_merchant_email_body` – Customize the merchant notification HTML body. Parameters:`
   $body`, `$request`, `$items`.
 * `rmwc_customer_decision_email_subject` – Customize the customer decision e-mail
   subject. Parameters: `$subject`, `$request`, `$review_status`, `$decision_note`.
 * `rmwc_customer_decision_email_body` – Customize the customer decision e-mail 
   HTML body. Parameters: `$body`, `$request`, `$items`, `$review_status`, `$decision_note`.
 * `rmwc_merchant_pending_reminder_email_subject` – Customize the merchant pending-
   reminder subject. Parameters: `$subject`, `$request`.
 * `rmwc_merchant_pending_reminder_email_body` – Customize the merchant pending-
   reminder HTML body. Parameters: `$body`, `$request`, `$items`.

#### WooCommerce link filters

 * `rmwc_wc_email_link_email_ids` – Choose which WooCommerce e-mail IDs receive 
   the automatic withdrawal link. Default: `customer_completed_order`. Parameters:`
   $email_ids`.
 * `rmwc_wc_email_link_language` – Customize the language used for the automatic
   link in WooCommerce e-mails. Parameters: `$language`, `$order`, `$email`.
 * `rmwc_my_account_link_language` – Customize the language used for the link in
   the My Account order list. Parameters: `$language`, `$order`.
 * `rmwc_my_account_detail_link_language` – Customize the language used for the 
   link in the My Account order detail page. Parameters: `$language`, `$order`.
 * `rmwc_my_account_allow_billing_email_fallback` – Control whether a logged-in 
   customer can use the order billing e-mail as fallback in the My Account flow.
   Parameters: `$allow`, `$order`, `$user_id`.

#### Rate limit and retention filters

 * `rmwc_rate_limit_max_attempts` – Customize failed lookup attempts before temporary
   blocking. Default: `5`. Parameters: `$attempts`.
 * `rmwc_rate_limit_window` – Customize the rate-limit window in seconds. Default:`
   15 * MINUTE_IN_SECONDS`. Parameters: `$seconds`.
 * `rmwc_rate_limit_block_duration` – Customize the temporary block duration in 
   seconds. Default: `30 * MINUTE_IN_SECONDS`. Parameters: `$seconds`.
 * `rmwc_log_cleanup_scopes` – Choose which log scopes are automatically cleaned.
   Default: `technical` and `security`. Parameters: `$scopes`.
 * `rmwc_log_cleanup_batch_size` – Customize the log cleanup batch size. Parameters:`
   $batch_size`.
 * `rmwc_log_cleanup_max_batches` – Customize the maximum number of cleanup batches
   per run. Parameters: `$max_batches`.

#### Actions

 * `rmwc_before_request_created` – Fires before a declaration is inserted. Parameters:`
   $request_data`, `$item_rows`, `$order`.
 * `rmwc_request_created` – Fires after a declaration has been created. Parameters:`
   $request_id`, `$order`, `$selected_items`.
 * `rmwc_review_status_changed` – Fires after the merchant changes the management
   status. Parameters: `$request_id`, `$old_status`, `$new_status`, `$decision_note`,`
   $actor_user_id`.
 * `rmwc_customer_receipt_sent` – Fires after the customer receipt has been accepted
   by `wp_mail()`. Parameters: `$request_id`, `$customer_email`.
 * `rmwc_customer_receipt_failed` – Fires after the customer receipt send attempt
   fails. Parameters: `$request_id`, `$error_message`.
 * `rmwc_merchant_notification_sent` – Fires after the merchant notification has
   been accepted by `wp_mail()`. Parameters: `$request_id`, `$recipients`.
 * `rmwc_merchant_notification_failed` – Fires after the merchant notification send
   attempt fails. Parameters: `$request_id`, `$error_message`.
 * `rmwc_customer_decision_email_sent` – Fires after the decision e-mail has been
   accepted by `wp_mail()`. Parameters: `$request_id`, `$customer_email`, `$review_status`.
 * `rmwc_customer_decision_email_failed` – Fires after the decision e-mail send 
   attempt fails. Parameters: `$request_id`, `$error_message`, `$review_status`.
 * `rmwc_merchant_pending_reminder_sent` – Fires after a merchant reminder has been
   accepted by `wp_mail()`. Parameters: `$request_id`, `$recipients`.
 * `rmwc_merchant_pending_reminder_failed` – Fires after a merchant reminder send
   attempt fails. Parameters: `$request_id`, `$error_message`.
 * `rmwc_technical_logs_cleaned` – Fires after automatic technical/security log 
   cleanup. Parameters: `$deleted_count`, `$threshold_gmt`, `$scopes`.

#### Examples

Allow processing orders as well as completed orders:

    ```
    add_filter( 'rmwc_allowed_order_statuses', static function ( $statuses ) { return array( 'completed', 'processing' ); } );
    ```

Run a custom integration after a declaration is created:

    ```
    add_action( 'rmwc_request_created', static function ( $request_id, $order, $selected_items ) { /* Send data to your internal system. */ }, 10, 3 );
    ```

## Screenshots

[⌊Form where the customer enters their billing email and order number⌉⌊Form where
the customer enters their billing email and order number⌉[

Form where the customer enters their billing email and order number

[⌊List of products in the order, with the option to select items and quantities 
for withdrawal⌉⌊List of products in the order, with the option to select items and
quantities for withdrawal⌉[

List of products in the order, with the option to select items and quantities for
withdrawal

[⌊Withdrawal summary and policy acceptance⌉⌊Withdrawal summary and policy acceptance⌉[

Withdrawal summary and policy acceptance

[⌊Customizable confirmation message after the withdrawal request is submitted⌉⌊Customizable
confirmation message after the withdrawal request is submitted⌉[

Customizable confirmation message after the withdrawal request is submitted

[⌊Backend detail view of the request: accept, reject, add notes, and change log⌉⌊
Backend detail view of the request: accept, reject, add notes, and change log⌉[

Backend detail view of the request: accept, reject, add notes, and change log

[⌊Plugin general settings page (withdrawal request form settings)⌉⌊Plugin general
settings page (withdrawal request form settings)⌉[

Plugin general settings page (withdrawal request form settings)

[⌊Plugin general settings page (order status management and excluded product categories)⌉⌊
Plugin general settings page (order status management and excluded product categories
)⌉[

Plugin general settings page (order status management and excluded product categories)

[⌊Plugin general settings page (data retention)⌉⌊Plugin general settings page (data
retention)⌉[

Plugin general settings page (data retention)

## Installation

 1. Upload the ZIP file from Plugins > Add New > Upload Plugin.
 2. Activate the plugin.
 3. Create a published WordPress page that contains `[rmwc_withdrawal_form]`.
 4. Go to Recesso Manager > Settings.
 5. Select the withdrawal form page.
 6. Configure merchant notification recipients, privacy text, e-mail texts and data
    retention.
 7. Add the public link where appropriate using `[rmwc_withdrawal_link]` or enable 
    the optional WooCommerce e-mail/My Account links.

If WooCommerce is not active, the plugin shows an admin notice and does not boot
its functional services.

## FAQ

### Does this plugin guarantee legal compliance?

No. It provides a technical workflow for submitting and documenting withdrawal declarations.
Legal configuration and assessment remain the responsibility of the site owner/merchant.

### Does it work with WooCommerce HPOS?

Yes. The plugin declares HPOS compatibility and accesses orders through WooCommerce
CRUD APIs.

### Does it require login?

No. Guests can use billing e-mail address and order number. Logged-in customers 
can also start the workflow from eligible My Account orders if the option is enabled.

### Does it delete old withdrawal declarations automatically?

No. Automatic deletion is limited to technical and security logs. Documentary withdrawal
declarations are retained unless manually handled by the site owner.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Recesso Manager for WooCommerce” is open source software. The following people 
have contributed to this plugin.

Contributors

 *   [ giazam ](https://profiles.wordpress.org/giazam/)

[Translate “Recesso Manager for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/recesso-manager-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/recesso-manager-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/recesso-manager-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/recesso-manager-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/recesso-manager-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.6.32

 * Renamed the public shortcodes to `[rmwc_withdrawal_form]` and `[rmwc_withdrawal_link]`
   so every plugin-owned identifier uses the established `rmwc` prefix.
 * Removed unnecessary `function_exists()` wrappers around uniquely prefixed plugin
   functions.

#### 1.6.31

 * Removed the Domain Path plugin header after removing bundled translation files
   for WordPress.org translation handling.

#### 1.6.30

 * Removed the former free-form styling editor, related stored option and inline
   output to avoid any ambiguity with code-insertion tools.
 * The plugin now uses only its bundled frontend and admin stylesheets; visual overrides
   can be handled through the active theme or a child theme.

#### 1.6.28

 * Reordered and shortened the readme description area so the WordPress.org parser
   does not include additional custom sections in the Description length check.

#### 1.6.27

 * Shortened the WordPress.org readme description section to avoid Plugin Check 
   truncation warnings.

#### 1.6.26

 * Added configurable operational return instructions for the customer after the
   declaration is submitted.
 * Added optional inclusion of the return instructions in the customer receipt e-
   mail.
 * Added a rich text editor and visibility toggles for return instructions in the
   request-management settings.

#### 1.6.25

 * Improved the operational rules settings layout so order statuses and excluded
   product categories are displayed one per line.

#### 1.6.24

 * Added configurable allowed WooCommerce order statuses loaded dynamically from
   registered statuses.
 * Added optional product and product-category exclusions from the public withdrawal
   form.
 * Expanded configuration status checks for form page public access, link visibility,
   allowed statuses and product exclusions.
 * Improved customer receipt wording around online transmission, content, date and
   time.

#### 1.6.23

 * Expanded developer documentation in the readme and admin Instructions page with
   the supported public `rmwc_*` actions and filters.

#### 1.6.22

 * Removed the old public shortcode aliases and the legacy shortcode attribute. 
   The plugin now exposes only its primary public shortcodes and the `rmwc_*` developer
   API.

#### 1.6.21

 * Removed old private-prefix compatibility hooks, migration routines, uninstall
   cleanup paths and related public documentation references.
 * Kept the public `rmwc_*` developer hooks as the only documented extension API.

#### 1.6.20

 * Hidden the internal operational-completion flag from admin screens, order boxes,
   exports, privacy export and public-facing documentation while keeping the underlying
   data field for compatibility.
 * Updated plugin author metadata and contact details to Giacomo Zamprogno and removed
   previous agency references.

#### 1.6.19

 * Added a Recesso Manager box to the WooCommerce order edit screen.
 * Shows linked withdrawal declarations, declared products, quantities, informational
   amounts and direct links to declaration details.

#### 1.6.18

 * Moved the private internal note editor near the bottom of the request detail 
   page, immediately before the declaration log.

#### 1.6.17

 * Fixed bundled Italian translation file encoding.
 * Added a safe repair routine for previously saved mojibake option values created
   by the faulty language build.
 * Localized backend email-status badges and remaining request-list labels.

#### 1.6.16

 * Added a configurable introductory text before the public order lookup step.
 * Added backend resend controls for customer receipts and merchant notifications.
 * Added private internal notes for declarations.
 * Added backend filters by management status.
 * Expanded backend search to include customer name, decision/internal notes and
   declared product data.
 * Added a days-elapsed column to the declarations list.
 * Added direct Open/Edit links for the configured form page.
 * Improved event log readability with human labels and badges.
 * Refined the WordPress.org readme with a clearer commercial but legally prudent
   description.

#### 1.6.15

 * Removed public item metadata/variation columns from frontend, backend and email
   product tables for a cleaner product list while keeping metadata stored internally
   for compatibility.
 * Kept stored withdrawal declaration text focused on product names and quantities,
   without appending public line item metadata.

#### 1.6.14

 * Removed the empty Anti-spam security settings tab from the WordPress.org-ready
   build.
 * Changed uppercase backend Instructions labels to normal title case.

#### 1.6.13

 * Addressed the remaining Plugin Check report by documenting the trusted WordPress-
   generated page dropdown markup and the uncached MySQL advisory locks used for
   concurrent quantity protection.

#### 1.6.12

 * Completed the second Plugin Check cleanup pass by fixing remaining translator
   comments, template-rendering false positives, settings escaping, server input
   sanitization and item input sanitization.

#### 1.6.11

 * Removed the bundled third-party anti-spam integration from the WordPress.org-
   ready build. Anti-spam add-ons can hook into final confirmation validation.
 * Removed root Markdown development files from the production ZIP.
 * Added translator comments, stricter input sanitization notes and Plugin Check-
   focused inline documentation for unavoidable custom-table SQL.
 * Removed dynamic gettext translation of administrator-entered option values; dynamic
   strings remain handled by WPML/Polylang integrations.

#### 1.6.10

 * Added explicit legal disclaimer guidance in the readme and admin Instructions
   page.
 * Added an informational legal review check to the Configuration status screen.
 * Added a settings notice reminding merchants to review configurable legal/operational
   texts with a qualified consultant.

#### 1.6.9

 * Improved the settings-screen editing experience and admin-screen layout.

#### 1.6.8

 * Reorganized the settings screen into tabs for easier configuration.
 * Moved the instructions from the configuration status screen to a dedicated submenu
   page.
 * Reordered the Recesso Manager admin menu: Withdrawals, Settings, Event log, Instructions,
   Configuration status.

#### 1.6.7

 * Refactored plugin gettext source strings to English and regenerated bundled Italian/
   English language files.
 * Kept configurable settings texts as source/default-language values for WPML and
   Polylang string translation.
 * Added the `text` shortcode attribute for custom link labels.
 * Localized CSV export headers and refreshed translation instructions.

#### 1.6.6

 * Improved multilingual handling for WPML, Polylang Pro and Loco Translate workflows.
 * Configurable setting texts are now edited as source-language values instead of
   changing with admin language.
 * Historical declaration statements are generated in the submission language.

#### 1.6.5

 * Accessibility-focused update for the public withdrawal flow and plugin admin 
   tables.
 * Added fieldsets, legends, table captions, stronger focus styles, status/error
   announcements, required-field descriptions and improved keyboard target sizing.
 * Added accessibility guidance to the configuration status screen and manual testing
   checklist.

#### 1.6.4

 * Improved bundled frontend and admin stylesheet defaults.

#### 1.6.3

 * Added bundled English translations for plugin UI strings while keeping Italian
   as the default source language.
 * Added language files for common English locales and Italian reference files.
 * Default configurable texts are localized on new installations and can be translated
   at runtime when they still match bundled defaults.

#### 1.6.2

 * Enforced a minimum value of 14 days for the informational withdrawal period setting.
 * Existing installations with a lower stored value are automatically normalized
   to 14 days during upgrade.

#### 1.6.0

 * Added public form and link shortcodes while keeping the previous shortcode names
   as aliases.

#### 1.5.1

 * Added explicit uninstall data removal settings.
 * Data is preserved by default when the plugin is deleted.
 * Full data deletion on uninstall is available only after selecting the destructive
   option and entering a confirmation phrase.
 * Uninstall cleanup always removes scheduled events and temporary transients.

#### 1.5.0

 * Renamed the public plugin identity to Recesso Manager for WooCommerce.
 * Aligned folder, main file and text domain with the WordPress.org-ready slug.
 * Switched license metadata to GPLv2 or later.
 * Added WordPress privacy exporter/eraser integration.
 * Added privacy policy guidance.* Reworked readme for WordPress.org submission 
   format.

#### 1.4.14

 * Hardened WPML handling for page selectors in settings.
 * Removed duplicate My Account order detail link, keeping the WooCommerce action
   only.

#### 1.4.11

 * Added data retention settings and automatic cleanup of technical/security logs.

#### 1.4.5

#### 1.4.0

 * Added configuration status, exports, merchant reminders and technical snapshots.

#### 1.0.0

 * Initial private release.

## Meta

 *  Version **1.6.32**
 *  Last updated **2 weeks ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0.3**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[recesso](https://wordpress.org/plugins/tags/recesso/)
   [returns](https://wordpress.org/plugins/tags/returns/)[withdrawal](https://wordpress.org/plugins/tags/withdrawal/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/recesso-manager-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/recesso-manager-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/recesso-manager-for-woocommerce/reviews/)

## Contributors

 *   [ giazam ](https://profiles.wordpress.org/giazam/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/recesso-manager-for-woocommerce/)