Returino – Formular de retur for WooCommerce

Changelog

1.2.5

  • New: rejection reasons. Merchants can define a list of preset reasons in
    Settings, and rejecting a request now requires a reason — pick a preset
    or type one on the spot. The reason is sent in the customer’s rejection
    email, shown on the request in My Account and on the admin request panel,
    and added to the linked order note. Works from both the request edit
    screen and the quick actions on the WooCommerce order screen.
  • New: per-category withdrawal rules. Exclude specific product categories
    from returns (the legal exceptions to the right of withdrawal — art. 16
    of OUG 34/2014: personalised, sealed-then-unsealed, perishable goods,
    etc.) or grant them a longer
    window than the standard one (never shorter than 14 days). Ineligible
    products are shown disabled with an explanation on the form, and the
    rule is re-enforced server-side so it can’t be bypassed.
  • New: one active request per order. While a request is pending or being
    processed, the customer can’t open a second one for the same order — they
    see its status in My Account instead. Once it’s resolved they can submit
    again: approved quantities are deducted (a line can’t be returned more
    times than it was purchased), while a rejection frees the item up for
    another attempt.
  • Change: the minimum configurable withdrawal period is now 14 days, the
    statutory minimum under OUG 34/2014 — a longer window can still be set,
    a shorter one can’t.
  • Change: the “Powered by Returino” credit in the confirmation email and on
    the public form now links to returino.com (UTM-tagged), so store owners
    can attribute the traffic. The email keeps its raster mark, which remains
    the most reliable choice across email clients.
  • Fixed a legal-source error: the withdrawal exceptions (personalised,
    sealed-then-unsealed, perishable goods, etc.) are defined in OUG 34/2014,
    art. 16 — not OUG 18/2026, which only mandates the digital process
    (button, form, durable-medium confirmation). Corrected throughout the
    description and any user-facing text that misattributed them.

1.2.4

  • Admin menu icon is now the Returino mark instead of a generic dashicon.

1.2.3

  • Updated the plugin directory banner artwork. No code changes.

1.2.2

  • Updated the readme’s Description/Installation/FAQ to match the 1.2.0/
    1.2.1 changes — Installation no longer tells you to create the return
    page by hand (it’s created automatically), and there’s a new FAQ entry
    on how to approve/reject a request.
  • Renamed the “Credit Returino” setting to “Logo Returino” with a clearer
    description of what the checkbox does.

1.2.1

  • Replaced the classic editor’s native “Publish” box for return requests
    with a dedicated “Stare cerere de retur” panel — no more “Publish”/
    “Published” terminology that meant nothing here. Shows the current
    status plainly and three one-click actions (Mark as processing /
    Approve / Reject), applied instantly over AJAX. Approving or
    rejecting still triggers the existing order note and customer email
    automatically, same as before.

1.2.0

  • Admin return-request list reworked: real columns (Order, Client,
    Status, Items, Confirmation email, Request date) instead of the
    generic title/date WordPress gives a CPT by default. Removed the
    “Add New” button (requests only ever come from the customer form),
    the “Mine” view and the “All dates” dropdown (neither meaningful
    here), and added a Status filter dropdown.
  • New request titles no longer include the customer’s name (now meta +
    its own column only) — keeps it out of revisions and global admin
    search. Existing request titles are left as they are.
  • A return-form page is now created automatically if one doesn’t
    already exist (searches for a page already using the shortcode
    first, so nothing is duplicated). Configurable from Returino →
    Settings; shows a one-time notice pointing at the page so it can be
    linked from the site’s navigation, as OUG 18/2026 requires the
    process to be clearly visible, not just technically present.
  • Added optional (on by default) email notifications: to the store
    admin on a new request, and to the customer when a request is
    approved or rejected. These are in addition to the mandatory
    durable-medium confirmation, which still cannot be disabled. Each
    tracks its own sent/failed delivery status via wp_mail_failed, same
    as the confirmation email.

