WooCommerce recent sales notifications can come straight from your real orders: when an order is paid, WooCommerce sends it to the notification service over a signed webhook, the service checks the signature, and the order becomes a popup with the buyer's first name, city, product and the real time of purchase. Nothing is typed in by hand, and an order that was never paid never appears. This guide shows how that works with the free Provedly plugin for WordPress, which creates the webhook for you.
If you would rather wire it up without a plugin, our older guide on WordPress and WooCommerce without a plugin covers the code route.
What "from real orders" means
Many sales popup plugins for WordPress fill the corner of the screen with whatever they are given: orders read from the database, entries typed into a settings form, or generated names when the store is quiet. They look the same to a shopper.
The stricter version has three properties:
- The order comes from WooCommerce itself, delivered by a webhook, not copied from a form.
- The message is signed. WooCommerce signs each delivery with a secret you choose, and the receiving end rejects anything whose signature does not match.
- Only paid orders count. A cart, a failed payment or an unpaid order is not a sale.
When all three hold, the popup can say "Verified purchase" and mean it. Our explainer on webhook signing secrets covers how the signature check works.
Which orders become notifications
WooCommerce moves each order through statuses. Provedly records an order only when it arrives with a status that means money changed hands:
| WooCommerce status | Becomes a notification? |
|---|---|
| Processing (paid, not yet shipped) | Yes |
| Completed | Yes |
| Pending payment | No |
| On hold (for example, waiting for a bank transfer) | No, until you mark it paid and it moves to Processing |
| Failed, Cancelled | No |
| Draft (checkout started) | No |
Each order is recorded once. WooCommerce sends an update every time an order changes, such as when you add a note or mark it shipped, but a second delivery for the same order is recognised as a duplicate and ignored. The time shown is when the order was paid, or when it was created if WooCommerce did not record a payment time.
Setting it up with the plugin
You need WordPress with WooCommerce 7 or newer, and a free Provedly account.
- Install the plugin. In WordPress, go to Plugins, Add New, search for Provedly and install it. It is also on WordPress.org.
- Create the source in Provedly. Open your widget, then the Data tab, Verified sources, Add, WooCommerce. Copy the webhook URL it gives you.
- Choose a signing secret. Any value of at least 8 characters. Paste it into the Provedly source so each order is signature-checked.
- Fill in the plugin page. In WordPress, open Provedly in the admin menu. Paste the widget token from the widget's Embed tab, the webhook URL and the same signing secret. Bar tokens are optional.
- Save. Saving creates a WooCommerce webhook named "Provedly – order updates" on the order updated event, pointed at your Provedly URL and signed with your secret. The plugin page then shows a status list: WooCommerce detected, widget loading, webhook active.
- Place a test order and pay for it. It should appear in Provedly within seconds with the verified mark.
The same plugin loads the widget and any countdown or announcement bars on every page, so you do not need to edit your theme.