The client's customer service team knew exactly which customers they did not want to sell to again: repeat offenders, identified using data and criteria that live entirely outside WordPress and differ from one business to the next. That judgment is human knowledge about a customer base, not something WooCommerce stores or could work out on its own.
But WooCommerce would still accept and process the next order from a flagged address, leaving the team to catch it after the fact and unwind it by hand. There was no automated signal to build on here, and pretending there was would have been the wrong product. What the team needed was not intelligence. It was a fast, reliable way to turn a decision they had already made into an action the store would enforce.
A deliberately simple tool. When customer service identifies an address to block, they add it to a rejection list in one click from any order screen, or enter it by hand. From then on, any order whose billing or shipping address matches is created with a Rejected status, payment is never processed, and the customer is returned to the cart with a configured message.
Matching normalises address lines and postcodes, so minor formatting differences still catch. Every rejection is written to a full audit log, rejection reasons are configurable, and there is no limit on the number of addresses. It is HPOS-compatible and fully free, with no feature gating.
The support team's judgment is enforced automatically, without pretending to replace it.
Systema Order Address Rejection is free, with no feature gating and no address limit.
View Order Address Rejection →