=== Smart Refunds & Returns for WooCommerce ===
Contributors: wpsolutionsplus, headplus, freemius
Tags: refund, return, rma, woocommerce cancel order, withdrawal
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.1.4
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

WooCommerce refunds, returns & RMA with EU right-of-withdrawal support. Guest return requests, order tracking & a cancel-order button — all free.

== Description ==

⚖️ **A WooCommerce refunds, returns & RMA plugin built for the new EU right of withdrawal — and it's free.**

**Smart Refunds & Returns** turns order cancellations, refunds and returns into a smooth self-service flow: shoppers **cancel an order or request a refund** on their own — as a **guest** from the **WooCommerce order-tracking page**, or from **My Account** — and every request is recorded as a proper **EU right-of-withdrawal declaration**. A complete **refund, return and RMA desk**, built right into WooCommerce.

Since **19 June 2026**, Directive (EU) 2023/2673 asks online stores across the EU to give shoppers a clear way to withdraw from a purchase and to send them a confirmation with the **exact date and time, on a durable medium**. Most refund, return and RMA plugins were never designed around that obligation. **Smart Refunds & Returns was — from the very first line of code.**

Every return runs as a proper **declaration of withdrawal**, not a vague "request", and every submission fires an automatic, **timestamped acknowledgement email** — the durable-medium record the directive is looking for.

> 💡 *This is a tool to help you comply — it is not legal advice. Always check your own country's transposition of the directive.*

That single capability is where most competitors fall short, and it's where your store gets to stand out. 🌍 Then it gets even better for your customers 👇

= 👤 True guest returns — no account, no password =

The feature most refund plugins quietly skip. A guest opens your standard WooCommerce **order-tracking page**, types the order number and billing email they already have, and can **cancel the order or start a return right there** — secured by a **signed access token**, so their email never appears in a URL or in the page source. No forced sign-up. No endless email ping-pong. Registered customers get the same **cancel-order / refund-request** flow from **My Account**.

= 💶 You always keep control of the money =

The plugin runs the return workflow, the statuses and the customer emails — but it **never touches your funds**. It can't know how you agreed to refund each customer (card, cash, bank transfer, store credit), so it **never creates a WooCommerce refund or a coupon on its own**. No accidental double refunds. Your cash, your call. 🔒

= 🧩 Native WooCommerce — nothing new to learn =

Every return is a real WooCommerce order status with its own panel on the order edit screen. No separate dashboard, no new mental model. If your team knows WooCommerce, they already know this. ⚡

= ✨ Everything you get in the free plugin =

* ⚖️ **EU-withdrawal-ready flow** with a timestamped acknowledgement email on a durable medium
* 🛑 **One-click "Cancel order" button** on the order-tracking page and in My Account — the customer's entry point to a refund or return
* 👤 **Guest returns & refund requests** from the order-tracking page, secured by a signed token
* 📝 `[smart_refund_form]` shortcode for a clean, standalone return page
* 🧱 **Unlimited-field form builder** — text, textarea, checkbox, radio and select, drag-and-drop
* 🗂️ **Five return statuses** (requested, approved, completed, cancelled, refused) — plus reopening a closed return at any time, silently
* 🖥️ **Record & edit a return straight from the order screen** — perfect for requests that arrive by phone or email
* 📧 **Customer status emails**, with per-change control over whether one is sent
* 📨 **Multi-recipient admin emails** — warehouse *and* finance, on the same notification
* 🔗 Return-policy link inside the emails
* 🚀 **HPOS** and **block cart/checkout** compatible

Nothing above is a teaser. It's all fully functional, with no metering, no time limit and no licence to enter.

= 🚀 Ready to scale? Meet Pro =

