Title: OrderUnstick
Author: flexpoint
Published: <strong>July 29, 2026</strong>
Last modified: July 29, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/orderunstick.svg)

# OrderUnstick

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

[Download](https://downloads.wordpress.org/plugin/orderunstick.0.1.0.zip)

 * [Details](https://wordpress.org/plugins/orderunstick/#description)
 * [Reviews](https://wordpress.org/plugins/orderunstick/#reviews)
 *  [Installation](https://wordpress.org/plugins/orderunstick/#installation)
 * [Development](https://wordpress.org/plugins/orderunstick/#developers)

 [Support](https://wordpress.org/support/plugin/orderunstick/)

## Description

When a payment gateway webhook never reaches your store (after a site migration,
a security plugin blocking the callback URL, a CDN rewrite, or a dead endpoint),
a customer can pay while the order stays stuck in **Pending payment** or **On-hold**.
The customer paid, but nothing ships.

OrderUnstick scans for those orders and reports **possible stuck paid orders**: 
stuck orders older than a configurable age threshold that carry stored Stripe or
generic payment metadata.

**Version 0.1 is strictly read-only.** It detects and reports only.

What it does:

 * Adds a report page under **WooCommerce  OrderUnstick** (administrators and shop
   managers only).
 * Scans orders in Pending payment and/or On-hold that are older than your age threshold(
   default 2 hours).
 * Looks for payment identifiers already stored on the order by your gateway plugin:
   Stripe intent, charge, and source ids, and the standard WooCommerce transaction
   id.
 * Shows a report with the order, age, status, customer, total, gateway, the masked
   payment id found, a conservative risk level, the reason flagged, and the total
   value across flagged orders.
 * Keeps a local scan history with summary counts only.

What it does NOT do, by design, in this version:

 * It does not call Stripe, PayPal, Mollie, or any payment gateway or external API.
 * It does not change order status, stock, notes, refunds, or payment data.
 * It does not send any email.
 * It does not auto-fix or recover anything. There is no “mark as paid” button.
 * It does not guarantee that any payment succeeded. **Payment metadata found is
   not proof of payment.**
 * It does not connect to any external service and sends no telemetry. Everything
   runs inside your site.

**Important: gateway confirmation required.** A flagged order means only that a 
stuck order carries stored payment metadata. Always confirm the payment in your 
gateway dashboard (for example the Stripe dashboard) before acting. Do not fulfill
based only on this report.

A later version is planned that can re-check candidates against the gateway using
a merchant-supplied restricted key, still flag-only. That functionality is not available
now and nothing in this version contacts any gateway.

OrderUnstick requires WooCommerce. It supports both High-Performance Order Storage(
HPOS) and legacy order storage, and reads orders only through the WooCommerce order
API.

## Screenshots

[⌊The OrderUnstick report page with the read-only notice and scan settings: age 
threshold, statuses, and max orders per scan.⌉⌊The OrderUnstick report page with
the read-only notice and scan settings: age threshold, statuses, and max orders 
per scan.⌉[

The OrderUnstick report page with the read-only notice and scan settings: age threshold,
statuses, and max orders per scan.

[⌊Scan results with flagged possible stuck paid orders: masked payment ids, risk
level, reason flagged, and the total value across flagged orders.⌉⌊Scan results 
with flagged possible stuck paid orders: masked payment ids, risk level, reason 
flagged, and the total value across flagged orders.⌉[

Scan results with flagged possible stuck paid orders: masked payment ids, risk level,
reason flagged, and the total value across flagged orders.

[⌊The safety notice: results are candidates only, gateway confirmation is required,
and this version never modifies orders.⌉⌊The safety notice: results are candidates
only, gateway confirmation is required, and this version never modifies orders.⌉[

The safety notice: results are candidates only, gateway confirmation is required,
and this version never modifies orders.

[⌊Recent scan history with summary counts only.⌉⌊Recent scan history with summary
counts only.⌉[

Recent scan history with summary counts only.

[⌊A flagged order opened in WooCommerce afterwards: still untouched, exactly as 
it was.⌉⌊A flagged order opened in WooCommerce afterwards: still untouched, exactly
as it was.⌉[

A flagged order opened in WooCommerce afterwards: still untouched, exactly as it
was.

## Installation

 1. Install and activate the plugin. WooCommerce must be installed and active.
 2. Go to **WooCommerce  OrderUnstick**.
 3. Set the age threshold, statuses, and maximum orders per scan, then click **Run 
    Scan**.
 4. Review the candidates and confirm each one in your payment gateway dashboard before
    taking any action.

## FAQ

### Does this plugin change my orders?

No. Version 0.1 never modifies orders, statuses, stock, emails, notes, refunds, 
or payment data. It only reads and reports.

### Does it contact Stripe or any other gateway?

No. It only reads payment identifiers that your gateway plugin already stored on
the order. It makes no external requests of any kind and sends no telemetry.

### A scan flagged an order. Is that order paid?

Not necessarily. A flag means a stuck order carries stored payment metadata, nothing
more. This version cannot verify payment. Confirm in your gateway dashboard before
fulfilling.

### Which gateways are detected?

Version 0.1 looks for stored Stripe identifiers and the standard WooCommerce transaction
id that most gateways set. Live verification and further gateways are planned for
later versions.

### Does it store customer or payment data?

No. The scan report is shown on screen only. The saved scan history contains summary
counts only (time, orders scanned, flagged, no evidence, flagged value). Payment
ids are always shown partially masked, never in full.

### Does it work with HPOS (High-Performance Order Storage)?

Yes. It declares HPOS compatibility and reads orders only through the WooCommerce
order API, so both HPOS and legacy storage work.

### What happens if WooCommerce is not active?

OrderUnstick stays inactive and shows an admin notice. It does not cause errors.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“OrderUnstick” is open source software. The following people have contributed to
this plugin.

Contributors

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

[Translate “OrderUnstick” into your language.](https://translate.wordpress.org/projects/wp-plugins/orderunstick)

### Interested in development?

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

## Changelog

#### 0.1.0

 * Initial release: read-only detector for stuck WooCommerce orders carrying stored
   payment metadata.
 * Scan settings: age threshold, statuses (Pending payment, On-hold), max orders
   per scan.
 * Report with masked payment ids, conservative risk rating, and flagged total value.
 * Local scan history with summary counts only.
 * No gateway calls, no order changes, no emails, no external services, no telemetry.

## Meta

 *  Version **0.1.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [orders](https://wordpress.org/plugins/tags/orders/)[pending payment](https://wordpress.org/plugins/tags/pending-payment/)
   [stripe](https://wordpress.org/plugins/tags/stripe/)[webhook](https://wordpress.org/plugins/tags/webhook/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/orderunstick/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/orderunstick/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/orderunstick/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/orderunstick/)