=== WpDevArt Pre-Orders for WooCommerce ===
Contributors: wpdevart
Tags: woocommerce, woocommerce pre-order, pre order, pre-orders, preorder
Requires at least: 6.1
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Take pre-orders per product or variation with a release countdown, pre-order pricing, a Pre-Ordered order status and automatic release.

== Description ==

WpDevArt Pre-Orders for WooCommerce lets you sell products before they are available and hands them over to your normal order flow the moment they are released.

Turn any simple product, or any single variation of a variable product, into a pre-order with a release date. Shoppers see a badge, an availability line and a live countdown, pay the pre-order price you set, and their order waits in a dedicated **Pre-Ordered** status until the release date. At release the plugin moves the order on (to Processing by default, never a silent auto-complete), unlocks downloads and lets the customer know.

➡ **[GET PREMIUM VERSION NOW!](https://wpdevart.com/woocommerce-pre-order-plugin-with-deposits)**

[GET SUPPORT](https://wordpress.org/support/plugin/wpdevart-pre-orders-for-woocommerce)

= Free version features =

* **Pre-orders per product and per variation** — Turn any simple product, or any single variation of a variable product, into a pre-order. Each variation has its own switch, release date and price, so one size can be on pre-order while the others ship right away.
* **Release date and time** — Set the release moment in your store's time zone, with an optional time of day. Or set no date at all and show your own "Coming soon" text, such as "Expected Q4 2026".
* **Pre-order pricing** — Charge a fixed pre-order price, or a discount or markup by amount or percentage of the regular (or sale) price, with the regular price shown crossed out beside it.
* **Pre-Order badge** — A badge on product listings and on the main product image, in the corner you choose for each (separately for listings and the product page), in your own colors. It steps aside from sale badges, wishlist buttons and WooCommerce's image zoom button.
* **Availability text** — "Available on October 24" style lines with {release_date}, {release_time} and {days_left} placeholders, overridable per product.
* **Live release countdown** — Days, hours, minutes and optionally seconds, as tiles or a single line, below the Pre-Order button or after the price. It is computed in the shopper's browser, so it stays correct behind full-page caching, and it follows the selected variation.
* **Custom button label** — Replace "Add to cart" with your own wording, globally or per product.
* **A real Pre-Ordered order status** — Pre-orders wait in their own status, shown in the Orders list, order emails and My Account, with the pre-order items and release dates listed on every order.
* **Safe automatic release** — Orders move on at the exact release minute to the status you choose (Processing by default, never a silent auto-complete), with an hourly safety sweep and an on-view check so a missed cron job can never leave a released product selling as a pre-order. The Advanced tab shows the release engine's status and lets you run a check by hand.
* **Downloads held until release** — Files of pre-ordered products are unlocked only when the item is released.
* **Mixed carts under control** — Allow pre-orders next to regular products, or block mixing with your own notice; a cart line text tells shoppers what they are pre-ordering.
* **Automatic pre-orders for sold-out products** — Optionally switch products to pre-order the moment WooCommerce marks them Out of stock, at their normal price, with a dedicated "ships as soon as it is back in stock" text. Override per product and variation, and choose when stock returns whether the open pre-orders are released once the stock covers them, once the product is back in stock, or never. Products on automatic pre-order stay visible even when WooCommerce hides out-of-stock items.
* **Four WooCommerce emails** — New pre-order (admin), Pre-order confirmed, Pre-order released and Release date changed, each editable and templatable like any other WooCommerce email.
* **Release date changes, customers informed** — Change a date, tick "Notify customers", and every open pre-order is updated and emailed.
* **My Account → Pre-orders** — Customers see their pre-orders, release dates and countdowns, with a link to each order.
* **Bulk variation actions** — Enable, disable or set a release date for many variations at once.
* **Orders and products at a glance** — A Pre-Order column in the Orders list and in the Products list shows status, release date and days left.
* **Search engines know** — Pre-order products announce PreOrder availability and the release date in their structured data.
* **Built for today's WooCommerce** — High-Performance Order Storage and the classic tables, the Cart and Checkout blocks and the classic shortcodes, block themes (Product Collection, Products block, block product page) and classic themes; tested with Astra, Storefront, Kadence, OceanWP, GeneratePress, Neve, Hello Elementor and the Twenty Twenty-Three, Four and Five themes.
* **Translation, WPML and RTL ready** — Every text translatable, a WPML configuration included, right-to-left layouts supported, and all storefront templates overridable from your theme.
* **No external services** — The plugin makes no external requests of any kind; nothing leaves your site.
* **Clean uninstall** — An optional switch removes every setting and all pre-order data when the plugin is deleted.

= Premium version features =

* **Deposits and partial payments** — Take a percentage of the pre-order price or a fixed amount per unit at checkout (store default, per product and per variation) and collect the rest when the item is released. The cart, checkout and product page show what is paid now and what is due later, with any payment method and with both the classic and the block checkout.
* **Balance orders and reminders** — At release a pending balance order is created and the customer receives a payment link, with an optional reminder email and an overdue report for you. Balance orders never cancel on their own, cannot be cancelled by the customer, move no stock and count no sales twice. Percentage coupons reduce the deposit and the balance by the same share.
* **Charge on release** — Save the payment method a logged-in customer uses for the deposit (Stripe, WooPayments, other gateways through a hook) and charge the balance automatically when the pre-order is released, so the order moves on without the customer doing anything. Declines, guests and bank authentication requests fall back to the payment link, with one retry, a "charge failed" email to you and a "Charge the balance now" order action.
* **Mixed-cart order splitting** — One checkout, separate orders: items in stock stay in the paid order and ship right away, while pre-order items get their own order per release date (or one for all), marked paid with the same transaction. Shipping is charged on the first order or divided by item value, the customer sees the plan at checkout, on the thank-you page and in the emails, and the orders link to each other in the admin.
* **Pre-orders management screen** — Dashboard tiles for open items, units reserved, revenue waiting, Pre-Ordered orders, releases due within 7 days, units released in the last 30 days, waitlist subscribers and balances due. A per-product view with "Release orders now", "End pre-order and release" and "Set release date" (with customer notification) bulk actions, and a per-order-item view with product, status and date filters, order or email search, per-item release and CSV export.
* **Quantity limits** — Cap the units a pre-order can take, per product and per variation, enforced when adding to the cart, in the cart and at checkout (classic and blocks), with sold-out texts for the availability line, the badge and the button.
* **Batches** — Instead of stopping at sold out, continue with the next batch, each with its own quantity and release date; orders always fall into the earliest batch with free units and every batch releases on its own date.
* **Reservation progress bar** — "67 of 200 reserved" as a bar or text on the product page and optionally in listings, with an urgency text when few units are left and a note when orders fall into a later batch.
* **Campaign windows** — Set when pre-orders open and close, per product and per variation. Before opening the product is a teaser with its badge, an "opens on" line, no buy button and a notify-me form; after closing it stops taking pre-orders until the release date.
* **Notify-me waitlist** — A "Notify me" form before pre-orders open, on sold-out limited pre-orders and on out-of-stock products, with three WooCommerce emails (pre-orders open, back in stock, more units available), one-click unsubscribe, spam protection, a Waitlist screen with filters, CSV export and manual send, WordPress privacy export and erase support, and automatic pruning of notified entries.
* **Circle countdown** — A third countdown style with a ring per unit (days, hours, minutes and optionally seconds), your own ring and track colors and an adjustable size.
* **Icon badge** — Show a clock, hourglass, bell, price tag or rocket instead of the badge text, in a circle or a square, with your own icon and background colors; the badge text stays as the accessible name for screen readers.
* **Order screen extras** — Deposit and balance facts with the customer's payment link on every pre-order, batch information under each item, deposit and balance tags in the Orders list, and a "Send balance payment request" action.

➡ **[GET PREMIUM VERSION NOW!](https://wpdevart.com/woocommerce-pre-order-plugin-with-deposits)**

= Pre-orders, per product and per variation =

* Enable pre-orders on simple products and on individual variations
* Release date with optional time, in your store's time zone
* Or no date at all: a "Coming soon" mode with your own text (for example "Expected Q4 2026")
* Pre-order price per product or variation: a fixed price, or a discount or markup by amount or percentage, with the crossed-out regular price beside it
* Custom button label and availability text per product
* Bulk actions for variations: enable, disable or set a date for many at once

= Shop and product page =

* "Pre-Order" badge on product listings and on the main product image, in the corner you choose, with colors to match your theme
* The badge steps aside from sale badges, wishlist buttons and WooCommerce's zoom button
* Availability text with placeholders for the release date, time and days left
* Live countdown on the product page (boxes or a single line), computed in the shopper's browser so it stays correct behind full-page caching
* On variable products the badge, text and countdown follow the selected variation
* Structured data: pre-order products announce `PreOrder` availability and the release date to search engines

= Orders and release =

* A real **Pre-Ordered** order status, shown in the Orders list, order emails and My Account
* Orders paid by any method, including cash on delivery and bank transfer, are handled consistently
* Automatic release at the exact minute, with an hourly safety sweep and an on-view fallback, so a missed cron job cannot leave a released product selling as a pre-order
* Choose the status orders move to on release
* Downloads of pre-ordered files are withheld until release
* Mixed carts: allow pre-orders next to regular products, or keep them separate with your own notice
* Customers see their pre-orders, release dates and countdowns under **My Account → Pre-orders**

= Automatic pre-orders for sold-out products =

* Optionally switch products to pre-order the moment WooCommerce marks them Out of stock, at their normal price, with a dedicated "ships as soon as it is back in stock" text
* Per product and per variation overrides
* When stock returns, the open pre-orders are released automatically (once the stock covers them, once the product is back in stock, or never — your choice)
* Products on automatic pre-order stay visible even when WooCommerce is set to hide out-of-stock items

= Emails =

Four WooCommerce emails, each editable and templatable like any other WooCommerce email:

* New pre-order (admin)
* Pre-order confirmed (customer)
* Pre-order released (customer)
* Release date changed (customer, optional, sent when you change a date)

= Built for today's WooCommerce =

* Works with High-Performance Order Storage (HPOS) and the classic order tables
* Works with the Cart and Checkout blocks and the classic shortcodes
* Works with block themes (Product Collection, Products block, block product page) and classic themes
* Tested with popular themes, including Astra, Storefront, Kadence, OceanWP, GeneratePress, Neve, Hello Elementor and the Twenty Twenty-Three, Four and Five themes
* Translation ready, WPML ready, RTL ready
* All templates can be overridden from your theme

= External services =

This plugin does not connect to any external service. No data leaves your site.

== Installation ==

1. Install and activate WooCommerce.
2. Install and activate WpDevArt Pre-Orders for WooCommerce.
3. Edit a product and open the **Pre-Order** tab (or the pre-order fields inside each variation), enable pre-orders and set a release date.
4. Adjust texts, colors and behavior under **WDA Pre-Orders → Settings**.

== Frequently Asked Questions ==

= Which products can be pre-ordered? =

Simple products and individual variations of variable products. Each variation has its own switch, date and price, so one size can be on pre-order while the others ship immediately.

= What happens when the release date arrives? =

The product stops being a pre-order: its badge, countdown and pre-order price go away and the normal "Add to cart" returns. Every order that contains it and is fully paid moves from Pre-Ordered to the status you chose (Processing by default), downloads are unlocked and the customer receives the "Pre-order released" email. Orders with several pre-order items move on once the last item is released.

= Does the release depend on WP-Cron? =

The release is scheduled for the exact minute, an hourly sweep catches anything a missed cron event left behind, and the product page checks the date on every view. A product can never keep selling as a pre-order after its date. If WP-Cron is disabled on your server, the Advanced tab shows this and lets you run the check manually.

= Can I change what the customer pays for a pre-order? =

Yes. Per product or variation, set a fixed pre-order price, or a discount or markup as an amount or a percentage of the regular (or sale) price. The regular price can be shown crossed out beside it.

= Does the countdown work with caching plugins? =

Yes. The page only contains the release timestamp; the remaining time is computed in the shopper's browser, so a cached page is never stale.

= How do automatic pre-orders for out-of-stock products work? =

Enable "Switch products to pre-order automatically when they run out of stock" under WDA Pre-Orders → Settings → General (or per product / variation). A product WooCommerce marks Out of stock is then sold as a pre-order at its normal price, with the "text for automatic pre-orders". When you restock it, the open pre-orders are released according to the "When stock returns" setting. Products that allow backorders never become Out of stock, so they never switch.

= A product on automatic pre-order is missing from my "All Products" block. Why? =

Products on automatic pre-order are shown on shop and category pages, in Product Collection blocks and in search even when WooCommerce is set to hide out-of-stock items. The legacy **All Products** block and the Store API filter on WooCommerce's stock lookup table, which the plugin does not rewrite, so they still hide out-of-stock products. Use the Product Collection block, or turn off "Hide out of stock items from the catalog" in WooCommerce → Settings → Products → Inventory.

= Can I change the texts, colors and positions? =

Yes. Badge text, position (separately for listings and the product page), colors, button label, availability texts and countdown style are all under **WDA Pre-Orders → Settings → Display**. The button label and availability text can also be set per product.

= Can I override the templates? =

Yes. Storefront templates (the badge, the availability line, the countdown box, the My Account table and the order and email notices) are copied from the plugin's `templates` folder into `your-theme/wpdevart-pre-orders-for-woocommerce/`, keeping the same sub-folder and file name. The four WooCommerce emails are WooCommerce email templates: override them from WooCommerce → Settings → Emails, or copy them into `your-theme/woocommerce/emails/` (and `your-theme/woocommerce/emails/plain/`).

= Does it work with the Cart and Checkout blocks and with HPOS? =

Yes, with both the block and the classic cart and checkout, and with both order storage modes.

= Does the plugin send any data to external services? =

No. It makes no external requests of any kind.

= Where are my customers' pre-orders listed? =

Under **My Account → Pre-orders**, with the release date, a countdown and a link to each order.

== Screenshots ==

1. Product page: badge on the image, availability text and live countdown below the Pre-Order button.
2. Shop page: badges on pre-order products, next to the sale badge.
3. The Pre-Order tab on the product edit screen: date, time, pricing and texts.
4. Per-variation pre-order fields inside a variable product.
5. Orders list with the Pre-Ordered status.
6. Settings → Display: badge, texts and countdown.

== Changelog ==

= 1.0.0 =

* Initial release.