Free already runs a complete, compliant return and refund desk. When your volume grows and you want a full **RMA workflow** end-to-end, **[Smart Refunds & Returns Pro](https://wpsolutionsplus.com/product/smart-refunds-returns-for-woocommerce/)** adds the next layer. It ships as a **separate plugin**, so nothing in this free version is ever locked, throttled or waiting for a key. 🙌

**Pro unlocks:**

* 🔄 The full **9-status RMA workflow** (awaiting customer reply, awaiting return, checking returned items, in progress…), each with its own transactional email
* 📎 **File / image upload**, multi-select and HTML field types — let customers attach a photo of the defect
* 📦 **Partial returns** — customers pick exactly which items and quantities to send back
* 🚚 Refund **shipping cost** and extra **order fees**
* 🎯 **Conditional visibility** — show the return button only when your rules match (days since order, product, category, payment method, user role)
* ⏱️ **Auto-hide** the return button after your chosen window
* 📄 **Custom return instructions**, sent automatically the moment you accept a return

👉 **See it all on the [Pro page](https://wpsolutionsplus.com/product/smart-refunds-returns-for-woocommerce/).** Start free today, upgrade the day you need to — your data and setup carry straight over.

== Installation ==

1. Upload the plugin through **Plugins &gt; Add New**, or copy it to `/wp-content/plugins/`.
2. Activate the plugin.
3. Go to **WooCommerce &gt; Settings &gt; Smart Refunds** and enable the return button.
4. Build your return form under the **Refund Form** section.
5. Optional standalone guest page: create a page containing the `[smart_refund_form]` shortcode and select it in the refund-form-page setting.
6. Confirm you have a WooCommerce order-tracking page (`[woocommerce_order_tracking]`) — that's where guests cancel an order or start a return.

== Frequently Asked Questions ==

= Does it help me comply with the EU right of withdrawal? =

The customer-facing flow is built as a **declaration of withdrawal** and sends a timestamped acknowledgement on a durable medium, designed with Directive (EU) 2023/2673 in mind (applicable from 19 June 2026). It's a tool to help you — not legal advice. Please verify your own obligations and your country's transposition.

= Can customers cancel an order or request a refund themselves? =

Yes. A "Cancel order" button appears on the WooCommerce order-tracking page and in My Account, and it takes the customer straight into the refund/return flow — no back-and-forth emails needed.

= Do customers need an account to start a return? =

No. Guests start a return from the WooCommerce order-tracking page using their order number and billing email. Registered customers can also use My Account. Guest access is secured by a signed token, so the email is never exposed in the URL.

= Does the plugin refund the money automatically? =

No, and that's deliberate. It can't know how you agreed to refund each customer, so it never creates a WooCommerce refund or a coupon on its own. You settle the refund however you agreed, then mark the return completed.

= Does it work with HPOS (High-Performance Order Storage)? =

Yes. The plugin declares compatibility with WooCommerce custom order tables and with the block-based cart and checkout.

= Where do returns show up in the admin? =

Each return sets a dedicated status on the order and adds a panel to the order edit screen, where you move it through your workflow. Returns also get their own filter in the WooCommerce Orders list.

= Is there a Pro version, and is the free one crippled? =

There's a Pro version, and no — the free plugin is fully functional. Pro is a **separate plugin**, not an unlock code, so nothing here is disabled waiting for a licence. Pro adds the full RMA workflow with an email for every step, conditional visibility, partial returns, shipping and fee refunds, and the upload / multi-select / HTML field types. See the [Pro page](https://wpsolutionsplus.com/product/smart-refunds-returns-for-woocommerce/).

== Screenshots ==

1. The guest "Cancel order / start a return" button on the WooCommerce order-tracking page — no login needed.
2. The customer's return-status page — live status and full return details.
3. Returns in the WooCommerce Orders list, with their own dedicated order status.
4. The return panel on the order edit screen — approve, add a note and notify the customer in one place.
5. Smart Refunds settings in WooCommerce — quick to set up.
6. The drag-and-drop refund-form builder.

== Changelog ==

= 1.1.4 =
* Updated Freemius SDK to the latest version.

= 1.1.3 =
* The Pro-only options now appear in the settings as clearly labelled, locked previews, so you can see exactly what Pro adds before upgrading — nothing is hidden and nothing nags.
* Added a Greek (el) translation, bundled with the plugin.
* Refreshed the plugin description, short description and search tags.

= 1.0.3 =
* Unlimited form fields are now part of the free plugin, and the one-field limit is gone.
* Admin emails can now go to several recipients, and you can decide per change whether the customer is emailed.
* Answers and quantities can now be edited from the order screen in the free plugin.
* The Pro features are no longer part of this download: they now ship as a separate plugin instead of being included and switched off.
* Translation files are no longer bundled; translations come from translate.wordpress.org.

= 1.0.2 =
* Reopening a closed return is now available in the free edition too, and never emails the customer.
* The Reopen button now uses the standard WooCommerce button styling, matching the order screen.

= 1.0.1 =
* The upgrade links now open the secure hosted checkout in a new tab for a smoother, more reliable purchase.
* Added the upgrade prompt to the Return instructions setting.

= 1.0.0 =
* Initial release.
* Guest returns from the WooCommerce order tracking page, secured by a signed access token.
* `[smart_refund_form]` shortcode for a standalone return page.
* Withdrawal-friendly wording and a timestamped acknowledgement email on a durable medium.
* Return workflow with a dedicated order status, admin panel and transactional emails.
* The plugin never creates a WooCommerce refund or coupon on its own.
* Compatible with HPOS and the block-based cart and checkout.

== Upgrade Notice ==

= 1.1.4 =
Maintenance release: the licensing SDK has been updated to its latest version.

= 1.1.3 =
See at a glance what Pro adds — the premium options now show as labelled, locked previews in the settings — plus a bundled Greek translation.

= 1.0.3 =
Unlimited form fields, multi-recipient admin emails and order-screen editing are now part of the free plugin.

= 1.0.2 =
Reopen now works in the free edition and matches the native WooCommerce button style.

= 1.0.1 =
Smoother, more reliable upgrade checkout.

= 1.0.0 =
Initial release.
