Overview
Sell products before they exist: deposits, pay on release or cards charged on release. Add allocation limits, reports and an automatic release day.
Requirements
- WordPress 6.4 or later
- PHP 7.4 or later
- WooCommerce 8.2 or later
- Required plugins: woocommerce
Installation
Download Anticipo - Pre-Orders for WooCommerce from your ProPluginsLab account, then upload it to WordPress.
Log in to your ProPluginsLab account and open My Account > Downloads.
Download the plugin zip file.
In your WordPress admin, go to Plugins > Add New Plugin > Upload Plugin.
Choose the zip file, click Install Now, then Activate.
License and automatic updates
Anticipo works fully as soon as it is activated. The license key turns on automatic updates, so new versions arrive in WordPress like any other plugin update. Pro features never depend on it.
Activate your license
Find your license key in My Account on propluginslab.io, in the license keys section. It is also in your order confirmation email.
In WordPress, open WooCommerce > Licenses. It lists every active ProPluginsLab plugin on the site, one row each.
Paste the key into the Anticipo - Pre-Orders for WooCommerce Pro row and click Activate. The status changes to Active and automatic updates are on.
Receive updates automatically
Once the license is active, new versions of Anticipo show up under Dashboard > Updates and on the Plugins screen. Click Update now, or click Enable auto-updates in the Anticipo row on the Plugins screen and WordPress installs every future release for you.
Good to know
- Keys are checked once a day in the background, so your site never waits for the license server. If the server is briefly unreachable, the plugin keeps its last known status.
- An expired key or a key that is not accepted only stops updates. Anticipo keeps working. After renewing, click Check now in its row.
- Moving to a new domain: click Deactivate on the old site first, then activate the key on the new one. The status shows Site address changed, checking until the new address is confirmed.
- On the command line:
wp ppl-license list,wp ppl-license activate <plugin> <key>,wp ppl-license checkandwp ppl-license deactivate <plugin>.
Quick start
- Open Pre-orders
Go to
wp-admin/admin.php?page=anticipo-preordersin your WordPress admin. - Open Pre-orders
Go to
wp-admin/admin.php?page=anticipo-preorders&tab=reportsin your WordPress admin. - Open Pre-orders
Go to
wp-admin/admin.php?page=anticipo-preorders&tab=calendarin your WordPress admin. - Open Licenses
Go to
wp-admin/admin.php?page=cwg-licensesin your WordPress admin.
#Pre-orders
Location: wp-admin/admin.php?page=anticipo-preorders
On this screen:
- Pre-orders
#Pre-orders
Location: wp-admin/admin.php?page=anticipo-preorders&tab=reports
On this screen:
- Pre-orders
- Pre-orders per day
- Most pre-ordered products
- Where the money sits
- By status
- Commitment outstanding right now
#Pre-orders
Location: wp-admin/admin.php?page=anticipo-preorders&tab=calendar
On this screen:
- Pre-orders
- What is due to release
- Products with open pre-orders
#Licenses
Location: wp-admin/admin.php?page=cwg-licenses
On this screen:
- Licenses
#Edit product
Location: wp-admin/post.php?post=40&action=edit
On this screen:
- Edit product
- Product description
- Publish
- Product image
- Product gallery
- Product categories
- Product tags
- Product brands
#Edit product: Pre-order product panel
Location: wp-admin/post.php?post=40&action=edit
On this screen:
- Edit product
- Product description
- Publish
- Product image
- Product gallery
- Product categories
- Product tags
- Product brands
#Edit product: Most Used
Location: wp-admin/post.php?post=40&action=edit#product_cat-pop
On this screen:
- Edit product
- Product description
- Publish
- Product image
- Product gallery
- Product categories
- Product tags
- Product brands
#Edit product: Most Used
Location: wp-admin/post.php?post=40&action=edit#product_brand-pop
On this screen:
- Edit product
- Product description
- Publish
- Product image
- Product gallery
- Product categories
- Product tags
- Product brands
#Edit order
Location: wp-admin/post.php?action=edit&post=50
On this screen:
- Edit order
- Order actions
- Order attribution
- Origin
- Customer history
- Total orders
- Total revenue
- Average order value
#WooCommerce > Settings > Email > Pre-order confirmed
Location: wp-admin/admin.php?page=wc-settings&tab=email§ion=anticipo_po_email_customer_preorder_confirmed
On this screen:
- Pre-order confirmed
- Email preview
- Your pre-order is confirmed, order 12345
#WooCommerce > Settings > Email > Pre-order date changed
Location: wp-admin/admin.php?page=wc-settings&tab=email§ion=anticipo_po_email_customer_date_changed
On this screen:
- Pre-order date changed
- Email preview
- New release date for your pre-order, order 12345
#WooCommerce > Settings > Email > Pre-order released
Location: wp-admin/admin.php?page=wc-settings&tab=email§ion=anticipo_po_email_customer_preorder_available
On this screen:
- Pre-order released
- Email preview
- Release day: your pre-order is being prepared
#Pre-orders: Settings
Location: wp-admin/admin.php?page=anticipo-preorders&tab=settings
On this screen:
- Pre-orders
- General
- Display
- Release workflow
- Advanced
- Payments
#Pre-orders: Status
Location: wp-admin/admin.php?page=anticipo-preorders&tab=status
On this screen:
- Pre-orders
- Health checks
- Background queue
- Activity log
#Pre-orders: Documentation
Location: wp-admin/admin.php?page=anticipo-preorders&tab=docs
On this screen:
- Pre-orders
- Set up your first pre-order in five minutes
- What the customer sees
- Every setting explained
- General
- Display
- Release workflow
- Advanced
#Pre-orders: Pre-orders
Location: wp-admin/admin.php?page=anticipo-preorders&tab=preorders
On this screen:
- Pre-orders
Settings reference
Pre-orders
#Subject
Sent once to every order with open pre-orders for this product. Merge tags such as {customer_name}, {order_number} and {release_date} work here.
#Message
Sent once to every order with open pre-orders for this product. Merge tags such as {customer_name}, {order_number} and {release_date} work here.
WooCommerce > Settings > Email > Pre-order confirmed
#Enable/Disable
#Subject
#Email heading
#Message
The text shown above the pre-order table. Available tags: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}
#Additional content
#Email type
#Cc(s)
#Bcc(s)
WooCommerce > Settings > Email > Pre-order date changed
#Enable/Disable
#Subject
#Email heading
#Message
The text shown above the pre-order table. Available tags: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}
#Additional content
#Email type
#Cc(s)
#Bcc(s)
WooCommerce > Settings > Email > Pre-order released
#Enable/Disable
#Subject
#Email heading
#Message
The text shown above the pre-order table. Available tags: {site_title} {site_url} {customer_name} {order_number} {order_date} {release_date} {product_list} {old_date} {account_url} {pay_url} {balance} {due_date} {days}
#Additional content
#Email type
#Cc(s)
#Bcc(s)
Pre-orders: Settings
#Enable pre-orders
Turn every pre-order feature off without losing any data or settings. Existing pre-orders stay in the database and resume when you switch this back on.
#Mixed carts
A pre-order holds the whole order until release day. Block this if you do not want in-stock items waiting alongside it.
#Default billing
How customers pay when a product does not set its own rule. Pay upfront charges the full price at checkout. Pay on release charges nothing now and sends a payment link on release day. Save card and charge on release saves the customer's card with Stripe at checkout and charges it automatically when
#Default deposit type
Used when a product asks for a deposit but does not say what kind.
#Default deposit value
A percentage when the deposit type is percentage, otherwise an amount per unit in your store currency.
#Let customers pay in full instead of a deposit
On deposit products, the product page offers "Pay a deposit now" or "Pay in full now". Paying in full is charged like any normal order and raises no balance later. A product can switch this on or off for itself.
#Add to cart button text
Shown instead of the usual Add to cart label on pre-order products.
#Availability message
Shown under the price on the product page. Supports {date} and {time}.
#Message when the date is unknown
Used on products where you ticked "date not announced yet".
#Show a pre-order badge on product images
#Badge text
#Show the availability message in shop listings
Leave this off on very large catalogues if you want the absolute minimum work done per listing.
#Show a countdown to release
A live countdown on the product page. Hidden automatically when no date is announced.
#Show remaining pre-order allocation
Only appears on products that set a maximum number of pre-orders. Displays a progress bar such as "82 of 100 claimed".
#Status for orders awaiting release
Defaults to the Pre-ordered status this plugin adds, which keeps pre-orders out of your normal pick list.
#Status once released
Usually Processing, so released pre-orders join your normal fulfilment queue.
#Release automatically on the availability date
Switch this off to review each launch yourself and press Release manually from the Pre-orders screen.
#Orders per background batch
Lower this on shared hosting. Higher values finish a launch faster but use more memory per background run.
#Reduce stock on release rather than at checkout
On by default. The units do not exist yet, so reducing stock at checkout would make your inventory figures wrong for weeks.
#Send release reminders this many days before
Comma separated. For example 14,7,1 sends three reminders. Leave empty to send none.
#Cache reports for this many minutes
Set to 0 to always recalculate. Only do that on small stores.
#Let integrations change pre-orders through the REST API
Off by default. When on, an ERP or headless front end signed in with an application password can release and cancel pre-orders and set release dates. The user behind the password still needs the Manage pre-orders capability. Reading is always allowed for that user.
#My Account endpoint slug
The URL segment for the customer pre-orders page. Save your permalinks after changing this.
#Activity log detail
The log is what you read when a customer queries what happened to their order.
#Delete log entries older than (days)
#Delete all pre-order data when the plugin is deleted
Off by default. Deactivating never removes data; only deleting the plugin with this box ticked does.
#Days the customer has to pay the balance
Counted from release day. The customer gets a final reminder one day before the deadline.
#Cancel the pre-order if the balance is never paid
Off by default. Leave it off if you would rather chase the customer yourself.
#Try to charge the saved card automatically
For deposit balances paid with the WooCommerce Stripe Gateway. The card is saved at checkout and the balance is charged to it on release. If the charge cannot be attempted or it fails, the customer is emailed a payment link instead, so nothing is ever lost.
#Charge on release: retry a declined card after these days
Comma separated, counted from the first failed charge. For example 1,3 tries again after one day and after three days. Once the retries are used up, or straight away if the bank asks the customer to confirm the payment, the customer is emailed a secure payment link. Leave empty to email them on the
#Charge on release: days the customer has to pay after a failed charge
Counted from the first failed charge. Retries scheduled after this are skipped.
#Charge on release: cancel the order if it is still unpaid at the deadline
The reserved stock is released and any gift card balance used at checkout is returned.
#Charge on release: seconds between charges
Spaces out the charges after a big release so Stripe never rate limits the store.
#Charge on release: amounts below the card minimum
Card payments have a minimum, 0.50 in US dollars with Stripe. When less than that is left to charge on release, for example after a cancelled item or a gift card, the order is either marked as paid and the amount written off, with an order note and an admin notice that state the exact amount, or the
#Charge on release: skip the card when a gift card covers the whole pre-order
When gift cards or discounts leave nothing to charge on release, checkout asks for no card and offers no payment step. The order is Pre-ordered as usual and settles on release with nothing charged.
#Hide buy now, pay later on pre-orders
While the cart holds a pre-order, whatever its billing, Afterpay, Clearpay, Klarna and Affirm are hidden in the WooCommerce Stripe Gateway, both inside the Stripe payment option and as separate payment methods, and PayPal Pay Later buttons and messages are hidden in WooCommerce PayPal Payments, also
#Let customers cancel their own pre-orders
Adds a Cancel button to the customer pre-orders page in My Account.
#Stop self cancellation this many days before release
So nobody cancels the morning a launch ships.
Shortcodes
[anticipo_preorder_products]
Shortcode registered by the plugin.
[anticipo_preorder_products]
On your site
These pages show what visitors see on your site.
Frequently asked questions
Does this work with variable products?
Yes. Variations follow the parent product by default. On each variation you can switch pre-orders on or off and give it its own release date, or mark its date as not announced yet. Billing, pricing and limits come from the parent product, and the limit counts every variation together.
Which payment gateways work?
Any gateway for pay upfront, deposit and pay on release: the balance is a normal WooCommerce order paid through the payment link. Save card and charge on release, and the automatic charge of deposit balances, need the official WooCommerce Stripe Gateway. Developers can add another gateway with the anticipo_po_release_charge_gateways and anticipo_po_pre_charge filters.
Can customers use Afterpay, Klarna or PayPal Pay Later on a pre-order?
Not while "Hide buy now, pay later on pre-orders" is on, which it is by default (Settings, Payments). While the cart holds a pre-order in any billing mode, Afterpay and Clearpay, Klarna and Affirm are hidden in the WooCommerce Stripe Gateway, both inside the Stripe payment option on the classic and block checkout and as separate payment methods, and PayPal Pay Later buttons and messages are hidden in WooCommerce PayPal Payments, also on pre-order product pages. Cards and the normal PayPal button stay. Switch the setting off to offer them again.
Can a gift card pay for a charge on release pre-order?
Yes. The gift card is used at checkout and only the rest is charged on release. When gift cards or discounts cover the whole order and "Skip the card when a gift card covers the whole pre-order" is on (the default), checkout asks for no card and has no payment step. The order is Pre-ordered as usual and settles on release with nothing charged. A customer account is still required.
What if only a few cents are left to charge on release?
Card payments have a minimum, 0.50 in US dollars with Stripe. When less than that is left, for example after a cancelled item, "Amounts below the card minimum" decides: "Mark as paid (write off)", the default, marks the order as paid and states the exact amount written off in an order note and an admin notice; "Email the customer a payment link" sends the "Pre-order payment needs attention" email so the customer can pay it online, with the usual payment deadline.
Do coupon usage limits work on pre-orders?
Yes. A coupon counts as used as soon as the pre-order is placed, while the order waits in Pre-ordered or Awaiting balance, with the classic and the block checkout alike. Moving on to Processing later does not count it again, and a cancelled or failed order gives the use back.
Is shipping charged at checkout with pay on release?
Yes. With deposit and pay on release, shipping and fees are paid at checkout and the product price is collected on release. With save card and charge on release, nothing at all is paid at checkout and shipping is part of the release charge.
What happens to a customer's money when they cancel?
Customers can cancel from My Account until the cut-off you set. They are told the store has been notified and will refund what they paid. The store gets an email, an order note and an admin notice on the order screens with the amount to refund, for a deposit or a full payment alike. Refunds are not made automatically: refund from the order screen, then click "Mark as refunded" on the notice. When nothing else is left on the order, the order is cancelled too.