*How-to › Selling special products*

# How to Sell Subscriptions on WordPress

Bill customers on a schedule with Stripe: a monthly box, a service plan, a members club. You connect Stripe, create the product, decide what customers can manage and test. 11 parts.

Quick links

- [How subscriptions work](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#how-it-works)
- [Step 1. Connect Stripe and add the webhook](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#stripe)
- [Step 2. Create the subscription product](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#product)
- [Step 3 (optional). Sell levels customers can move between](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#plans)
- [Step 4. Decide what customers can manage](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#account)
- [Step 5. Choose the checkout style](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#checkout-style)
- [Step 6. Review the subscription emails](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#emails)
- [Step 7. Test it with a real sign-up](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#test)
- [Managing subscriptions after the sale](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#manage)
- [When a payment fails](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#failed)
- [If it does not work](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/#troubleshooting)

**Where to find it:** WP Admin › EasyCart › Products › Add product

*Before you start*

## What you are building

What you need, how a customer signs up and what you can control.

### How subscriptions work

What you need and how a customer signs up

**What you need.** WP EasyCart PRO or Premium, and Stripe. Subscriptions bill through Stripe, which charges the customer on your schedule. If Stripe is not connected, shoppers see a message that the subscription cannot be bought online right now.

**How a customer signs up.** A subscription is bought on its own checkout page, not in the cart, and the cart refuses one, so it can never be bought as a one-time purchase. The customer presses **Sign Up Now** on the product and starts with their email; the rest of the page waits, blurred, until it is settled. An email that already has an account asks for its password and signs them in. A new email asks for a password for the new account, or, with the setting in step 5, goes straight on to the payment. Then they enter their card. Nothing else can be in the same order, so subscriptions and other products are bought separately.

**The subscription checkout.** With WP EasyCart PRO on Stripe, the card goes into the same Stripe payment form as your regular checkout, in your Stripe theme and layout, with the same progress card while the payment goes through. The page says when a free trial ends and what the first payment will be after any coupon, and what the subscription renews at when a coupon covers only the first payment. A customer who already has this subscription sees it above the form, with a link to manage it in their account, instead of buying a second one by mistake.

**What you control.** How often to bill, how long it lasts, a free trial, a sign-up fee, whether shipping repeats, whether customers can move between levels and which emails go out.

The steps: connect Stripe, create the product, set up levels if you want them, decide what customers can manage, choose the checkout style, review the emails, then test.

> **💡 Note:** Older PayPal subscriptions still appear in Orders › Subscriptions, but new subscriptions are sold through Stripe only. A PayPal subscription cancelled in your admin must also be cancelled at PayPal.

*Set it up*

## Seven steps

Connect Stripe, create the product, add levels, choose what customers manage, choose the checkout style, review the emails and test.

### Step 1. Connect Stripe and add the webhook

Settings › Payments, then the Stripe dashboard

Open **EasyCart › Settings › Payments** and connect Stripe. Its steps include **Subscriptions**, which reads **Ready** once subscription products bill through your Stripe account.

Then add the webhook. Renewals, failed payments and cancellations all reach your store through it. Without it, your store never learns about them. In your Stripe dashboard add an endpoint at `https://yourdomain.com/?wpeasycarthook=stripe-webhook` and enable `invoice.payment_succeeded`, `invoice.payment_failed`, `customer.subscription.updated`, `customer.subscription.deleted` and `customer.subscription.trial_will_end`. Add `invoice.upcoming` if you want the renewal email. Stripe’s settings ( Settings on its row in Settings › Payments ) have a **Notifications from Stripe** group: **Webhook address** with a **Copy** button, and a warning until the first notification arrives.

Paste the webhook’s signing secret into **Signing secret** in the same group, and the one from a webhook you add in Stripe’s test mode into **Test mode signing secret**. Once a secret is saved, a notification without Stripe’s signature is refused.

To email subscribers a few days before Stripe charges each renewal, turn on **Email subscribers before each renewal** in the **Subscriptions** group of Stripe’s settings. It needs the webhook.

### Step 2. Create the subscription product

A product of type Subscription

Go to **EasyCart › Products › Products** and press **Add product**. On **Add a product**, say what you are selling, such as a **Subscription box** or **Membership content**, and answer how it bills: **Every month** or **Every year**. Enter the name and the price for each billing period, then press **Create and open the full editor**. Open the section named for the type, **Subscription settings**, and check the **Subscription** card:

**Subscription Interval**: how often to bill, in days, weeks, months or years.
**Enable Billing Duration?**: *Bill Customer Forever*, or *Set Max Number of Payments* for a fixed term such as a 12 month plan.
**Trial Days**: days before the first charge.
**Initial Fee**: a one-time sign-up fee, charged with the first payment.
**How to Handle Shipping Costs**: charge shipping once, or every period.
**How to Handle Recurring Email Receipts**: email a receipt only for the first payment, or for every payment.
**Allow Multiple Subscriptions**: whether one customer can hold this product more than once at the same time.
**Prorate on Upgrade/Downgrade**: whether Stripe prorates when a customer changes level.
**Membership URL**: the members page, if this subscription unlocks content.

Press **Save**. The product page now shows a **Sign Up Now** button.

![Subscription settings › Subscription, on a subscription product.](https://docs.wpeasycart.com/wp-content/uploads/2026/11/how-to-sell-membership-content-on-wordpress-subscription-section-607.jpg)

### Step 3 (optional). Sell levels customers can move between

Products › Subscription Plans

A plan groups subscription products into levels, such as Basic, Plus and Pro, so a customer can upgrade or downgrade. It is only a grouping. It does not bill anything. A single subscription needs no plan.

Go to **EasyCart › Products › Subscription Plans** and press **Add plan**. **What are you making?** offers two kinds:

**Pricing table**: up to four tiers sold monthly and yearly from a table on any page. WP EasyCart makes the products for you. See [How to Sell Plans from a Pricing Table](https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-plans-from-a-pricing-table/).
**Change plan list**: subscription products you already have. Give it a name, which only you see, and add your subscription products with the search box. Customers can always move to a higher-priced product; **Customers can also move to a lower-priced product** lets them move down too. A product can belong to only one plan, and adding it here moves it out of any other.

You can also pick the plan from the product itself, in the Subscription Plan list. A plan does not work with price adjustments or with repeating shipping.

![New subscription plan: a pricing table or a Change plan list.](https://docs.wpeasycart.com/wp-content/uploads/2026/10/how-to-sell-subscriptions-on-wordpress-plans-604.jpg)

### Step 4. Decide what customers can manage

Settings › Accounts and Settings › Products

Under **Settings › Accounts**, in the My Account part, switch on **Customers manage their subscriptions and saved cards**. It adds a Subscriptions item to My Account, where a customer can update their card, change plan and cancel, and a **Payment methods** item, where they see every saved card and what it pays for, add a card for the subscriptions they choose, pick their default and remove cards that are unused or expired. See [How to Let Subscribers Update Their Card](https://docs.wpeasycart.com/docs/how-to-guides/how-to-let-subscribers-update-their-card/). Once some subscriptions have ended, My Account lists them behind an Active / Canceled switch, ten a page.

**One card per subscription.** Each subscription in My Account shows the card it bills, with its expiry date, and its past payments ten at a time, newest first, with **Load more** and a link to every order. A customer with more than one subscription who enters a new card chooses where it goes under **Use this card for**: **This subscription only**, **This subscription and others I choose** or **All my subscriptions**. Nothing else moves to the new card unless they choose it.

**What a customer can do.** Update the card on a subscription that is active, in a trial, past due or paused. Cancel a subscription that is active, in a trial, past due or paused. A customer’s cancellation takes effect at once in Stripe. Change plan or quantity on an active or trialing subscription, when the plan offers other levels. Only you can pause a subscription, or cancel it at the end of the period or on a date you choose. A paused subscription, or one set to end with its period, stays that way when Stripe sends its next update, so a paused member’s content stays closed.

Under **Settings › Products**, After Add to cart, **One subscription per purchase** is on by default. It removes the quantity box from subscription products. Turn it off to let customers buy or change a quantity.

If your subscription needs a shipping address, turn on **Charge shipping on subscriptions** under Settings › Shipping, At checkout. It is off by default, and the subscription checkout collects no address without it.

![Settings › Accounts › My Account, with Customers manage their subscriptions and saved cards on.](https://docs.wpeasycart.com/wp-content/uploads/2026/11/how-to-sell-subscriptions-on-wordpress-account-607.jpg)

> **⚠️ Careful:** A customer who cancels from My Account is cancelled immediately, with no grace period to the end of what they paid for. Tell them plainly, or ask them to contact you if you would rather end it at the period’s end.

### Step 5. Choose the checkout style

Settings › Accounts and Settings › Checkout

Two settings shape the subscription page.

**When do new customers choose a password?**, on **Settings › Accounts**: pick **After paying** and a new email goes straight to the address and payment, with **You’ll choose a password for your account after checkout.** The account is made with that email when they pay. The page they land on, the order confirmation, or the subscription in My Account for a free trial, shows **Set a password for your account** with **Save password**. Anyone who skips it uses Forgot your password later. The same choice covers other purchases that need an account: downloads, members-only pages and stores with guest checkout off.

**Short subscription checkout**, under **Subscriptions at checkout** on **Settings › Checkout** ( off until you turn it on ): for a subscription that ships nothing, the page asks only for the name, the country, the state or province where the country has a list and the postcode where it uses one, with the payment on the same screen. The totals follow as they are typed. A subscription that ships keeps the full address. While a tax service such as TaxJar or TaxCloud works out your tax from the street address, the short form is not used: the setting says so under the switch with **Open Taxes**, and only you, signed in as a store manager, see a note on the subscription page.

With both, a new subscriber types an email, a name, a country and a postcode, then pays. That is the shortest sign-up WP EasyCart offers.

The same part of Settings › Checkout has **A separate yes to renewals**: a box the shopper ticks to agree that the plan renews until they cancel, kept with the order. See [Checkout settings](https://docs.wpeasycart.com/docs/administrative-console-guide/checkout-settings/).

![The subscription page with both on: the email with You’ll choose a password for your account after checkout, then only name, country and zip code, the card and PLACE ORDER AND PAY.](https://docs.wpeasycart.com/wp-content/uploads/2026/10/how-to-sell-subscriptions-on-wordpress-checkout-style-605.jpg)

![Subscriptions at checkout in Settings › Checkout: Short subscription checkout and A separate yes to renewals.](https://docs.wpeasycart.com/wp-content/uploads/2026/11/how-to-sell-subscriptions-on-wordpress-checkout-style-607.jpg)

### Step 6. Review the subscription emails

Settings › Email: Subscription reminders and Subscription emails

**Subscription reminders** are in the free plugin and on by default, for every Stripe subscription. Each has the date, the price and a link to cancel:
**Remind subscribers before a yearly renewal**: an email **Days before the renewal** ( 30 by default, 5 to 60 ) before a subscription billed yearly or less often renews.
**Remind subscribers before a free trial ends**: an email **Days before the trial ends** ( 7 by default, at least 7 ) before a trial turns into a paid subscription. Shorter trials get Stripe’s notice 3 days before.
The card shows when the reminders last ran and what they sent, has **Send test** for each, and **Check now** sends the reminders that are due without waiting for the daily check. Nothing is sent twice.

**Subscription emails**, a PRO card, goes out on Stripe’s events:
**Trial started** when the customer signs up for a trial.
**Trial ending** before a trial turns into a paid subscription.
**Renewal coming up** before each renewal. It needs Email subscribers before each renewal from step 1.
**Payment failed** when Stripe cannot take a payment.
**Subscription ended** when a subscription finishes or is cancelled.

That card does not switch them on or off. Its buttons send you a test of each, to the address in **Send test emails to** or, if empty, to your WordPress address. The Payment failed test is built from your latest order, so place a test order first. The wording of the confirmation is under Receipt wording on the same page.

![Settings › Email › Subscription reminders, with a test for each and Check now.](https://docs.wpeasycart.com/wp-content/uploads/2026/10/email-settings-subscription-reminders-604.jpg)

### Step 7. Test it with a real sign-up

Stripe test mode and a second browser

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

**1.** Open the product and press Sign Up Now.
**2.** Enter an email that has no account yet, then a password or, with the password after paying on, nothing. Pay with Stripe’s test card 4242 4242 4242 4242, any future date and any code. With the password after paying on, set it in the Set a password for your account box on the next page.
**3.** Open My Account, then Subscriptions. The new subscription should be there, with your update and cancel options. With trial days it reads Trial, with when the trial ends and the first payment.
**4.** In your admin, open Orders › Subscriptions. The subscription should be there with its next renewal.
**5.** To test a failed renewal, use Stripe’s test card 4000 0000 0000 0341. It saves, then declines when it renews. The subscription should turn to Payment failed and the Payment failed email should go out.

Stripe’s test clocks in your Stripe dashboard let you jump forward in time to see renewals without waiting. When everything works, turn test mode off.

*Keep it running*

## After the sale

Managing subscriptions, failed payments and the usual problems.

### Managing subscriptions after the sale

Orders › Subscriptions

Every subscription is listed in **EasyCart › Orders › Subscriptions**, with its customer, product, status, amount and next renewal. The tiles show your monthly recurring revenue, how many are active or in a trial, how many have payment trouble and how many cancelled in the last 30 days.

Open a subscription to change its product, pause it, cancel it, resume one set to cancel, or view it in Stripe. When you cancel, choose to end it now, at the end of the current period or on a date, and optionally refund the last payment. Statuses are Active, Trialing, Past due, Payment failed, Unpaid, Incomplete, Expired, Paused, Canceling and Canceled.

The **Reports** screen has a Subscriptions tab ( PRO ) with monthly recurring revenue, new and cancelled subscriptions, churn and a table by plan. Pricing tables add how many pay yearly and a table by tier and billing period.

![Orders › Subscriptions, with the revenue and status tiles.](https://docs.wpeasycart.com/wp-content/uploads/2026/10/how-to-sell-subscriptions-on-wordpress-manage-604.jpg)

### When a payment fails

What Stripe and your store do

Stripe retries failed payments for you. Set how many times and how far apart in your Stripe billing settings, because your store has no retry setting of its own.

When a payment fails, your store marks the subscription Payment failed, records the failed order and sends the Payment failed email. If the customer updates their card, or a retry works, Stripe collects the payment and your store returns the subscription to Active. If Stripe gives up and cancels, the Subscription ended email goes out.

### If it does not work

The usual reasons a subscription cannot be bought or drifts out of date

**The customer sees a message that the subscription cannot be bought.** Stripe is not connected, or your card gateway is not Stripe. Check Settings › Payments.

**Statuses do not change.** Renewals, failures and cancellations all arrive by webhook. Check that Stripe lists a recent successful delivery to your store address.

**A coupon does not apply.** Codes from the Offers screen discount subscriptions only if you turned on the option to discount subscription products. Choose whether it applies to the first payment, a number of months or every payment.

**Tax stops checkout.** If an automated tax service cannot work out a rate, the subscription checkout stops. Check your tax settings.

**The page still asks for the full address.** The short subscription checkout is off, the subscription ships (Charge shipping on subscriptions is on and the product ships), or a tax service works out your tax from the street address. Signed in as a store manager, the subscription page tells you which.

**Too many tries. Please wait a few minutes and try again.** The email box limits how often an email can be checked. Wait, then try again.

**Changed your card gateway.** Switching away from Stripe stops new sign-ups and stops customers managing existing Stripe subscriptions from their account.

*Keep going*

## Related panels

- [Type Settings](https://docs.wpeasycart.com/docs/administrative-console-guide/product-type-behavior/): Every option in the Type settings section.
- [Subscriptions](https://docs.wpeasycart.com/docs/administrative-console-guide/subscriptions-2/): Every panel and action in Orders › Subscriptions.
- [Subscription Plans](https://docs.wpeasycart.com/docs/administrative-console-guide/subscription-plans/): Subscription Plans in full.
- [Payments](https://docs.wpeasycart.com/docs/administrative-console-guide/payments-setup/): Connecting Stripe and the other gateways.
- [Checkout](https://docs.wpeasycart.com/docs/administrative-console-guide/checkout-settings/): Every checkout setting, including the subscription ones and the separate yes to renewals.
- [What Customers See in My Account](https://docs.wpeasycart.com/docs/how-to-guides/what-customers-see-in-my-account/): What subscribers see in My Account.

## 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.

[Start your free trial](https://www.wpeasycart.com/wp-easycart-professional-14-no-risk-trial/) · [See what is included](https://www.wpeasycart.com/wordpress-shopping-cart-pricing/)

![The WP EasyCart admin: orders and offers](https://docs.wpeasycart.com/wp-content/uploads/2026/09/cta-wpeasycart-pro-v2.jpg)

---

Source: https://docs.wpeasycart.com/docs/how-to-guides/how-to-sell-subscriptions-on-wordpress/ ( updated 2026-11-06 )