1.1.2

  • Fixed a critical bug (WordPress core #24415): custom post statuses need
    both show_in_admin_all_list and protected set to appear in the
    admin list’s “All” view — only the first was set, so the list table’s
    “All (N)” count and the actual rows shown disagreed, and return
    requests could go unnoticed. Added protected => true (kept
    public => false — requests are still never queryable from the
    front end).
  • One-time migration moves any request still stuck on the native
    “Published” status (residue from the bug fixed in 1.0.9) back to
    Pending, and logs a note on its linked order. Runs on admin_init and
    self-disables after running once; trashed requests are left untouched.

1.1.1

  • Fixed the order-lookup rate limiter to key off a validated IP address
    instead of trusting REMOTE_ADDR blindly — sites behind a reverse
    proxy/CDN (e.g. Cloudflare) could otherwise have every visitor share
    one throttling bucket, turning the anti-enumeration protection into an
    accidental site-wide lockout. Added a returino_rate_limit_ip filter
    for sites that need to supply the real visitor IP (see FAQ). A
    successful lookup now also clears that visitor’s failed-attempt count.
  • Renamed the wp_ajax_oug18_* AJAX action/nonce names to
    wp_ajax_returino_* (code only, no stored data affected — the
    oug18* post meta keys are unchanged).

1.1.0

  • Renamed the plugin to “Returino – Formular de retur for WooCommerce”
    (previously “Returino for WooCommerce”) for better discoverability
    when searching in wp-admin.
  • The “Powered by Returino” credit on the public form is now opt-in and
    disabled by default (Returino → Settings) — previously it showed
    automatically. Existing installs will stop showing it until enabled.
  • Added per-IP throttling on order lookup (max 10 failed attempts / 15
    minutes) against order-number enumeration.
  • Unified the order-lookup error message so it no longer reveals whether
    the order number or the email was the wrong part.
  • Renamed the internal “oug18-” prefix (markup/CSS/JS) to “returino-“.

1.0.10

  • Added a server-side guard (wp_insert_post_data) so a return request can
    never be saved with a status other than our own four, regardless of
    which admin UI path is used (Quick Edit, bulk edit, REST API, etc.) —
    the previous fix only covered the classic per-post editor.

1.0.9

  • Fixed a bug where opening/saving a return request in wp-admin silently
    reset its status to “Published” (the classic edit screen didn’t
    recognize our custom statuses), making it disappear from the order
    screen and the customer’s My Account tab. The custom statuses are now
    registered in that screen’s status dropdown.

1.0.8

  • Small performance improvements.
  • Added subtle Returino branding to the email footer and the form.

1.0.7

  • IBAN is now only required for payment methods that can’t be refunded
    automatically (cash on delivery, bank transfer). Card/wallet payments
    skip the IBAN field entirely, both in the form and in validation.

1.0.5

  • Track each confirmation email’s delivery status (sent/failed), captured
    via wp_mail_failed, and show it on every return request in admin.
  • “Resend confirmation” button — resends the exact original content, not
    a rebuilt one.
  • “Send test email” tool on the settings screen.
  • Confirmation content is now saved in the database independent of email
    delivery, and shown to the logged-in customer under My Account →
    “Cererile mele de retur” — a durable-medium safety net that doesn’t
    depend on the email actually arriving.
  • Dashboard/list notice and an admin-menu count bubble for failed
    confirmation emails, so failures surface without relying on email.

1.0.4

  • Renamed to Returino for WooCommerce to avoid confusion with an
    unrelated, unaffiliated existing company of the previous name.
  • Replaced generic “woo”/”wc” prefixes (namespace, constants, CPT slug,
    statuses, shortcode tag) with a distinct “returino” prefix.

1.0.2

  • Removed the GitHub-based update checker in favor of native
    wordpress.org updates.
  • Text domain aligned with the plugin slug.

1.0.1

  • Meta box on the WooCommerce order screen showing linked return requests.
  • Automatic order note whenever a request’s status changes.
  • Explicit HPOS compatibility declaration.

1.0.0

  • Initial release: custom post type + statuses, 2-step front-end form,
    AJAX validation, confirmation email, admin meta box, Returino menu.

Plugin Website
Visit website

Author
nord95
Version:
1.2.5
Last Updated
July 10, 2026
Requires
WordPress 5.8
Tested Up To
WordPress 7.0.1
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.