0+
October 25, 2026
September 22, 2026
Redono gives a WooCommerce shop the after-sale half it usually lacks: a place for a customer to say something is wrong, and a place for the shop to answer. From My Account > Orders a customer opens a request on an eligible order and chooses what they actually need.
They pick the items and quantities, choose a reason from a list that fits the type they picked, add a note, and for a complaint or a repair state the remedy they would prefer: repair, replacement or refund. The request is stored as a private record, emailed to you, confirmed to the customer by email with its request number, and given a status the customer can follow from their own account.
Each order accepts one request of each type, so a customer who has already returned part of an order can still raise a separate complaint or repair on it later.
Every request lands under WooCommerce > Return Requests, with the order, the customer, the items, the reason, the note and the preferred remedy on one screen. You move it through requested, approved, rejected and completed, and whatever status you set is the status the customer sees. The list has a Type column and a filter, so returns, complaints and repairs can be worked through separately.
It does not move money. Redono records a request and tracks its status; you process any refund in the normal WooCommerce order screen, deliberately, with the record next to it.
It does not print carrier labels, book pickups or rate-shop return shipping. Those need a carrier contract, and a plugin that guesses at one is worse than no plugin.
It is not legal advice. The request types map onto EU consumer law, and the wording, the return window and the eligible statuses are yours to set.
In WordPress. Each request is a private returns_rma custom post type with its own meta; the settings are two options. No account, no external service, no third-party script, and the notification and receipt emails go through your site’s own wp_mail.
Redono connects to no external services. It sends no data off your site and loads no third-party scripts, fonts or APIs. Each return request is stored locally in WordPress as a private returns_rma custom post type (with _returns_* post meta for the order, customer, items, reason, note and status), and the plugin’s configuration lives in the returns_settings and returns_db_version options. The admin notification email and the customer’s receipt are sent through your site’s own WordPress mail (wp_mail), so delivery uses whatever mail setup your server or SMTP plugin already provides.
Redono is fully translatable and ships the redono.pot template. Translations are delivered by WordPress.org language packs from translate.wordpress.org, which is where Polish, German and Spanish are being contributed; the package itself carries no compiled translation files.
/wp-content/plugins/redono, or install via Plugins > Add New.Yes. WooCommerce must be installed and active.
Orders in the statuses you choose under WooCommerce > Redono (Completed and
Processing by default). A Return must be filed within the return window in days
(30 by default); a Complaint or Repair within the complaint and repair window in
months (24 by default). Set either window to 0 to remove that time limit.
No. This MVP records the request and tracks its status. Process any refund in the
normal WooCommerce order screen; the return record stays in sync with the status
you set.
Each submission is emailed to the store admin and saved as a private “Return
Request” record under the WooCommerce menu in wp-admin.
Not with the same request type. Each order accepts one Return, one Complaint and
one Repair request. Once all three types have been used, the order’s detail page
and the request endpoint both show a notice instead of the form. The link in the
My Account orders list still appears; opening it leads to that same notice.
Yes. On the My Account login page a guest follows the “Ordered without an account?”
link, enters the order number and the billing email, and gets the request form for
that order. A wrong number and a wrong email give the same message, attempts are
limited to 5 per 15 minutes per IP address, and access lasts 30 minutes and covers
that one order only. Orders placed by a registered customer are reached by logging
in, never by this lookup.
Yes. On submission the billing email receives a receipt with the request type, the
items and the request number. Emails about later status changes are not part of
this plugin.
It is for the legal guarantee remedy. When an item is faulty, EU law lets a
consumer ask the seller to repair or replace it (Directive (EU) 2019/771, art. 13).
A customer can ask you to repair a faulty item and state their preferred remedy
(repair, replacement or refund). The request is recorded like any other and
tracked through the same status workflow. The separate EU right to repair rules
(Directive (EU) 2024/1799) put their obligations on manufacturers, not on the
shop, and this plugin does not implement them.
Yes. This plugin is compatible with WordPress Multisite. Network activate it or activate it on individual sites; each site keeps its own settings and data.
returns/types filter and a returns/request_created action for extensions.Returns\Support\Refunds helper with returns/order_refund action for PRO refund automation.Returns\Support\Reasons with returns/reasons and returns/reason_label filters for PRO analytics and extensions.