Today I want to tell you about a free plugin we have published in the repository, and which is our second most used and downloaded free plugin after our famous plugin for Importing and Exporting Users and Customers (which today is the de facto standard for that job in this ecosystem). This second plugin is First Payment Date for WooCommerce Subscriptions and, well, I think its name makes it clear what it does: it lets you set fixed payment dates in WooCommerce Subscriptions.


The problem: WooCommerce Subscriptions works with periods, not with dates

WooCommerce Subscriptions lets you delay the first charge of a subscription through the trial period: “1 month free”, “15 days free”… The problem is that a trial period is relative to the moment of purchase, not a specific date.

In other words, with WooCommerce Subscriptions you can say “one month free”, but you cannot say “this subscription starts being charged on January 1st, no matter who buys it or when”.

And that is exactly the real need of a great many businesses:

  • Membership fees for clubs and associations that always start on January 1st.
  • Academies, gyms and schools whose course starts in September.
  • Services billed by calendar month, where everyone is charged on the 1st (or the 5th, or the 15th).
  • Pre-orders and bookings, where the customer buys today but is not charged until the launch date.

The First Payment Date for WooCommerce Subscriptions plugin solves exactly that: it lets you set a date (fixed or calculated) for the first payment, and it takes care of translating it internally into the trial period in days that WooCommerce Subscriptions needs.


Requirements

  • WordPress (tested up to version 7.0.3).
  • WooCommerce 3.0 or higher (tested up to WooCommerce 11.0.0 at the time this post was written, but we will keep it up to date, so it will be compatible with any future WooCommerce version).
  • WooCommerce Subscriptions active. If it is not, the plugin does nothing and shows you a notice in the dashboard.
  • Compatible with HPOS (High-Performance Order Storage), so you will not get incompatibility notices.

Installation

  1. Install First Payment Date for WooCommerce Subscriptions from Plugins → Add New, or by uploading the ZIP file.
  2. Activate it.
  3. Done. There is no settings page: all the configuration is done product by product.

Important note for new products: the plugin fields only appear on Simple subscription or Variable subscription products. When you create a new product, WooCommerce treats it as a simple product, so save it as a subscription first and reload the screen; the fields will then show up.


Configuration on a simple subscription

Edit the product and go to Product data → General. Below the usual WooCommerce Subscriptions fields you will see a new block with the “First payment date type” selector, offering three options:

Option 1: “Use the standard trial period”

This is the default value. The plugin steps aside and WooCommerce Subscriptions works as usual, with its classic trial period field. Use it when you really want an “X days free” relative to the purchase.

Option 2: “Fixed date”

A calendar field appears where you choose a specific date (for example, 2027-01-01).

What happens from that point on:

  • When a customer adds the product to the cart, the plugin calculates the days remaining from today until that date and applies them as a trial period in days.
  • The WooCommerce Subscriptions trial period fields are hidden automatically and set to zero, so there are no duplications or odd calculations.
  • If the date has already passed, the trial period is calculated as 0 days: the customer pays at the moment of purchase. That way, an expired date never blocks the sale or causes errors.

A technical detail you will appreciate: the calculations are made using your WordPress time zone and setting the time to 12:00, precisely to avoid the classic one-day offset when someone buys in the early hours or right before the day changes.

Option 3: “Calculated day”

Here is the magic for calendar-based recurring subscriptions. Instead of a static date you would have to update every year, you choose a rule, and the plugin calculates the date at the moment of each purchase. The free version offers two rules:

  • First day of next month — a customer who buys on March 7th will pay on April 1st; one who buys on March 28th will also pay on April 1st. Ideal for calendar-month billing.
  • First day of next year — perfect for annual membership fees that always start on January 1st.

Besides, the plugin is smart enough not to break with short months: if the rule points to a day that does not exist in the target month (the 31st in February, for example), it uses the actual last day of that month instead of skipping the whole month.

Need more rules? The 15th of next month, the last day of the month, “the next 10th, whether it is this month or the next one”… These advanced options are in the premium version. I go through them further down, but if you already know you need them: Payment Schedule for WooCommerce Subscriptions.


Configuration on variable subscriptions

If you sell a variable subscription (for example, monthly plan / quarterly plan / annual plan), you will find the same fields inside each variation, in the Variations tab.

Each variation can have its own type and its own date, so you can set up combinations such as:

  • Monthly plan → first day of next month.
  • Annual plan → fixed January 1st.
  • Trial plan → standard trial period.

One thing to keep in mind: on a variable product page, before the customer picks a variation, WooCommerce Subscriptions shows the data of the first variation. The plugin compensates for this: when the customer selects a specific variation, the “First payment: …” line is dynamically updated to that variation’s real date.

Bulk editing of variations

If you have a product with 20 variations, you are not going to edit them one by one. In the Variations tab, in the bulk actions dropdown, the plugin adds a “First payment date” group with the “Set fixed first payment date” action.

You choose it, it asks you for the date in YYYY-MM-DD format, and it applies to every variation: fixed date type, the date you entered, and trial period set to zero. A matter of seconds.

Bulk editing of the expiration date (the last payment) is a premium version feature: see Payment Schedule for WooCommerce Subscriptions.


What your customer sees

Here is one of the most important improvements of the latest versions. Before, a customer would see something like “€29.00 / month with 24 days free trial”, which is a rather confusing way to communicate “you start paying on April 1st”.

