Skip to content
Customer experience

Guest returns portal

The guest returns portal lets customers start a return without an account. They enter the order number and the billing email, and WPReturns opens that order with the same buttons My Account shows. The portal runs on a page with the [ddwcwr_returns_portal] shortcode or the Returns portal block.

Available in: Free and Pro. Exchanges and warranty claims in the portal need Pro.

WPReturns creates a portal page with the shortcode on activation, at the slug returns. It also saves that page as the Guest returns portal page under DevDiggers Plugins > WPReturns > Configuration > General. Emails to guests link to this page.

To use a different page:

  1. Add the shortcode or the Returns portal block to the page. See Shortcodes and blocks.
  2. Go to Configuration > General and pick that page as the Guest returns portal page.
  3. Select Save Changes and add the page to your menu or footer.

General tab with the Guest returns portal page select marked

  1. The guest opens the portal page and sees Start a return or exchange.
  2. They fill in Order number (for example 1042) and Billing email. Both are required.
  3. They select Find my order.

Guest returns portal with the Order number and Billing email fields marked 2 and Find my order marked 3

  1. A Your order card lists the order number, date, status and items.
  2. Under it, the Returns, exchanges & warranty panel shows earlier requests, the deadline and the buttons for that order.

Guest order page with the Your order card and the returns panel

  1. They pick a button and fill in the request form. The form works the same as in My Account.
  2. After Submit request, they land on the request page.

The guest request page matches the My Account one, with progress, return shipping, items and messages. Without a label, the box asks them to pack the items, send them and add the tracking number.

Guest request page approved with Print packing slip and the tracking form

Logged-in visitors see “Signed in? See your orders in My Account.” under the form.

The portal asks for no password. These checks protect the order instead.

ProtectionWhat it does
Order and email matchThe order number and billing email must belong to the same order
Two-hour order linkAfter a match, the order opens through a signed link that expires after two hours
Per-request secret keyEvery request gets a random key. Email links carry it and open the request page without a login
Honeypot fieldA hidden field that people leave empty. Bots that fill it get nothing
Rate limitLookups per visitor per hour, set by Attempts per hour on the EU Withdrawal tab

When the order link expires, the guest sees “This link has expired. Look up your order again.” The request page link in emails keeps working.

MessageCause
We could not find an order with that number and email address. Please check both and try again.No order matches both values
Too many attempts. Please wait an hour and try again.The rate limit was reached
This link is not valid. Look up your order below.A request link with a wrong or missing key
Your session expired. Please try again.The form’s security token expired (often on a cached page)

Stores that use a sequential order number plugin show numbers that differ from the order ID. The portal compares the number the guest types with the order’s visible number. If your plugin needs a lookup, map the number to an ID with the ddwcwr_find_order_id_by_number filter.