Skip to content

FAQ

Yes. WooCommerce must be installed and active. Returns registers under the WooCommerce menu and extends My Account; it does nothing on its own.

An order shows the Request a return action only when it is in one of the eligible statuses (Completed and Processing by default), is within the return window, belongs to the logged-in customer, and has no return request yet. The window is counted from the order date; set it to 0 under WooCommerce → Returns to remove the time limit.

No. Returns records the request and tracks its status. Process any refund in the standard WooCommerce order screen, setting a request to Completed does not move money. The status box says as much.

Who receives the notification email, and can I change the address?

Section titled “Who receives the notification email, and can I change the address?”

Every request is emailed to your site’s Administration Email Address (Settings → General). There is no recipient field in Returns. To send notices elsewhere, change the site admin email or route that address with an SMTP/forwarding plugin. The email is plain text, sent through wp_mail, so delivery depends on your WordPress mail setup.

Each submission is saved as a private Return Request record (the returns_rma custom post type) under WooCommerce → Return Requests, and emailed to the site admin. The record holds the order, the chosen items and quantities, the reason and the note.

Can a customer return the same order twice?

Section titled “Can a customer return the same order twice?”

No. Once a request exists for an order, the Request a return action is hidden for that order and a notice is shown instead, on the orders list, the order view and the form URL.

Can someone open a return on an order that isn’t theirs?

Section titled “Can someone open a return on an order that isn’t theirs?”

No. Only the order’s logged-in owner sees the action, ownership is re-checked when the form loads and again on submit, and the submitted items are matched against the order’s real line items. A tampered or guessed request is rejected (no IDOR).

Four: Requested, Approved, Rejected and Completed. You move a request through them in wp-admin via the Status dropdown on the record. The customer sees the current status in My Account, drawn as a journey track; a rejected return forks off the path rather than continuing to Completed.

Not from the admin in the free edition. The dropdown offers five fixed reasons: arrived damaged or faulty, wrong item received, no longer needed, size or fit issue, and other.

No. The flow attaches to WooCommerce’s own My Account orders and order-view hooks and a request-return account endpoint. There is nothing to place by hand.

Is there a template I can override in my theme?

Section titled “Is there a template I can override in my theme?”

No. The free edition renders its markup directly and is themed through CSS, the storefront stylesheet is built on --returns-* custom properties (radius, border, muted text and the accent), so you re-skin it from your theme without overriding markup. There is no yourtheme/returns/ template path.

No. The request form is a plain server-rendered POST. There is no JavaScript and no external request, so the flow adds no layout shift and works with scripts disabled.

Is it compatible with HPOS and the block checkout?

Section titled “Is it compatible with HPOS and the block checkout?”

Yes. Returns works with WooCommerce High-Performance Order Storage (HPOS) and the Cart/Checkout Blocks. Order edit links resolve correctly under both HPOS and legacy post-based order storage.

Deleting the plugin removes its two options (returns_settings and returns_db_version). The submitted Return Request records are intentionally kept, so they survive a reinstall; delete them by hand from the Return Requests list if you want them gone. A POT file is included for translation.