1. Documentation
  2. Plugins
  3. WooCommerce
  4. Extensions
  5. WooCommerce Subscriptions

Prepaid for WooCommerce Subscriptions

Installation ↑ Back to top

  1. Download the .zip file from your WooCommerce account.
  2. Go to: WordPress Admin > Plugins > Add New and Upload Plugin with the file you downloaded with Choose File.
  3. Install Now and Activate the extension.

More information at: Install and Activate Plugins/Extensions.

Setup and Configuration ↑ Back to top

To use the Prepaid for WooCommerce Subscriptions extension, you will need to have WooCommerce Subscriptions installed. 

Prepaid for WooCommerce Subscriptions extends default subscription products by providing the option to add prepaid plans for regular subscriptions. You can add an unlimited amount of prepaid plans for each subscription. For example, if you have a subscription product with a 1-month recurring payment for $10, the extension allows you to create several prepaid plans for that product. For instance, a prepaid plan can be created for 12 months subscription length and another one for 18 months.

How to add a prepaid plan for a subscription product ↑ Back to top

After plugin activation, go to any subscription product page, and under the General tab, you’ll find a new button to add prepaid plans (as displayed below) :

Click on Add prepaid plan button to expand the prepaid section and add a prepaid plan for this particular subscription.

Here the following fields can be set for the prepaid plan: 

Prepaid for – the amount of subscription pieces you want to offer for the prepaid plan For example, for a monthly subscription, you can offer a prepaid plan for 12 pieces for one year with monthly delivery. 

Pricing type – two types are offered: flat prices and percentage discount. A flat price allows you to enter any price for the subscription period. Percentage discount calculates the regular price of the subscription length (based on the price of the simple subscription) and applies the chosen discount to that price. 

Prepaid price – if flat prices is selected in the pricing type field, you can specify the cost for the entire prepaid period (12 months in our example). The plugin will automatically calculate any discount; it determines the regular price for that amount of subscription pieces and compares it to the price you entered. 

Prepaid sale price – if flat prices is selected in the pricing type field, you can also set a sale price to offer limited\unlimited discounts on the prepaid plan. 

Plan name – give the title to this subscription type to explain what people are paying for. Later you can use this variable to build explanatory pricing strings for product and cart/checkout pages.

Discount (%) – if percentage discount is selected in the pricing type field,  you can specify the discount to apply to the regular subscription price of that length. For instance, if a monthly subscription costs $50, the price for 12 pieces would be $50*12 = 600, and with 10% off, it would be $540. 

Default option – choose what plan will be preselected on the frontend (product page and catalog). In case you don’t pick up default and a regular subscription is available – this will be the default one. When you use Disallow regular subscription option and regular subscription isn’t available – the first prepaid plan will be preselected as default. 

You can create as many plans as you wish for each of your subscription products. Later, you can easily edit or remove plans. Please note that by removing the prepaid plan, it will no longer be available for purchase. However, for customers who have already registered and prepaid their subscriptions, they will still receive their products. 

Create orders on a different schedule to the billing period ↑ Back to top

There’re two methods available to you for offering prepaid plans:

  • Offer prepaid options in addition to regular subscriptions. E.g., pay for one or two years and get a monthly delivery or pay every month as usual. 
  • Offer ONLY prepaid options and ship on a different schedule. E.g., pay upfront for three or six months and get weekly shipping without the option to pay every week.

In case you want to offer delivery on a particular schedule different from the billing cycle – you should use the second method. 

You can also offer both ways to purchase prepaid options because this is configurable at the product level. So some products may be with additional prepaid options, some can be ONLY prepaid available. 

To set up different shipping schedules to billing cycle, go to the product page and set up prepaid plans the way it’s described above.

Then go to the Prepaid Options tab and enable the option named Disallow regular subscription:

After that, you can see that the default subscription option doesn’t appear on the frontend anymore.

But still, when you use Disallow regular subscription, orders (and deliveries) will renew on a regular schedule which is indicated in the subscription:

And don’t forget to select what prepaid plan will be the default one to be preselected on the product page and catalog.

Layouts and frontend customization 

Once you have created prepaid plans for each desired subscription product, you can let your users know about the benefits of prepaid options. 

By navigating to WooCommerce > Settings > Prepaid Subscriptions, you can choose a suitable design for the product page and configure information strings templates. 

Default layout – you have two designs to choose from; this will be used as the default template for every newly created subscription product page with prepaid plans. This will not impact regular subscription pages without prepaid options. 

Layout #1 – uses radio boxes to display regular and prepaid plans.

Layout #2 – this template displays two options to customers – regular subscription or prepaid.  If ‘Prepaid plans’ is selected, a dropdown list appears where they can select one of the prepaid plans.

 Layout #2 offers an additional field – Prepaid option name.

