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.
💡 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.
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.
Step 5. Let customers change plan in My Account
Settings › Accounts, then what the customer sees
Under Settings › Accounts, in the Account page card, switch on Let shoppers manage their subscriptions. That adds Subscriptions to My Account.
What the customer does. They open My Account, then Subscriptions, and press VIEW DETAILS on a subscription. In the Manage subscription card they press Change Your Plan. A panel lists each level they may move to, with its price and period and when it would start, such as Starts now, and marks the one they are on as Current plan. They choose one and press Review change.
They see the cost before they confirm. The review says what the change costs and when it starts, worked out by Stripe: for example that the plan changes now and they pay an amount today for the rest of this billing period, that the difference is added to or taken off their next payment, or, for a level on another billing schedule, that a new billing period starts today. They press Confirm change. A change that charges now is paid first, and the plan changes once the payment goes through; a card that needs 3-D Secure asks for it, and a declined card leaves the plan as it was. During a free trial the change happens now and the trial keeps its end date.
A change that waits. With a pricing table you can make some changes wait for the renewal date. The subscription then says which plan it changes to and when, and the customer can press Cancel this change until then. In your admin, the subscription shows the waiting change too.
Who sees the button. Only customers whose Stripe subscription is Active or in a trial. A subscription that is past due, paused or ended, and any PayPal subscription, cannot be changed from My Account. The button also needs something to change: the product belongs to a plan, quantity changes are allowed ( One subscription per purchase is switched off in Settings › Products, or the product is priced per seat from a pricing table ), or the product sells usage levels, which add their own button, such as Change subscribers.
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 in full.
Change, pause or cancel a subscription in the admin.
Every option in the Type settings section, including Prorate.
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.



