Skip to content

Pre-orders

The pre-order module lets you mark products as pre-order, display the release date and change the button text. Useful for stores with electronics, books, games and other products offered before release.

Go to Polski > Modules and enable Pre-orders (module key pre_order). Since Polski PRO 1.22.0 the PRO modules have their own rows there, and the settings below are the fields on that row; saving the row writes them into the polski_preorder option. The module ships off, because it changes what a shopper is told.

Setting Key Default Description
Show pre-order wording on the product page show_on_single On Gates the pre-order notice on the single product page
Add to cart button text button_text empty, falls back to “Pre-order now” Global button text for pre-order products
Availability text availability_text empty, falls back to “Pre-order, shipping from {date}” Replaces the stock status. {date} is the formatted release date
Show the pre-order notice show_notice On The notice under the product summary
Notice text notice_text empty Body of that notice. {date} is interpolated here too
Allow pre-orders and normal products in one cart allow_mixed_cart On With this on, mixing is allowed. Turn it off to warn about a mixed cart
Release date format date_format d.m.Y Display format for the release date

Since Polski PRO 1.26.0 these live on the Polski Pro tab of the product data box, which is where they are written. See Per-product settings for the whole tab.

Field Key Type Description
Sell as a pre-order _polski_preorder_enabled yes / no Half of the gate
Release date _polski_preorder_date string (Y-m-d) The other half, and the date shown to the customer
Button text _polski_preorder_button_text string Overrides the global button text for this product

A product is a pre-order only when both the flag is yes and the date parses. Ticking the box and leaving the date empty changes nothing on the storefront. The availability text is global, on the Modules screen, and has no per-product override.

Terminal window
wp post meta update 123 _polski_preorder_enabled "yes"
wp post meta update 123 _polski_preorder_date "2026-06-15"
wp post meta update 123 _polski_preorder_button_text "Zamów teraz, premiera 15 czerwca"
update_post_meta($product_id, '_polski_preorder_enabled', 'yes');
update_post_meta($product_id, '_polski_preorder_date', '2026-06-15');

When a product is marked as pre-order, the “Add to cart” button text changes to the configured pre-order text. This applies to:

  • Single product page
  • Archive, category and tag pages
  • Search results
  • WooCommerce blocks (Product Grid, Product Collection)

Instead of the standard stock status (“In stock”, “Out of stock”), the availability text with the release date is displayed. The {date} placeholder is replaced with the formatted date.

Display example:

Dostępne od 15.06.2026

Nothing switches itself off. There is no scheduled task that clears the pre-order flag once the release date passes, so the wording stays until you untick Sell as a pre-order on the product, or clear the date.

With Allow pre-orders and normal products in one cart turned off, a cart holding both a pre-order and an ordinary product raises a WooCommerce error notice on every totals recalculation, carrying the module’s mixed-cart message.

It is a notice, not a block: the product is still added, and nothing stops the shopper reaching checkout with a mixed cart. Release dates are not compared, so two pre-orders with different dates are never flagged.

The module registers no shortcode, and it adds no filters or actions of its own. It works entirely through WooCommerce’s own hooks:

WooCommerce hook What the module does
woocommerce_product_single_add_to_cart_text and woocommerce_product_add_to_cart_text (priority 20) Swaps the button text
woocommerce_get_availability_text (priority 20) Replaces the stock status with the availability text
woocommerce_single_product_summary (priority 31) Prints the pre-order notice
woocommerce_before_calculate_totals Raises the mixed-cart notice

To change the wording from code, hook those WooCommerce filters at a later priority.

The pre-order flag and the release date are meta on the parent product, so a variable product is a pre-order as a whole or not at all. There are no per-variation pre-order settings.

The product still reads as a pre-order after the release date That is the current behaviour, not a fault: nothing clears the flag on a schedule. Untick Sell as a pre-order on the product, or clear its release date.

The pre-order wording does not appear at all Check all three: the pre_order module is enabled on Polski > Modules, Sell as a pre-order is ticked on the product, and the product has a release date that parses.

Customer put a pre-order and regular products in one cart That is allowed unless you turn Allow pre-orders and normal products in one cart off, and even then the shopper only gets an error notice, they are not stopped.

Release date displays in the wrong format Check the “Date format” setting in the module configuration. The format uses standard PHP date() placeholders.

This page is for informational purposes only and does not constitute legal advice. Consult a lawyer before implementation. Polski for WooCommerce is open source software (GPLv2) provided without warranty.