A tiny WooCommerce plugin that automatically completes orders with nothing to ship. When an order reaches Processing, if every item in it is a virtual product, the order is moved straight to Completed. Any physical item, and the order is left alone.
It fills one gap in WooCommerce core, which only auto-completes orders that are virtual and downloadable — so bookings, services, donations, admissions and other non-downloadable virtual products otherwise sit in Processing forever.
Who it's for: store owners selling services, bookings or donations who are tired of completing orders by hand, and developers who want a small, dependency-free, filter-driven building block rather than a bloated order-automation suite.
- Auto-completes an order the moment it reaches Processing, if all items are virtual.
- Leaves any order with a physical item untouched.
- Zero configuration — works the moment it's activated.
- HPOS (High-Performance Order Storage) compatible.
- Fully customisable in code: three filters and an action, no settings page.
- Self-updating from GitHub releases.
- No telemetry, no phone-home, no upsells, no bloat.
| Guide | For |
|---|---|
| Installation & usage | Store owners, web developers & designers — installing, activating and verifying it works. |
| Hooks reference | Developers — the filters and action for customising behaviour, with examples. |
- WordPress 6.0+
- WooCommerce 9.0+
- PHP 8.0+
- Download
autocomplete-virtual-orders.zipfrom the latest release. - In WordPress, go to Plugins → Add New → Upload Plugin and upload the zip.
- Activate Autocomplete Virtual Orders in Plugins.
WooCommerce must be installed and active first. There's nothing to configure — see the Installation & usage guide to verify it's working.
GPLv2 or later — see LICENSE.