Configuration
Last modified:
Advanced Returns and Refunds adds a structured returns flow for WooCommerce stores. Customers can register a return from their account page (or a dedicated guest page), select which items to send back, choose between a refund or an exchange, and optionally buy return shipping from the store. Each return is saved as its own return order so it can be inspected, edited and refunded just like any other WooCommerce order.
It also adds a built-in withdrawal link that meets the requirements of the 2026 EU directive – accessible for both logged-in customers and guest buyers.
Required WordPress/WooCommerce settings
- WordPress 5.0 or higher
- WooCommerce 5.0 or higher
- PHP 7.2 or higher
Configuration
Go to: WooCommerce → Settings → Returns.
General configuration
General behaviour of the plugin.
- License key – Your Krokedil license key. Required for updates.
- Return limit – Number of days after order completion that returns are still possible. Set to
0for no time limit. - Activate exclude products – Adds an Exclude from return checkbox to the product edit screen. See Excluding products.
- Exclude tags – Here you can add a comma-separated list of product tags. Products tagged with any of these tags cannot be returned.
- Activate Free shipping coupon – When enabled, a free-shipping coupon is generated each time a customer chooses to exchange an item. See Exchange coupon.
- Free shipping coupon limit – Number of days the exchange coupon stays valid. Set to
0for no expiry. - Offer return shipment – Lets the customer choose to buy return shipping from the store as part of the return flow.
- Return shipment price – The price the customer pays for return shipping when they choose to buy it.
- Repay shipping cost – Select if you want to include the original order’s shipping cost in the refund. Choose between No or Yes – but only when the entire order is returned.
- Return order number prefix – Optional prefix used between the original order number and the return sequence number. The format is
{original_order_number}{prefix}{return_number}. - Completed return order status – Select which status to set on the parent order when a return is completed and refunded. Select Do not change order status to leave the parent order untouched.
Customer return form
These fields control the headings, helper text, button labels and post-confirmation message shown to the customer during the return flow.
The defaults work out of the box but most stores will want to translate or rephrase them.
Step 1 – Start the return
- Step 1: Start new return title – Enter a custom title for the “Start new return” section.
- Step 1: Start new return text – Enter custom text for the “Start new return” section.
- Step 1: Start new return button text – Enter custom text for the “Start new return” button.
Step 2 – Select products
- Step 2: Products title – Enter a custom title for the “Step 2” section – where the customer selects the products to be returned.
- Step 2: Products text – Enter a custom text for the “Step 2” section.
Step 3 – Summary
- Step 3: Return shipping title – Enter a custom title for “Step 3” section – where the customer selects how to handle return shipping.
- Step 3: Return shipping text – Enter a custom text for the “return shipping” section.
- Step 3: Return or exchange item text – Enter a custom text for the “return or exchange item” section.
- Step 3: Exchange item notice text – Enter the informative notice displayed to the customer when “Exchange item” is selected as the return option.
Step 4 – Confirmation
- Step 4: Created return text – Enter the text displayed to the customer after created return. This text is displayed on the website and in the email sent to the customer.
Available placeholders
You can include these placeholders in the confirmation text. They are replaced with the relevant values when the message is rendered.
| Placeholder | Replaced with |
|---|---|
{return_order_number} | The number of the new return order. |
{return_order_id} | The internal ID of the return order. |
{order_number} | The original order number. |
{order_id} | The internal ID of the original order. |
{buy_return_shipping} | The customer’s choice for return shipping (yes/no). |
{coupon_code} | The exchange coupon code (if the customer chose to exchange). |
{coupon_valid_date} | The expiry date of the exchange coupon. |
{return_shipment_no} | The return shipment tracking number — requires Krokedil Shipping Connector. |
{return_shipment_label_url} | A link to the printable return label — requires Krokedil Shipping Connector. |
{return_shipment_qr_code} | The return shipment QR code — requires Krokedil Shipping Connector. |
Example:
Thanks for your return!
Your return number is {return_order_number} (linked to order {order_number}).
If you chose to exchange the item, use this coupon at checkout for free shipping:
{coupon_code} (valid until {coupon_valid_date}).
Print your return label here: {return_shipment_label_url}Translations
All strings use the advanced-returns-and-refunds text domain. If you prefer to manage copy through a translation tool such as Loco Translate or Poedit instead of the settings UI, you can — leave the corresponding setting blank to fall back to the translated default.
Order statuses
The plugin registers a custom order status, Return pending (return-pending). Returns sit in this status until you process them.
See Processing returns for the admin workflow.