Your cart is empty.
Browse pluginsOverview
Anticipo lets you sell a product weeks or months before it lands, then hands the whole launch back to you as a normal WooCommerce order on release day.
Customers pay in full at checkout and the order waits in a dedicated Pre-ordered status, out of your fulfilment queue. On the release date a background job releases every waiting order, reduces stock, moves the orders into your normal workflow and emails the customers. None of it needs anyone logged in.
What's new in 1.3.1 (October 21, 2026)
- Coupons count from checkout. A one-time coupon counts as used as soon as the pre-order is placed, on the classic and the block checkout, and comes back if the order is cancelled.
- The current release date everywhere. The "Pre-order release" line in WooCommerce emails, My Account and the order screen shows the current date once you set or change it.
Earlier releases are listed in the changelog at the end of this page.
What you can do
- Turn any simple or variable product into a pre-order from a Pre-order tab on the product. External products get the pre-order button text, badge, message and countdown only, because they are bought on another site.
- Set a release date and time in your store timezone, stored in UTC so a timezone change never moves a launch.
- Take pre-orders with no announced date at all, then fill the date in later and have every waiting customer emailed automatically.
- Set a cut-off date so orders close before release while you confirm quantities with a supplier.
- Reduce stock on release day rather than at checkout, so your inventory figures stay honest.
- Decide whether pre-orders can share a basket with in-stock items, or must be bought on their own.
- Give each product its own button text and availability message, or set them once for the whole store.
- Show a pre-order badge and a live countdown to release, with the badge wording set store wide or per product ("Coming soon", "Limited edition").
- List every product currently taking pre-orders on any page with the
[[anticipo_preorder_products]]shortcode, soonest release first. - Release or cancel any pre-order by hand, individually or in bulk.
- Filter the Products list to show only the products taking pre-orders, or only those that are not.
On release day
Releases run in the background through WooCommerce Action Scheduler in small batches, so a launch with thousands of orders never blocks a page load. A nightly sweep catches anything that was missed, so a launch interrupted by a server restore recovers on its own. Only paid pre-orders are released, and cancelling a released pre-order puts its stock back.
Releasing by hand works the same way: large selections run in the background, and each order gets one email however many of its lines you release.
Emails
Five emails, each a real WooCommerce email you manage from WooCommerce, Settings, Emails:
- Pre-order confirmed, for the customer
- Release date changed, for the customer
- Pre-order released, for the customer
- Pre-order cancelled, for the customer, which only mentions a refund when a payment was actually taken
- New pre-order, for the store
Every one has an editable message with merge tags and a table of the products pre-ordered, in HTML and plain text, both overridable from your theme.
Customers can see their pre-orders
A Pre-orders tab in My Account lists everything a customer has reserved, its status and when it arrives.
Built to stay fast
Pre-orders live in their own indexed database table rather than in order meta, so nothing turns into a slow meta query as you grow. Product settings are read from the object WooCommerce has already loaded and cached for the request. The CSS and JavaScript are not loaded at all on pages with no pre-orders.
Works with what you already run
- High Performance Order Storage and legacy order storage
- Cart and Checkout Blocks, with the cart rules enforced through the Store API and the pre-order notice shown in the order summary
- WPML and Polylang, with release emails sent in the language the customer originally ordered in
- Any payment gateway, because a pre-order is an ordinary WooCommerce order. Cash on delivery and bank transfer orders wait in Pre-ordered until release.
For developers
Over eighty hooks, listed in docs/HOOKS.md, plus a helper function API, six overridable templates and an activity log of every action taken on every pre-order. Full documentation is built into the plugin under WooCommerce, Pre-orders, Documentation, and in the docs folder.
Anticipo Pro
Anticipo Pro is a separate plugin for stores that want more than full payment up front. It replaces this plugin rather than unlocking it, and keeps every existing pre-order and setting when you switch. It adds:
- Deposits, pay on release, and a saved card charged automatically on release through the WooCommerce Stripe Gateway, with customers able to choose the deposit or the full price
- Allocation and per customer limits, pre-order pricing and opening dates with "Coming soon" until then
- Per variation release dates, and pre-orders while on backorder with release when stock arrives
- Release reminders, customer self cancellation and twelve editable emails
- Reports, a release calendar with a month grid, bulk editing, CSV import and export, and a REST API
Everything described above is included in the free plugin and is not limited in any way.
Requirements
- WordPress 6.4 or newer, tested up to 7.1
- WooCommerce 8.2 or newer, tested up to 11.2.1
- PHP 7.4 or newer
Changelog
Every release, newest first, with the date it came out.
Version 1.3.1 (October 21, 2026)
- Improved: one-time coupons count as used from checkout on pre-orders, while the order waits in Pre-ordered, with the classic and the block checkout alike.
- Improved: the "Pre-order release" line in WooCommerce emails, My Account and the order screen shows the current release date once a date is set or changed.
Version 1.3.0 (October 17, 2026)
- Fix: filling in a release date for a product that was "to be announced" now updates every waiting pre-order, emails those customers the date and schedules the release. Pre-orders left without a date by earlier versions are repaired by the nightly sweep.
- Fix: switching pre-orders off on a product no longer marks its waiting pre-orders "to be announced" or emails a date change.
- Fix: when the last waiting item on an order is cancelled, the order is cancelled (with a note of any amount to refund), or moved on when other items remain, instead of staying Pre-ordered.
- Fix: cash on delivery and bank transfer orders move to Pre-ordered instead of Processing while items still wait for release.
- Fix: releasing several lines of one order by hand sends one email, large selections are released in the background, and a release held back by an extension is no longer reported as released.
- Fix: after switching between this plugin and the Pro edition, the nightly sweep and the release jobs are scheduled again on their own.
- Fix: deleting the plugin clears every scheduled job it created.
- Fix: the order preview in the orders list shows the pre-order release date.
- Fix: no "translation loaded too early" notice when another plugin asks for paid order statuses before WordPress has loaded translations.
- New: the Cart and Checkout blocks show the pre-order notice in the order summary, from the Store API data.
- New: hooks anticipo_po_product_enabled, anticipo_po_cancel_empty_order, anticipo_po_hold_processing_order, anticipo_po_balance_statuses, anticipo_po_inline_release_orders, anticipo_po_cart_balance_title, anticipo_po_before_preorders_list and anticipo_po_docs_sections. The release date changed action now also passes the variation ID.
- Improved: the Pre-order tab explains what pre-order settings do on external products.
- Improved: docs/HOOKS.md is generated from the code and lists every hook.
Version 1.2.1 (October 17, 2026)
- Fix: pre-orders on unpaid orders (for example bank transfer still on hold) are no longer released, so they never take stock or move to fulfilment before payment. They release normally once paid.
- Fix: stock reduced on release is now recorded on the order line, so cancelling a released order puts the stock back, and the stock is never reduced a second time.
- Fix: the "Pre-order cancelled" email only promises a refund when a payment was actually taken. It uses a new {refund_note} merge tag; if you edited this email's message, add {refund_note} to it.
- New: anticipo_po_line_paid_amount filter for extensions that collect payment later.
- Tested with WordPress 7.1.3 and WooCommerce 11.2.1.
Show earlier versions (1.0.0 to 1.2.0)
Version 1.2.0 (October 15, 2026)
- New: "Filter by pre-order" dropdown above the Products list, to show only the products taking pre-orders or only those that are not.
- Improved: saving the settings keeps any stored setting this edition does not use, such as those saved by the Pro edition.
- Improved: admin notices use proper singular and plural wording, and the Billing column and filter only appear when there is more than one billing mode.
- Security hardening: templates are now rendered through WooCommerce's own template loader, custom cells on the Pre-orders list are escaped, and the Pro notice is shown only to users who can manage plugins.
- Deleting the plugin keeps the shared pre-order data while the Pro edition is still installed.
- Tested with WordPress 7.1.3 and WooCommerce 11.2.1.
Version 1.1.0 (September 22, 2026)
- New: Badge text field on the product Pre-order tab, so one product can say "Coming soon" while the rest keep the store wide wording. Used on the product image, in shop listings and in the cart.
- New:
[[anticipo_preorder_products]]shortcode that lists every product currently taking pre-orders, soonest release first. - New:
anticipo_po_badge_textandanticipo_po_shortcode_product_idsfilters. - Links moved to propluginslab.io.
- Added Pro upgrade banner on plugin screens.
- Tested with WordPress 7.1.1 and WooCommerce 11.1.1.
Version 1.0.0 (August 27, 2026)
- First release.
Details
At a glance
- Last updated
- October 22, 2026
- Type
- Free plugin