WooCommerce withdrawal and returns plugin
Under contract · Mediapilote● Live
A WooCommerce plugin for returns and the right of withdrawal: logged-in and guest flows, a withdrawal button, refunds and detection of shipping plugins.
Context
Mediapilote has a WooCommerce returns plugin installed on its clients’ shops. The 2026 requirements on the online right of withdrawal meant it had to evolve.
I took the existing plugin and turned it into a version 2, renamed « Mediapilote - Rétractation & Retours », delivered in one focused day of work.
Challenge
The flow had to work for logged-in customers and guests alike, all the way to the refund through the payment gateway. It also had to adapt to the shipping plugins already installed on each shop, which differ from one client to the next.
Finally, the plugin runs on third-party sites: it could not conflict with other plugins or expose technical details to end customers.
Approach
I rewrote the back end (withdrawal compliance, guest requests, decisions, gateway refunds), then the customer front end: a public page for guests, tracking steps in My account, a withdrawal button and styles inherited from the theme. Administration goes through a React panel with a guided workflow.
Carrier adapters detect the installed plugins: Colissimo and Chronopost are handled automatically, while Mondial Relay, UPS, InPost, Boxtal, Sendcloud and La Poste are detected. Customer emails were rebuilt and replace WooCommerce’s native email on refund.
(04) — Results
Key figures- 11
- commits
- 2.0.2
- version shipped
- 2
- carriers handled automatically
- 2
- flows: logged-in and guest
