WooCommerce Subscriptions is a powerful extension for setting up recurring payments for your store, but one thing it can’t do is let you have a subscription to a product that uses Pre-Orders. If you look on the page about Pre-Orders, you’ll see it says “Not compatible with Subscriptions.” I recently had a customer who needed to have a pre-order for a subscription product and this is the solution we came up with. It’s a fairly common request so I wanted to share it with all of you in case you need it too.
Required Plugins
To set this up, we’ll need to use the following WooCommerce extensions:
- WooCommerce Subscriptions
- First Payment Date for WooCommerce Subscriptions
- Subscriptions Custom Price String
With all three installed, let’s create a product for our pre-sale. The first thing we need to do is set the product type to be a “simple subscription.” That will bring up the options for how often it renews and the various costs.
One thing you’ll notice right away is at the bottom of the “general” section there is now a field for the first payment date.

Essentially what’s happening here is the “First Payment Date” extension is using the “free trial” feature in Subscriptions. By default, that lets you specify how long a free trial lasts, but not an end date. If there is a fourteen-day trial, then everyone will be given two weeks from sign-up free regardless of what date the fourteen-days ends on.
This extension lets you set the date when the trial ends instead of setting a number of days. We can use that to be the “release date” we would have with a typical pre-order.
If we view the product now though, it’s not going to look quite right. It’ll say we have a free trial which is wrong. This is a pre-order so we’ll need to fix that or we’ll confuse our customers.

This is where the Custom Price String extension comes into play. It lets us replace the “$25 / month with a 48-day free trial” with whatever we’d like it to say. The extension adds a new field to the “general” tab called “Custom price string” for this.

Now when we view the product, we get something that looks much better.

When the pre-order time arrives, you can simply remove the custom price string and date. Then it will function and look just like any other subscription product.
One last note. Make sure in the Subscription settings (WooCommerce > Settings > Subscriptions) that the option to allow $0 checkout is not enabled. We want to get the payment information upfront so that the pre-order processes without the user having to log back in and add payment details. Sometimes that’s desirable with free trials, but not so much with pre-orders.

So that should do it. You’ve now created a free-trial with a subscription product. And it only required two free plugins to make it happen. If you have any questions, leave them in the comments and I’ll be happy to help you out.
Leave a Reply