JeyTech Unpaid Transfer Guard for WooCommerce

Description

When a customer picks Direct bank transfer, WooCommerce puts the order on hold and keeps the stock aside. If the transfer never arrives, the order stays there until someone cancels it by hand. WooCommerce’s “Hold stock (minutes)” setting does not help: it only applies to pending payment orders, not to on-hold bank transfer orders.

Unpaid Transfer Guard cleans them up for you, safely:

  • Pick a delay — for example 7 days, or 48 hours.
  • Dry-run first — right after activation, the plugin only lists the orders it would cancel. Nothing is changed until you switch to live mode and tick a confirmation box.
  • Automatic, every hour — in live mode, expired orders are cancelled through the WooCommerce API, with an order note explaining why.
  • Stock goes back automatically — WooCommerce restores the stock of a cancelled order itself; the plugin never touches stock levels.
  • Last-second checks — each order is checked again right before being cancelled, so an order paid in the meantime is left alone.
  • Clear logs — every run is written to WooCommerce Status Logs.

Only on-hold orders paid by Direct bank transfer are concerned. Cheque, cash on delivery and card orders are never touched.

Compatible with High-Performance Order Storage (HPOS) and the Cart & Checkout blocks.

Screenshots

Installation

  1. Install and activate the plugin (WooCommerce must be active).
  2. Go to WooCommerce Unpaid orders.
  3. Choose the delay, check the preview of the orders that would be cancelled.
  4. When the preview looks right, select Live, tick the confirmation box and save.

FAQ

Will it cancel orders as soon as I activate it?

No. The plugin starts in dry-run mode: it only lists the orders that would be cancelled. Real cancellations start only after you select live mode and tick the confirmation box.

What happens to the stock?

WooCommerce puts the stock back when an order is cancelled, exactly as when you cancel it by hand. The plugin does not change stock levels itself, so stock is never restored twice.

Are customers notified?

Cancelling an order triggers WooCommerce’s own emails, as when you cancel it by hand: the “Cancelled order” email to the store admin and, if enabled in WooCommerce Settings Emails, the “Cancelled order” email to the customer. Check these settings before switching to live mode.

What if the transfer arrives just before the delay ends?

Mark the order as paid (Processing) as usual: the plugin only cancels orders that are still on hold. Each order is checked again right before being cancelled.

Does it work with HPOS and the Checkout block?

Yes. The plugin only uses the WooCommerce order API, and declares compatibility with High-Performance Order Storage and the Cart & Checkout blocks.

Can it handle cheque payments too?

Not in this version: only Direct bank transfer (BACS) orders are handled.

How often does it run?

Every hour, in batches of 50 orders. If more orders are waiting, the next batch starts right away. You can also run it manually from the settings page.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“JeyTech Unpaid Transfer Guard for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • First release: delay in days or hours, dry-run preview, hourly cancellation of expired on-hold bank transfer orders, order notes, logs.