Free plugin · WooCommerce

Let customers confirm their own delivery.

By default only you can mark a WooCommerce order Completed. Opproval hands that last step to the customer: they tap Mark as Received when the parcel arrives, so a completed order means a delivery that actually happened.

Freeno paid tier
GPLv2open source
4.5 ★on WordPress.org
  • Adds a Delivered order status to your admin
  • Adds a Mark as Received button to My Account → Orders
  • Inherits your theme styling, nothing to configure

Watch it first

See the whole flow before you install

Both sides, end to end: setting an order to Delivered in the admin, and the customer closing it with Mark as Received.

For privacy reasons YouTube needs your permission to be loaded.

Intro walkthrough · about 2 minutes

  • Install from Plugins → Add New
  • Set an order to Delivered
  • No settings page to learn

Free on WordPress.org. Source on GitHub.

The problem

Completed is a claim only you can make

In a standard store the admin is the only person who can move an order to Completed. The customer, the one person who knows whether the parcel arrived, has no say.

  • 01

You cannot prove an order was received

Shipped and completed are not the same thing. Your order list records the first and calls it the second.

  • 02

Customers see Completed before the parcel lands

Being told you have received something you are still waiting for erodes trust faster than a late delivery does.

  • 03

Disputes start from your word against theirs

With no customer-side confirmation, every “it never arrived” conversation begins with nothing on the record.

One extra step, at the right end

Opproval adds a customer-driven step to the end of fulfilment. Nothing about checkout changes.

Step 01 · Store

Ship the order as usual

Your existing fulfilment process, untouched. Opproval does not sit anywhere near checkout.

Step 02 · Store

Set the status to Delivered

Delivered is a new status the plugin registers. It is the only thing you have to remember.

Step 03 · Customer

They tap Mark as Received

The button appears under My Account → Orders, in the actions column, only on delivered orders.

Completed, by the person who can confirm it.

On that click the order moves to Completed automatically, the status text updates without a refresh, and the button disappears so nobody clicks twice.

Why it matters

Worth it, and it costs nothing

Force-completing orders from the admin side sends the wrong signal, even when your fulfilment is flawless. Letting customers confirm delivery themselves makes them feel respected and in control.

It also shows you care about an honest delivery experience from the first click to the last. That is how a store builds repeat customers instead of one-time buyers.

  • Completed orders reflect real deliveries
  • Fewer “where is my order” tickets
  • A customer-side record when something goes missing
A customer confirming a delivered order

Features

Everything Opproval adds

A small plugin with one job: close the delivery loop and keep the customer in control.

Logistics icon

A Delivered order status

Registered in WooCommerce alongside the built-in statuses, so you can flag orders that are on their way to completion.

shopping cart icon

Front-end order completion

One Mark as Received click in the customer account closes the order. No admin action, no email chain.

Responsive website icon

Automatic style adapt

The button and status inherit your theme’s existing styles, so nothing looks bolted on and there is nothing to configure.

Free support

Stuck on something? Open a ticket on the WordPress.org support forum and the team that wrote it answers.

What it looks like in place

The admin status, and the customer-side button. Click an image to open it full size.

The Delivered status in the WooCommerce admin order list.

The Delivered status in the WooCommerce admin order list.

Mark as Received in the actions column of My Account → Orders.

Mark as Received in the actions column of My Account → Orders.

Plugin details

Everything you would check before installing anything on a live store.

Price

Free, no paid tier

GPLv2 or later

Current version

1.2.4

Changelog on WordPress.org

Requires

WordPress 5.5+ and PHP 5.6+

WooCommerce must be active

Tested up to

WordPress 6.5.8

WooCommerce 8.7

Rating

4.5 out of 5

From 4 reviews on WordPress.org

Languages

5 locales

Translatable on translate.wordpress.org

Source

Open source

Support

Free

Need it to do more? Custom statuses, notifications, delivery windows or courier integrations are custom plugin work, and we do that too. Custom plugin development

Frequently asked questions

Answers from the plugin’s support forum, where the same questions come up.

Only when the order status is Delivered. We deliberately keep it hidden while an order is processing or in any other status, so nobody can complete an order that has not shipped.

Three things: WooCommerce is active, the order status is set to Delivered, and the customer is looking at My Account → Orders while logged in with the account that placed the order. If it still does not show, open a forum ticket with your WordPress and WooCommerce versions.

The plugin keeps configuration out of the way and inherits your theme styles instead. Anything beyond that, such as wording, placement or extra statuses, is a small customisation, and we build those.

It uses the standard WooCommerce account templates and inherits the theme’s styling, so it fits almost anywhere without extra CSS.

Yes. It is a free plugin in the WordPress.org directory, licensed GPLv2, with free support on the forum. Our paid product is Breview Pro.

It is open source. The repository is on GitHub and the SVN trunk is browsable on WordPress.org.

The natural pair

A confirmed delivery is the right moment to ask for a review

Opproval tells you the parcel actually arrived. Breview Pro turns that moment into a review collected from the order page, from a customer who received the product.

Run both and the review timeline matches reality, not your admin clicks.

Close the delivery loop today

Opproval is free, installs in two minutes and needs no configuration. Download it from WordPress.org and set your next shipped order to Delivered.

footer promo image