WooCommerce does not support subscriptions out of the box — it only handles one-time payments. To sell recurring memberships, software licenses, digital downloads, or any product that bills on a schedule, you need a subscription plugin layered on top.
This guide walks through the complete setup using WPSubscription, from initial installation to your first successful test renewal. The whole process takes under 10 minutes for a basic configuration, and you can expand from there.
Why This Matters
Adding subscriptions transforms your WooCommerce store from a one-time-sale business into a recurring revenue business. Recurring revenue creates predictable monthly income, lifts customer lifetime value by 3-5×, and shifts your operations from constantly chasing new sales to retaining and growing existing customers.
Subscription businesses also command 6-10× revenue valuation multiples compared to 1-3× for transactional businesses — meaning the same revenue generates far more enterprise value when it recurs.
Before You Start
- WordPress installed and active on your site
- WooCommerce plugin installed and configured with at least one active payment gateway
- A merchant account with Stripe, PayPal, Paddle, Razorpay, or Mollie (free to create)
- Admin access to your WordPress dashboard
- A staging or test environment recommended for initial setup
Step-by-Step Instructions
Install WPSubscription
Go to Plugins → Add New in your WordPress admin and search for "WPSubscription". Click Install, then Activate.
If you have the Pro version, instead use Plugins → Add New → Upload Plugin to upload the ZIP file. After activation, a new "Subscriptions" menu item will appear under WooCommerce in the left admin sidebar — this is where you will manage all subscriptions going forward.
The free version covers core subscription functionality; the Pro version adds split payments, advanced dunning, multi-gateway support, and priority customer support.
Configure your payment gateway
Go to WooCommerce → Settings → Payments. Enable a gateway that supports recurring payments — Stripe, PayPal, Paddle, Razorpay, or Mollie are all natively supported by WPSubscription.
Complete each gateway's authentication setup: API keys for Stripe, OAuth connection for PayPal, or account linking for Paddle. Without a compatible recurring-payment gateway, the initial subscription purchase will work but renewal charges will not fire at the next billing date.
Stripe is the recommended choice for most stores due to the best feature set for subscriptions including Smart Retries and Card Updater.
Create your first subscription product
Go to Products → Add New. Set a product name (e.g., "Pro Membership — Monthly") and a price.
In the "Product data" panel, change the product type dropdown from "Simple product" to "Simple subscription" — this option is added by WPSubscription. Set the subscription price, billing interval (weekly, monthly, quarterly, or annually), and optionally a free trial length in days.
Write a product description explaining what subscribers get, how billing works, and how they can cancel — clarity here reduces support requests later.
Publish and test the checkout flow
Publish the product. Open the product page in a browser (use an incognito window to simulate a real customer) and complete a test purchase using your gateway's test mode — Stripe accepts test card 4242 4242 4242 4242 with any future expiry and any 3-digit CVC.
After checkout, verify the subscription appears in WooCommerce → Subscriptions with an "Active" status, the correct next payment date, and the right billing amount. Also verify the customer received a welcome email and the subscription appears in the customer's My Account area.
Configure renewal and notification settings
Go to WPSubscription → Settings to configure retry behavior for failed payments (recommended: retry on day 1, 3, and 7), the number of days before renewal to send reminder emails (recommended: 3-7 days), and what self-service options customers have in their My Account area (upgrade, downgrade, cancel, pause). These defaults apply to all subscription products unless overridden per product.
Also configure renewal receipt emails — these post-charge confirmations build trust and reduce "what was this charge?" support tickets.
Switch to live mode and monitor
Once everything works in test mode, switch your payment gateway to live credentials (replace test API keys with production keys). Make one final real-money test purchase to confirm everything still works end-to-end.
Then monitor the first batch of real renewals closely — check WooCommerce → Subscriptions and WooCommerce → Status → Logs for any errors. The first month is when most configuration issues surface; after that, the subscription system runs largely on autopilot.
Pro Tips
- Use a staging environment for initial setup — testing on production risks breaking real subscriptions
- Configure WP Mail SMTP before launching — WordPress default email is unreliable for transactional messages
- Choose Stripe as your primary gateway — Smart Retries and Card Updater recover 10-20% more failed payments
- Start with a single subscription product and one billing interval, then expand once you validate the model
- Document your setup decisions in a private note — useful when troubleshooting or onboarding new team members
Result
Your WooCommerce store can now sell subscription products with automatic recurring billing, renewal reminder emails, payment failure recovery via dunning, and customer self-service subscription management from the My Account area. You have all the infrastructure needed to run a sustainable subscription business on WooCommerce.
Troubleshooting
Problem:The "Simple subscription" product type is not appearing in the dropdown
Solution:Confirm that WPSubscription is activated, not just installed. Go to Plugins and check that the plugin status shows "Active". If active and the option still does not appear, deactivate and reactivate the plugin to refresh the registered product types. Clear any caching plugin and reload the products admin page.
Problem:Recurring charges are not firing at renewal date
Solution:The most common cause is missing or misconfigured webhooks. Your payment gateway needs to receive subscription events (renewals, failures) and notify WooCommerce via webhooks. In Stripe, go to Developers → Webhooks and confirm the endpoint URL is exactly your-store.com/wc-api/wc_stripe with no trailing slash issues. Also verify WordPress cron is functioning — go to WooCommerce → Status → Scheduled Actions to check for pending renewal actions.
Problem:Test subscription works but real charges fail with "API key" errors
Solution:You likely have test API keys still configured for live mode. Go to WooCommerce → Settings → Payments → Stripe (or your gateway) and confirm you have replaced test keys (prefixed with pk_test_ and sk_test_) with live keys (pk_live_ and sk_live_). Also disable the gateway's "Test mode" toggle. Save changes and try again.
Problem:Customer received welcome email but no charge appears on their card
Solution:For free trials, this is expected — no charge fires until the trial ends. For paid subscriptions, check the gateway dashboard for the charge status. If pending, it may be a 3D Secure authentication issue. If declined, check the decline reason in your gateway logs. Test transactions in test mode do not appear as real charges, so confirm you are in live mode if testing real flows.
Frequently Asked Questions
Do I need the Pro version of WPSubscription to add subscriptions?
Will adding WPSubscription break my existing WooCommerce products?
How long does the full setup take?
Can I migrate existing customers to subscription products?
Does WPSubscription work with my existing payment gateway?
Related Glossary Terms
More Guides
How to Set Up Recurring Payments in WooCommerce
6 steps · Connect your payment gateway and configure automatic billing schedules for subscription products.
How to Create Subscription Plans in WooCommerce
6 steps · Build tiered subscription plans with different features, pricing, and billing intervals.
How to Offer a Free Trial in WooCommerce
6 steps · Add a free trial period to subscription products and configure the trial-to-paid transition.