Title: JeyTech Unpaid Transfer Guard for WooCommerce
Author: JeyTech
Published: <strong>September 25, 2026</strong>
Last modified: September 25, 2026

---

Search plugins

![](https://ps.w.org/jeytech-unpaid-transfer-guard/assets/banner-772x250.jpg?rev
=3712517)

![](https://ps.w.org/jeytech-unpaid-transfer-guard/assets/icon-256x256.png?rev=3712517)

# JeyTech Unpaid Transfer Guard for WooCommerce

 By [JeyTech](https://profiles.wordpress.org/jeytech/)

[Download](https://downloads.wordpress.org/plugin/jeytech-unpaid-transfer-guard.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/jeytech-unpaid-transfer-guard/#description)
 * [Reviews](https://wordpress.org/plugins/jeytech-unpaid-transfer-guard/#reviews)
 *  [Installation](https://wordpress.org/plugins/jeytech-unpaid-transfer-guard/#installation)
 * [Development](https://wordpress.org/plugins/jeytech-unpaid-transfer-guard/#developers)

 [Support](https://wordpress.org/support/plugin/jeytech-unpaid-transfer-guard/)

## 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.

By default, only on-hold orders paid by **Direct bank transfer** are concerned. 
Other payment methods are never touched unless a merchant explicitly enables them
through a compatible extension.

The optional JeyTech Unpaid Transfer Guard Pro add-on, sold separately outside WordPress.
org, adds per-gateway delays, exclusions and payment reminders. The free plugin 
remains fully functional without it.

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

## Screenshots

[⌊Settings: delay, dry-run or live mode, with a confirmation box.⌉⌊Settings: delay,
dry-run or live mode, with a confirmation box.⌉[

Settings: delay, dry-run or live mode, with a confirmation box.

[⌊Preview of the orders that would be cancelled now.⌉⌊Preview of the orders that
would be cancelled now.⌉[

Preview of the orders that would be cancelled now.

## 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

 *   [ JeyTech ](https://profiles.wordpress.org/jeytech/)

[Translate “JeyTech Unpaid Transfer Guard for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/jeytech-unpaid-transfer-guard)

### Interested in development?

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

## Changelog

#### 1.1.0

 * Add extension hooks for optional payment methods, per-gateway delays, exclusions
   and reminders.
 * Refresh the WooCommerce settings screen with the JeyTech design and updated screenshots.

#### 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.

## Meta

 *  Version **1.1.0**
 *  Last updated **8 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bacs](https://wordpress.org/plugins/tags/bacs/)[bank transfer](https://wordpress.org/plugins/tags/bank-transfer/)
   [cancel orders](https://wordpress.org/plugins/tags/cancel-orders/)[unpaid orders](https://wordpress.org/plugins/tags/unpaid-orders/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/jeytech-unpaid-transfer-guard/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/jeytech-unpaid-transfer-guard/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/jeytech-unpaid-transfer-guard/reviews/)

## Contributors

 *   [ JeyTech ](https://profiles.wordpress.org/jeytech/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/jeytech-unpaid-transfer-guard/)