BACS and on-hold orders: the payment reminders WooCommerce is missing
If your store takes bank transfer (BACS), invoice, or cheque payments, most of your unpaid orders sit in the On hold status waiting for money that may never arrive. WooCommerce sends one order-received email and then goes silent - the follow-up is entirely manual.
Why BACS orders are different
Card and PayPal orders resolve themselves: the payment either authorizes at checkout or fails instantly. BACS, invoice, and cheque orders are promises to pay later. The order reserves stock, sits in On hold, and nothing nudges the customer unless someone remembers to email them.
This is why "on-hold order reminder" is the real operational query: the status, not the plugin name, is where the money leaks.
The pattern that works for on-hold orders
- Target the status AND the gateway. A reminder should only fire for
on-holdorders usingbacs(or cheque/invoice) - the same email to a Stripe order makes no sense. - First nudge at 24-48 hours. Bank transfers genuinely take time; earlier feels pushy, later loses the order to the stock-hold timer.
- Include the bank details again. Half of unpaid BACS orders are "I meant to, then forgot the sort code". Put your payment instructions and a direct pay link in every reminder.
- Second nudge before the hold expires. Check WooCommerce → Settings → Products → Inventory → Hold stock - the order disappears when the timer ends, so the last reminder must land before it.
A ready-made sequence
- Day 1-2: "Order #X is reserved - here's how to pay" - order summary, bank details, direct payment link.
- Day 3-4: "Still waiting on the transfer" - same details, honest deadline if the stock hold has one.
- Day 6-7: "Last reminder - order releases soon" - short and factual, one link.

Automation must stop the moment the order leaves On hold (payment arrived or was cancelled), and must never touch pre-existing orders without an explicit, previewed backfill.
What to check in any reminder tool
- Can it filter by order status and payment method together? Status alone is not enough.
- Does it stop on payment automatically?
- Is there a dry-run/preview before the first batch goes out - or do old orders get surprised with reminder emails on day one?

Payment Reminders is built exactly around this: eligibility rules by status + gateway + order age, dry-run preview before automation, and stop-on-payment - free on wordpress.org.