Here you can enter a custom title for all prepaid plans which will be displayed as the second option in the dropdown list. 

You can also change the layout for each subscription product separately by going to the Prepaid options tab in the Product data area on the Edit product page

Next, choose from one of the options: Default (as selected in general settings), Layout #1, Layout #2. 

Title for additional prepaid options – is an additional field under WooCommerce > Settings > Prepaid Subscriptions that displays on the product page to separate regular subscription information from prepaid plans. It is used in both layouts but only for subscription products with additional prepaid plans (where regular subscription available as well). 

Title for prepaid options only – this text template is used for products where Disallow regular subscription is enabled. You can use it to explain prepaid plans terms or give tips on how to select the best plan.


Three templates help explain prepaid conditions to your users and guide them to their purchase.

You can use the following variables to make it more suitable for every prepaid plan: 

{plan_price} – price settled in “prepaid price” or calculated price w/ discount (e.g. $100) 

{plan_title} – the name of a prepaid plan specified in the “plan name” field on the product page 

{plan_discount} – discount which is registered as the prepaid plan discount in the “discount (%)” field, or is calculated automatically from the difference between the regular price of subscription multiplied by the number of prepaid pieces and prepaid plan price

{trial_period} – trial period length (number + days/weeks/months) settled in subscription details (e.g. 7 days)

{signup_fee} – cost settled as a signup fee for a subscription (e.g. $10)

{subscription_period} – renewal period settled on subscription product level (e.g. year, month, week, day)

{subscription_length} – period settled in “expire after” field in the subscription product (e.g. 12 months) 

We settled default templates for the Pricing string template and Pricing cart string template, but we left Plans description empty because additional subscription conditions (like signup fee or trial) may be blank.

Plans description – is the area provided where you can explain additional information regarding prepaid subscription conditions. You can also add information about signup fees, a trial period, or subscription length. This area is common to all prepaid plans assigned to one subscription product (that’s why you cannot use variables related to specific prepaid plans). This area may also be left blank.

Pricing string template – is displayed on the product page next to the radio box or in the plan dropdown. Let your customers see what they are paying for – prepaid length, cost, and discount. Default templates are provided however you can customize the pricing string according to your product’s needs. This is a common template in both layouts.  

Note: markup used in this template is not supported in Layout #2. 

Pricing cart string template – is displayed on the cart and checkout pages and shares subscription condition details in the cart.  Default templates are provided however you can customize the pricing cart string template. Keep details short and concise. 

Shipping ↑ Back to top

After configuring prepaid plans and templates for the frontend, the plugin provides you with three different options to apply for shipping: 

Pay by default – when this option is chosen, customers pay the same shipping price as a regular subscription. So, whatever customers pay for a regular subscription, they would pay the same amount as usual and at the same term for a prepaid subscription.

For instance, if you have a regular subscription cost of $50/month with $10 cost for shipping, and customers buy a prepaid plan of $500/year, they would still pay $10 every month for shipment. The first payment would be $500+10 = $510, and for the next 11 months, they pay $0 for subscription and  $10 for shipment. 

Pay for each subscription piece upfront – works differently from the first option; your regular shipping cost (for a regular subscription) is multiplied by the number of subscription pieces in the prepaid plan and charges the customer once for the entire prepaid period at checkout.

Using the same example as above: 

Regular subscription costs $50/month, and shipping costs $10 every time. The prepaid plan for the year costs $500/year and consists of 12 pieces of a regular subscription, plus $10 for every delivery. So, your customers will see $500/year for a subscription and $120/year ($10*12) for shipping on their checkout. 

Pay custom price – this option allows you to specify the flat-rate cost for each prepaid plan separately charging the customer once they sign up.  If this option is selected, an additional field, Shipping cost appears when adding prepaid plans: 

Here you can specify the price for delivery that will be charged upfront for the whole subscription period.

To use this option,  a Flat rate shipping method will need to be enabled in Shipping settings

Please note: if a prepaid plan product with a custom shipping price is in the cart with any other product, this shipping price will override all other shipping options.

Email notifications ↑ Back to top

Prepaid for WooCommerce Subscription also enriches standard subscription emails (for both admins and customers) with prepaid subscription information if you have this option enabled: 

Emails contain information about customers’ subscriptions, number of prepaid pieces and the next renewal

We also include an additional notice at the end of the subscription term informing the customer their subscription will be auto-renewed unless they cancel: 

Subscription management 

Prepaid for WooCommerce Subscription also inserts additional columns extending the subscription\orders pages.

Extended Subscription page (table): 

Prepaid sequence displays how many prepaid pieces are left and how many have been delivered. Other relevant information about prepaid plans is provided with extended Item, extended Total and Next Payment columns. 

On the Subscription page, you can also find the new Prepaid sequence info box (as displayed below): 

