What’s newFind any order, customer, product or setting with one admin search. See all features

How-to › Selling special products

How to Offer Upgrade and Downgrade Plans

Sell Basic, Plus and Pro levels and let customers move between them without cancelling. You create a product for each level, group them in a plan, set the proration and test. 11 parts.

Quick links

Where to find it:WP Admin › EasyCart › Products › Subscription Plans

Before you start

What you are building

What a plan is, what you need and what happens when a customer changes level.

How plan changes work

What you need and what a plan really is

What you need. WP EasyCart PRO or Premium, and Stripe, because subscriptions bill through Stripe. Products › Subscription Plans is a PRO screen. If you have not sold a subscription yet, start with How to Sell Subscriptions on WordPress, then come back.

What a plan is. A plan is a ladder, not a price. Every level is its own subscription product with its own price and billing interval. The plan only groups those products so the store knows which ones a customer may move between. It bills nothing. Customers never see the plan name. They see your product names.

What happens on a change. The customer picks another level. Your store tells Stripe to switch the same subscription to the new product. Stripe works out any credit or extra charge, and your store updates the subscription’s product, price and interval. Nobody cancels, so nobody has to start over.

The steps: create a product for each level, group them in a plan, decide who can move down, choose whether Stripe prorates, let customers use the change in My Account, then test.

Set it up

Six steps

Create the levels, group them in a plan, choose who can move down, set proration, open the change to customers and test.

Step 1. Create a product for each level

Basic, Plus and Pro are three subscription products

Go to EasyCart › Products › Products and press Add product. Choose Subscription as the Product type and set the price for one billing period. Repeat for each level. In each one’s Type settings section, fill in the Subscription card, including Subscription Interval. The subscriptions guide walks through each field.

Levels can bill on different intervals, for example a monthly Basic and a yearly Pro. The plan screen flags mixed intervals and reminds you that Stripe prorates when customers switch.

Want monthly and yearly prices for each level, sold from a table on a page? A pricing table makes the products for you and has its own rules for when changes happen. See How to Sell Plans from a Pricing Table. This guide covers a Change plan list of products you make yourself.

Two limits from the product editor. The Subscription Plan list is labelled not compatible with price adjustments or recurring shipping, so keep level products simple. And a product can belong to only one plan.

Step 2. Create the plan

Products › Subscription Plans › Add plan

Go to EasyCart › Products › Subscription Plans and press Add plan. The New subscription plan window asks What are you making?: choose Change plan list. Then give a Plan name; the switch Customers can also move to a lower-priced product is on by default. Name it for yourself, such as Coffee Club. Plan names must be unique. Press Create & add products and the plan opens in its editor.

In the Products in this plan card, search for a subscription product by name and add it. Only products marked as subscriptions appear. Add every level. They are listed in price order, cheapest first, and that is the order customers see. Each row shows the price, the interval and how many subscribers the product has.

If a product already belongs to another plan, adding it asks you to confirm and moves it. You can also pick a plan from the product itself, in the Subscription Plan list on its Subscription card.

The side panel shows Plan health: how many tiers there are to switch between, any product that is inactive in the store, mixed billing intervals, and how many active subscribers the plan has. Fix anything marked as a warning before you go live.

Products › Subscription Plans, the plan list with its Add plan button.
Products › Subscription Plans, the plan list with its Add plan button.

💡 Note: A product can belong to only one plan. Adding it to a second plan moves it, so a product you use in two ladders has to be duplicated.

The plan editor

Details, Products in this plan and the Danger zone

This is the screen you land on after Step 2. The Details card holds the plan name and, under Changing plans, the switch for moving down. The Products in this plan card is your ladder. The Danger zone deletes the plan.

Removing a product from a plan does not touch its existing subscribers. They simply stop seeing the other levels as choices. Deleting a plan never deletes products. The window asks whether to move its products to another plan or detach them, and detaching turns switching off for them. Subscriptions keep running, and you have 15 minutes to undo. Turn into a pricing table makes the list a pricing table, if you later want tiers sold monthly and yearly. A list that was a pricing table shows This plan was a pricing table instead, with Turn back into a pricing table: its tiers, prices and settings come back.

A Change plan list open in its editor: Changing plans, Products in this plan and Turn into a pricing table.
A Change plan list open in its editor: Changing plans, Products in this plan and Turn into a pricing table.

Step 3. Decide who can move down

Changing plans: Customers can also move to a lower-priced product

Customers can always move up to a higher-priced product in the plan. The switch under Changing plans reads Customers can also move to a lower-priced product. The plans list shows it in its Downgrades column as Up or down, or Upgrades only.

On. A customer sees every level in the plan and can go up or down.

Off. A customer sees their current level and the levels priced above it. They can upgrade but not downgrade. Someone who wants a cheaper level has to cancel, or ask you to move them.

