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.
order.updated webhook only during guest-order linking, and nothing elseorder.updated event, untouchedWooCommerce 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.