Here, you can visually see prepaid subscription status, which pieces have been delivered, when the trial ends, when the next shipment is, and the payment renewal date. 

My account (for customers)

Your clients will find adjustments to the subscription page in their accounts as well. They can see the next shipment and next payment date (which will be different in most cases): 

And correct subscription totals with all needed information on future payments: 

Use Cases ↑ Back to top

Here are some use cases of how you can use (and how it works) prepaid subscriptions to solve your problems. 

Selling prepaid plan for a regular subscription. 

In the following example, you can see the most commonly used setup: regular monthly subscription and two prepaid plans for monthly delivery for one and two years: 

The setup would look like this on the frontend: 

When customers choose to sign up for the prepaid option for one year, they’ll find the following in their cart: 

It is important to customize the Pricing cart string template so your clients have a clear understanding of what they’re paying for. 

In the following example, you can see that the customer pays only $10 now (signup fee) and has 1 day of a free trial. After the trial, the customer will be charged $500 for a one year subscription and receive delivery each of those 12 months, plus pay $20 for shipping during the renewal process. 

The checkout page is not much different from the cart: 

At the same time, the store owner will find this subscription with additional information on prepaid conditions in the WooCommerce > Subscriptions section:  

Along with the related order with $10 payment as the signup fee: 

After the trial ends, the Prepaid Sequence section will display as below: 

Plus, a new order will be fulfilled, where prepaid plan price and shipping cost will be taken into account:

When the time comes (in a month in our example), the next subscription piece will proceed: 

And you will find the next order with $0 payment (because they paid upfront for subscription and shipping): 

Selling few prepaid subscriptions in one order: 

If the subscriptions have the same renewal or shipping frequency, it’s not much different from selling solo subscriptions. The only difference will be in the cart total: 

There would be two separate recurring totals (if they are for different lengths), but only one charge for shipping because they have the same delivery frequency and could be delivered in one piece.

Selling prepaid subscriptions together with the regular product: 

If you have the Mixed Checkout option enabled (in WooCommerce > Settings> Subscriptions settings), then your customers will be able to buy different types of products in one cart: 

They will pay the price for regular products + instant payments for a subscription (prepaid plan cost + signup fee) + shipping cost. 

Selling prepaid subscription together with the regular subscription: 

The only difference here may be based on shipping cost. If the prepaid plan being purchased has the custom price shipping option applied, the shipping cost for a regular subscription (controlled by shipping method) would be applied as well. The customer will see the following: 

You can see that the client will be charged twice for shipping. If you plan to sell mixed products and want to avoid this, do not use the custom price shipping option on the prepaid subscription plan. 

You can also choose to rely on default rules set by the WooCommerce Subscriptions plugin when selling mixed products in one cart. The Prepaid for WooCommerce Subscriptions plugin doesn’t change how the WooCommerce Subscriptions plugin operates if you have the Mixed Checkout option enabled. 


Before installing Prepaid for WooCommerce Subscriptions on the production site, we strongly recommend you test it on the dev/staging environment. 

You will need to ‘Enable Test Mode’ within the payment gateway you use. Stripe, for example: 

Next, go to your payment gateway documentation/your account on their website to find test keys and test cards. If you use Stripe, you can take a look here – https://stripe.com/docs/testing#charges-api

Then you’re free to go and create prepaid plans for your regular subscriptions as described above. Be sure to test at least one case for different subscription setups (with or without trial, signup fee, expire after, different lengths, and so on). 

To avoid waiting for subscriptions that proceed for a long time, you can use the Schedule tool (you can find it on each subscription page): 

To test if the trial ends well and your clients will be appropriately charged, you can reschedule the trial to end in the present time and then reschedule “next shipment” to one hour after the trial ends (this can be set under WooCommerce > Subscriptions). After an hour, you can check if everything went smoothly, if orders have been created, and the test card has been charged.

If you don’t want to wait for processing of the next shipment, you can check for all actions which should take place in the future and listed in the Scheduled Actions tool (Tools > Scheduled Actions > Pending):

Then, to test the subscription id hook, (it should be named “woocommerce_scheduled_subscription_payment”) and click Run to take this action immediately:

After, you can go to the subscription and order pages to see if everything worked as expected. 


1. Prepaid for WooCommerce Subscriptions works only with simple subscription products (no variable subscriptions yet).

2. There is no option to switch between regular and prepaid subscriptions level. You can cancel one subscription and pay for another subscription type. 

3. Prepaid plans don’t work with the prorated payments option. You still can use synchronizing renewals, but only when prorated first renewal is set to never. 

4. If you use custom pricing for shipping and clients buy two subscription plans with different shipping costs, only the only charge for the first one will apply in the cart. 

WooCommerce - the most customizable eCommerce platform for building your online business.

  • 30 day money back guarantee
  • Support teams across the world
  • Safe & Secure online payment