Now, when a product has a first payment date configured:

  • On the product page a clear line is shown, such as “First payment: April 1, 2027”, instead of the free trial text.
  • The date is formatted using the date format and language configured in your WordPress.
  • In the dashboard product list, the subscription price is shown along with “with the first payment on April 1, 2027”, so you can see at a glance how each product is configured.
  • In cart and checkout, the customer still sees how many days the subscription is free until the first charge.

Long subscriptions: up to 730 days

WooCommerce Subscriptions limits by default the length of periods expressed in days. Since this plugin translates dates into trial days, that limit would be a problem: a date 10 months away is more than 300 days.

That is why the plugin extends the range of day-based periods up to 730 (two years) in the dashboard. This way you can set a first payment date far into the future with no problem.


For developers: available hooks

In case you want to use them to extend it yourself (if you want more hooks, write to us and we will add them):

  • fpdws_date_first_payment_calculated_options — filter to add your own calculated date rules to the dropdown. (It is exactly the filter the premium add-on uses to inject its dozens of extra options.)
  • fpdws_disable_add_to_cart_validation — return true to disable writing metadata when adding to the cart, if your installation has a particular purchase flow.
  • fpdws_after_simple_subscription_product_options — action to render your own fields after the plugin’s ones on simple subscriptions.
  • fpdws_after_variation_subscription_product_options — the same, for variations.

What the free version does not cover (and how to solve it)

The free version answers one question very well: when is the first charge made? But there are real scenarios that require controlling the whole payment schedule, from start to finish. That is what the premium add-on brings, Payment Schedule for WooCommerce Subscriptions, which is installed alongside the free one and adds its fields on the same screens.

These are the features that are not available in the free version:

1. Expiration date (last payment date)

Just as you set the start date, you can set the end date: fixed or calculated. The plugin calculates for you how many payments fit between both dates according to the product’s period and interval, and adjusts the subscription length automatically.

It is the only clean way to set up the classic case: “the fee runs from January 1st to December 31st, whenever you happen to pay”. → See the premium version

2. Dozens of calculated date options

The free version offers two rules. The premium one dynamically generates the complete list:

  • Any day of this month that has not passed yet (the 12th, the 20th, the 27th…).
  • Any day of next month (from the 1st to the 31st, adjusted to the actual month).
  • “The next Xth”, which resolves itself: if the 10th has not passed yet this month, it will be this month; if it already passed, it will be next month. This is the star option for fixed-day billing.
  • Last day of next month, last day of this year, last day of next year.

And all of them are available both for the start date and for the expiration date. → See all the calculated date options

3. Payment schedule preview

The premium version adds a “Payment schedule” tab on the product page, where you can see before publishing exactly which payments would be made if someone bought right now: how many, on which dates and for what amount. On variable products it shows the breakdown variation by variation.

It is the best tool to spot wrong configurations before a customer spots them. → See the premium version

4. Showing the payment schedule to your customers

With the [payment-schedule] shortcode (optionally [payment-schedule product_id="123"]) you can publish that very same schedule on the product page or on any page. Total transparency for the customer and fewer support requests. → See the premium version

5. Custom messages

WooCommerce Subscriptions generates automatic texts that sometimes sound artificial or downright confusing. The premium version lets you completely replace that text with your own, product by product (and variation by variation), even supporting links. → Customize the WooCommerce Subscriptions messages

6. Prorating the first payment in the sign-up fee

Instead of giving away the days between the purchase and the first payment date, you can charge them proportionally by including them in the sign-up fee. The calculation is made according to the subscription period and the remaining days.

With this, a customer who subscribes on March 20th to a monthly fee starting on April 1st pays 11 proportional days up front, instead of getting them for free. → See the first payment proration

7. Preserving the billing schedule

By default, WooCommerce Subscriptions calculates the next charge from the moment the previous payment was processed. If a payment is two days late, the whole schedule shifts by two days. The preserve schedule option makes the next date be calculated from the expected date, not from the actual one, keeping the charge day stable month after month. → See the premium version

8. Hiding the length in cart and checkout

An option so that the cart and checkout totals show only the recurring amount and the interval, without the “for X months” that in many businesses is unnecessary or confusing. → See the premium version


Frequently asked questions

I cannot see the plugin fields on my product. Save the product first as a Simple subscription or Variable subscription and reload the page. WordPress creates products as “simple” by default, and the fields are only shown on subscription products.

What happens if the date I set has already passed? The plugin ignores it and applies a trial period of 0 days: the customer pays immediately. No error occurs and the purchase is not blocked.

And what if I use a calculated date such as “first day of next month”? You do not have to maintain anything. The date is recalculated on every purchase, so the product stays correct indefinitely. That is why, for calendar-based recurring fees, calculated dates are always a better option than fixed ones.

My variable product shows the wrong date before choosing a variation. That is WooCommerce Subscriptions‘ own behaviour, as it shows the data of the first variation. As soon as the customer selects a variation, the date updates to the correct one.

Does it work with HPOS? Yes, the plugin declares compatibility with WooCommerce High-Performance Order Storage.


Conclusion

If you sell subscriptions with WooCommerce and you need charges to happen on specific dates and not “X days after the purchase”, First Payment Date for WooCommerce Subscriptions covers the essentials for free: fixed date, calculated date, variable products, bulk editing and a clear message for the customer.

And when your business requires controlling the complete schedule —expiration date, dozens of calculation rules, payment preview, your own messages, proration and a stable charge day—, the natural step is Payment Schedule for WooCommerce Subscriptions, which extends the free one without changing anything you already have configured.