Description
Bitnary Preorder Dates for WooCommerce adds a pre-order mode to simple products and to individual
product variations, with two independent dates: the cutoff (when the store stops accepting
orders) and the release (when the product ships or becomes available).
Two dates let a store say “we take orders until the 20th, and it ships on the 30th”: a batch
cutoff followed by a shared release.
While a product is in pre-order and before its cutoff, it is purchasable even if your normal
stock settings would otherwise say no (out of stock, zero quantity, no backorders). After the
cutoff, the product stops being purchasable everywhere WooCommerce checks that, including the
classic cart and the cart and checkout blocks (Store API). After the release date, pre-order is
cleared automatically and the product goes back to behaving like any other product.
What the free version does:
- Per-product and per-variation pre-order toggle, with a cutoff date/time and a release
date/time, in your store’s timezone. - Purchasable before the cutoff regardless of normal stock rules; blocked after the cutoff, on
the product page, classic add-to-cart, and the Store API used by the cart/checkout blocks. - Automatic cleanup after the release date (checked when the product is read, and once a day by
WP-Cron as a backstop). - “Pre-order” label on the product page and in shop listings, with the ship and cutoff dates;
“Pre-order” button text; “Pre-orders closed” message once the cutoff passes. - Release date shown as a line item in the cart and checkout, including the cart/checkout
blocks, and saved on the order so it shows up in the order admin screen and in WooCommerce’s
order emails. - Editable text and date format under WooCommerce > Settings > Products > Pre-order dates.
- A Pre-orders screen under the WooCommerce menu listing every product and variation taking
orders or waiting to ship, ordered by whichever date comes next. - Declared compatible with High-Performance Order Storage (HPOS) and with the cart/checkout
blocks.
What the free version does not do (see the FAQ): it does not warn about or block a cart that
mixes pre-order and in-stock items, it does not email the customer before the release date, and
it has no way to move the dates of many products at once.
Privacy
The free version makes no external requests and collects no data.
Screenshots







Installation
- Upload the plugin files to
/wp-content/plugins/bitnary-preorder-dates-for-woocommerce, or install it through the WordPress plugins screen. - Activate the plugin. WooCommerce must already be installed and active.
- Edit a simple product and open the “Pre-order” tab in the Product data box, or edit a variation and open the pre-order fields inside the Variations tab.
- Turn pre-order on, set when orders close and when the release ships.
- Optionally adjust the label, button text, closed message and date format under WooCommerce > Settings > Products > Pre-order dates.
FAQ
-
Why two dates instead of one?
-
One date only answers “when is it available”. Two dates answer the two questions a shop
actually needs during a pre-order window: when do we stop taking orders for this batch, and when
does it ship. If your cutoff and release are the same day, just set them to the same value; the
plugin does not require them to differ. -
What happens exactly at the cutoff?
-
The product stops being purchasable:
woocommerce_is_purchasableand
woocommerce_variation_is_purchasable return false, the classic add-to-cart form and AJAX
add-to-cart are blocked, and adding the item through the Store API (used by the cart and
checkout blocks) is rejected with the message configured as “Closed message”. The product page
and shop listings show that message in place of the pre-order label. -
What happens at the release date?
-
Pre-order is cleared: the enable flag, cutoff and release dates are removed from the product or
variation, and it goes back to being handled entirely by WooCommerce’s normal stock and
purchasability rules. This happens automatically the next time the product is read (viewed,
loaded in the admin, queried) or, at the latest, the next time the daily cleanup runs. -
What does the free version not do?
-
It does not stop a customer from adding a pre-order item and an in-stock item to the same cart,
it does not email the customer a few days before the release date, and it has no way to move the
pre-order dates of many products at once. All three are part of the paid version, which can warn
about a mixed cart or block checkout until it is split, but does not split it into two orders. -
Where do I get the paid version?
-
At https://preorder.bitnarydigital.com, also linked from WooCommerce > Settings > Products >
Pre-order dates. The paid version is a separate download that replaces this plugin: deactivate
this one, then upload and activate the paid one. Your dates and settings carry over. It is sold
through Freemius, which handles the licence key and its updates. Refunds are available for 14 days. -
Does this work with High-Performance Order Storage (HPOS) and the cart/checkout blocks?
-
Yes. Both are declared compatible on
before_woocommerce_initvia
FeaturesUtil::declare_compatibility(), and the plugin only ever reads and writes product and
order data through WooCommerce’s own CRUD methods, never raw SQL. -
Does this send emails or texts to customers automatically?
-
No. The release date is added as a line on the cart, checkout, and order emails that WooCommerce
already sends; the plugin does not add its own separate emails or SMS. -
Where do I set the store timezone used for the dates?
-
Settings > General > Timezone in WordPress. The plugin reads and writes all dates using that
timezone (wp_timezone()).
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Bitnary Preorder Dates for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Bitnary Preorder Dates for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.4
- Fix: the pre-order button text reads the shop loop’s product without
re-declaring the filter’s own parameter as a global. - Change: “Tested up to” is declared in the readme only.
0.3.3
- New: “Settings” and “Get Pro” links in the plugins list, a short box about the
paid version at the end of the Pre-orders screen, and one line about bulk
editing under the dates in the product’s Pre-order tab. No admin notices.
0.3.2
- Change: the WordPress.org version no longer includes the Freemius SDK, so it
makes no external requests. The SDK now ships only with the paid version.
The paid version is bought on the plugin’s website instead of from an Upgrade
screen inside the plugin.
0.3.1
- Change: every function, class, hook, option and meta key now starts with
“pdfw” instead of “pdw”, which was short enough to clash with other plugins.
Settings and product dates saved by earlier versions are moved over once, on
the first load after updating. Code hookingpdw_loadedshould hook
pdfw_loaded now. - Change: renamed to Bitnary Preorder Dates for WooCommerce. The plugin folder
and text domain are nowbitnary-preorder-dates-for-woocommerce.
0.3.0
- New: licensing, the account screen and the upgrade path now run on the Freemius
SDK, which is also what lets the paid build update itself. On WordPress.org the
SDK runs in its compliant mode and collects nothing without opt-in. - Note: this makes the download larger. The SDK is around four megabytes.
0.2.0
- New: a “Pre-orders” screen under the WooCommerce menu, listing every product
and variation taking orders or waiting for its release, ordered by whichever
date comes next. - New: the settings screen lists what the paid version adds. Two of those lines
were reworded to match what it will actually do. - Dev: unit tests and a
pdw_loadedaction, so the paid add-on has a stable
place to hook into.
0.1.2
- Fix: the two nonce values read on save are now sanitized before they are verified.
- Change: dropped the manual translation loader. WordPress.org loads translations on its own
since WordPress 4.6, so the call was doing nothing.
0.1.1
- Fix: a variable product’s variations did not show the pre-order label/closed message or
swap the add-to-cart button text when selected; the variation dropdown now carries its own
availability text and button text, applied by a small enqueued script. - Fix: a variation past its order cutoff showed the generic “Out of stock” text instead of the
configured closed message. - Fix: a variable product showed no pre-order indication in shop listings; it now shows the
label of whichever variation is open for pre-order and ships soonest.
0.1.0
- First release: pre-order toggle with cutoff and release dates for simple products and
variations, purchasability rules, front-end label and button text, cart/checkout/order line
item, settings page, HPOS and cart/checkout blocks compatibility.
