Title: BuddyPilot Order Webhook Guard
Author: BuddyPilot
Published: <strong>October 26, 2026</strong>
Last modified: October 26, 2026

---

Search plugins

![](https://ps.w.org/buddypilot-order-webhook-guard/assets/banner-772x250.png?rev
=3766898)

![](https://ps.w.org/buddypilot-order-webhook-guard/assets/icon-256x256.gif?rev=
3766898)

# BuddyPilot Order Webhook Guard

 By [BuddyPilot](https://profiles.wordpress.org/buddypilot/)

[Download](https://downloads.wordpress.org/plugin/buddypilot-order-webhook-guard.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/buddypilot-order-webhook-guard/#description)
 * [Reviews](https://wordpress.org/plugins/buddypilot-order-webhook-guard/#reviews)
 *  [Installation](https://wordpress.org/plugins/buddypilot-order-webhook-guard/#installation)
 * [Development](https://wordpress.org/plugins/buddypilot-order-webhook-guard/#developers)

 [Support](https://wordpress.org/support/plugin/buddypilot-order-webhook-guard/)

## Description

**BuddyPilot Order Webhook Guard** fixes one specific WooCommerce side effect. Since
WooCommerce 11.0, verifying a customer’s email address (a completed password reset,
a set-password link for a new account, or a clicked verification link) reassigns
every matching guest order to that account. Each reassigned order is saved, and 
every save fires the `order.updated` webhook.

If an external integration listens to `order.updated` and acts on it, for example
an invoicing service that issues an invoice per order update, a single password 
reset can produce a burst of unwanted webhooks and duplicate documents, one for 
each past guest order on that email address.

This plugin suppresses the `order.updated` webhook only while that linking routine
runs. The orders are still reassigned to the account, so the customer keeps their
order history and download permissions; only the webhook delivery for those particular
saves is skipped. Every other `order.updated` event, such as a status change or 
a manual edit in the admin, is delivered as usual.

#### What it does

 * Suppresses the `order.updated` webhook only during guest-order linking, and nothing
   else
 * Keeps the account linking intact, so customers keep their past orders and download
   permissions
 * Covers both linking paths: automatic (after email verification) and manual (the
   admin “link orders” action on the Customers report)
 * Leaves every other webhook topic, and every other `order.updated` event, untouched
 * Uses only public WooCommerce extension points and does not modify WooCommerce
   core
 * Zero configuration: no settings page, no options, no database writes

#### How it works

WooCommerce links past guest orders through its `wc_update_new_customer_past_orders()`
routine. The plugin wraps that routine with a short-lived, process-local flag and,
while the flag is raised, returns false from the `woocommerce_webhook_should_deliver`
filter for the `order.updated` topic. WooCommerce evaluates that decision synchronously
as each order is saved, so no matching webhook is queued for delivery. The flag 
is always cleared afterwards, even if an order save throws.

## Installation

 1. Upload the `buddypilot-order-webhook-guard` folder to `/wp-content/plugins/`, or
    install the plugin ZIP via **Plugins > Add New > Upload Plugin**.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. There is nothing to configure. WooCommerce must be active.

## FAQ

### Does this stop guest orders from being linked to customer accounts?

No. The linking still happens, so customers keep their past guest orders and any
download permissions. Only the `order.updated` webhook that would fire during the
linking is suppressed.

### Does it affect normal order.updated webhooks?

No. Suppression is active only during the guest-order linking routine. Status changes,
manual edits, and every other order update deliver their webhooks normally.

### Which integrations does this help?

Any integration that consumes the WooCommerce `order.updated` webhook and reacts
to it, for example invoicing services that create a document per order update.

### Does it work without WooCommerce?

No. The plugin registers nothing meaningful unless WooCommerce is active, and does
nothing otherwise.

### Does it write anything to the database?

No. There are no options, no custom tables, and no settings screen. Deactivating
the plugin fully restores the default WooCommerce behaviour.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BuddyPilot Order Webhook Guard” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ BuddyPilot ](https://profiles.wordpress.org/buddypilot/)
 *   [ Dominik Kawula ](https://profiles.wordpress.org/domkawula/)

[Translate “BuddyPilot Order Webhook Guard” into your language.](https://translate.wordpress.org/projects/wp-plugins/buddypilot-order-webhook-guard)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/buddypilot-order-webhook-guard/),
check out the [SVN repository](https://plugins.svn.wordpress.org/buddypilot-order-webhook-guard/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/buddypilot-order-webhook-guard/)
by [RSS](https://plugins.trac.wordpress.org/log/buddypilot-order-webhook-guard/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Suppress the `order.updated` webhook while past guest orders are linked to a 
   customer account, on both the email-verification path and the admin “link orders”
   path.

## Meta

 *  Version **1.0.0**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [integration](https://wordpress.org/plugins/tags/integration/)[invoice](https://wordpress.org/plugins/tags/invoice/)
   [orders](https://wordpress.org/plugins/tags/orders/)[webhook](https://wordpress.org/plugins/tags/webhook/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/buddypilot-order-webhook-guard/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/buddypilot-order-webhook-guard/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/buddypilot-order-webhook-guard/reviews/)

## Contributors

 *   [ BuddyPilot ](https://profiles.wordpress.org/buddypilot/)
 *   [ Dominik Kawula ](https://profiles.wordpress.org/domkawula/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/buddypilot-order-webhook-guard/)