How Do Variable Subscription Products Work in WooCommerce?

How It Works

Selecting "Variable subscription" as the product type adds the standard WooCommerce variations interface, built from attributes (like "Billing Period" with values "Monthly" and "Annual"). Each generated variation then gets its own Subscription tab, where the price, interval, sign-up fee, and trial can all differ from the other variations on the same product.

This is the mechanism behind almost every SaaS-style "choose your plan" pricing table built on WooCommerce — one product, several billing options, each fully independent in price and terms.

Setting It Up

  1. Create the attribute that defines the options (e.g. "Billing Period" with "Monthly" and "Annual" as values), and mark it as used for variations.
  2. Generate variations from that attribute under the Variations tab.
  3. Set each variation's subscription details independently — price, interval, sign-up fee, and trial length all need configuring per variation; none of it is inherited automatically from the parent product.
  4. Confirm the default variation selected on page load matches what you actually want customers to see first, since WooCommerce picks one by default unless explicitly told otherwise.

Common Mistakes

  • Leaving a variation's subscription fields at their defaults after generating variations — each one needs its price and interval actively set, they don't inherit from a template.
  • Mixing subscription and non-subscription variations on the same product, which isn't supported and produces confusing checkout behavior.
  • Forgetting that switching between variations is a different feature from switching between separate subscription products — a customer changing from Monthly to Annual on the same product uses the variation-switching flow, with its own proration rules.
  • Not testing every variation independently at checkout — a bug in one billing option's setup won't necessarily show up when testing a different one.

See custom WooCommerce development for a pricing-tier setup that needs more than what the built-in variations support, such as usage-based add-ons alongside a base plan.

Available for new projects

NEXT STEP

Rather have it fixed than keep reading?

Based in Dhaka, Bangladesh — serving clients worldwide. Tell me what's happening and you'll have a reply within one working day.

  • Reply within one working day
  • Fixed quote before work starts
  • UK, EU and US hours covered