Leaving it on is usually right. A customer who can downgrade stays a customer. One who has to cancel to spend less often does not come back. Plan health warns you while the plan holds only one product, because there is nothing to switch to.

Step 4. Choose whether Stripe prorates

Prorate on Upgrade/Downgrade, on each product

Open a level’s product, go to Type settings and find Prorate on Upgrade/Downgrade on the Subscription card.

On. Your store asks Stripe to create prorations. Stripe credits the customer for the unused time on the old level and charges for the new one, and it adds those lines to the subscription’s invoice.

Off. Your store asks Stripe for no prorations. The new price simply applies from the next billing date.

Which product counts. The setting on the product the customer is moving to is the one used. Set it the same on every level unless you want, for example, upgrades to prorate but moves down to Basic not to.

The exact amounts are Stripe’s calculation. If you change the billing interval when you change level, Stripe applies its own rules for the billing date, so check a test change before you promise customers a number.

⚠️ Careful: Prorated amounts are Stripe’s. Run a test change in Stripe’s sandbox and read the invoice before you tell customers what an upgrade will cost.

Change a customer’s plan yourself

Orders › Subscriptions › Change product

Open EasyCart › Orders › Subscriptions, open the subscription and press Change product…. The window offers the other products in the same plan, cheapest first. A subscription whose product has no plan is offered any active subscription product, up to 50.

Choose a product and your store asks Stripe for a preview. The window shows the lines Stripe would create, then Charged now or Credited, and the next renewal date. The button reads Change and charge with the amount when there is a charge, and Change product otherwise. If the product has no Stripe price yet, the window says Stripe cannot preview it, and the change still applies when you save.

This works only on a Stripe subscription that has not ended. The same proration rule applies: the setting on the product you are moving to. When it succeeds you see Switched to and the new product name. Use this to move a customer down when the plan has moving down off. If the customer has a change waiting, changing the product here cancels it.

Step 6. Test it with a real change

Stripe test mode, one account, two levels

Switch Stripe to sandbox in Settings › Payment and add the webhook in your Stripe test dashboard. Then, in a private window that is not logged in as an admin:

1. Sign up for your cheapest level with Stripe’s test card 4242 4242 4242 4242.
2. Open My Account › Subscriptions › VIEW DETAILS › Change Your Plan. You should see your other levels.
3. Choose a higher level and press Review change. Read the amount and the date, then press Confirm change. The details page should show the new product and price.
4. In your admin, open Orders › Subscriptions. The subscription should show the new product and still read Active.
5. Open the subscription in your Stripe dashboard and look at the upcoming invoice for the proration lines.
6. Turn Customers can also move to a lower-priced product off, open Change Your Plan again as a customer on the higher level, and check that lower levels are gone from the list.

When it all works, turn test mode off.

Good to know

Access and problems

What a change does to member content, and the usual reasons a customer cannot change level.

If your levels unlock content

Access follows the subscription’s current product

A plan change replaces the product on the subscription. Anything you locked to the old product no longer recognises the customer. A page locked to Basic only, and a member on Pro, is a locked-out member.

Fix it when you protect the content. In the WP EasyCart Limit Access box, under Who can see it, add every level to Customers who bought. A customer who has any one of them can open the page. In a membership shortcode, list every product ID with commas and no spaces, such as productid="12,15,18". To give the top level more than the others, lock the extra pages to the higher levels only. The membership guide covers both methods.

The Membership URL comes from the product, so a customer who moves level follows the link on the new product.

⚠️ Careful: If levels unlock content, lock that content to every level that should see it. A customer who upgrades stops matching the product they first bought.

If it does not work

The usual reasons a customer cannot change level

There is no Change Your Plan button. Check, in order: Let shoppers manage their subscriptions is on, the subscription is a Stripe subscription, its status is Active or a trial, and its product is in a plan. With moving down off, a customer on the top level has nothing higher to choose, so the panel lists only their own level.

A level is missing from the list. The product is not in the plan, is switched off, or moving down is off and the level costs less than the current one.

Your card was declined, so your plan did not change. The payment for an upgrade did not go through. The customer updates their payment method and tries again.

The customer sees a subscription update error. Stripe refused the change or the product could not be prepared in Stripe. Check Settings › Log entries for the Stripe response, and confirm Stripe is connected.

No proration lines appear in Stripe. The product the customer moved to has Prorate on Upgrade/Downgrade switched off.

A product will not add to the plan. It is not marked as a subscription. Open it and set its Product type to Subscription.

For anything else, contact support through your account.

Keep going

Related panels

Subscription Plans

Subscription Plans in full.

Subscriptions

Change, pause or cancel a subscription in the admin.

Type Settings

Every option in the Type settings section, including Prorate.

Accounts

Letting customers manage their subscriptions.

Ready to run your store on WP EasyCart?

Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.

The WP EasyCart admin: orders and offers
Updated on October 19, 2026