WooCommerce Subscriptions Setup Turnkey
Imagine: a customer buys access to your online service, and a month later stops paying because the store didn't auto-charge. Every month you lose up to 40% of recurring revenue. Standard WooCommerce can't charge on a schedule. You need the paid WooCommerce Subscriptions plugin (costs $199/yr for single site, $399/yr for up to 5 sites). It adds the 'Subscription' product type, lets you set intervals, trial periods, and automatic payments via supported gateways. Without it, you must invoice manually or build a custom CRM integration.
We have configured subscriptions for 50+ projects — from food delivery to SaaS. Over 5 years, we identified common mistakes and found optimal configurations. For example, Stripe via WooCommerce Payments yields a 97% conversion rate on automatic payments when webhooks are set properly. That's 1.4 times better than manual invoicing (70% conversion). With an average check of $50/month and 100 subscribers, automation saves $1,500 per year by reducing churn. Our guaranteed recurring payment setup ensures you never miss a payment.
How WooCommerce Subscriptions Works
The plugin introduces the product types simple subscription and variable subscription. For each product you set: billing period (every N days/weeks/months/years), billing interval, free trial, and sign-up fee (one-time payment on activation). Technically, the plugin creates additional wcs_* database tables and extends wp_posts to store subscription data, schedules, and payment method tokens.
Choosing a Payment Gateway for Auto-Recurring Payments
WooCommerce Subscriptions requires a gateway that supports automatic recurring payments. Not all gateways do — they must explicitly declare support via the supports hook:
$gateway = WC()->payment_gateways()->get_available_payment_gateways()['stripe']; if ( $gateway->supports( 'subscriptions' ) ) { // gateway supports auto-recurring } Compatibility table for popular gateways:
| Gateway | Auto-Recurring | Free Trial | Notes |
|---|---|---|---|
| Stripe (WooCommerce Payments) | Yes | Yes | 97%+ conversion |
| PayPal Reference Transactions | Yes | Yes | Requires PayPal Pro |
| Authorize.Net | Yes | Yes | Transaction fee |
| Braintree | Yes | Yes | Braintree account required |
| CloudPayments | Check | Check | Plugin must have 'subscriptions' support |
| YuKassa | Check | Check | Same requirement |
If the gateway doesn't support automatic recurring, the subscription falls back to manual renewal: the customer receives an invoice and pays manually. Conversion drops by 30%.
What to Do If Payments Don't Process?
The most common problem: the payment gateway doesn't support tokenization. Symptoms: Stripe/PayPal work, but a local gateway doesn't. Solution: verify that the gateway plugin declares $this->supports[] = 'subscriptions'.
The second cause: cron jobs aren't running. WCS uses WP-Cron for renewal payments. On hosts where built-in cron is disabled, set up a system cron:
*/5 * * * * www-data wget -q -O /dev/null "https://example.com/wp-cron.php?doing_wp_cron" Alternatively, use Action Scheduler (included in WCS) with an external trigger. Action Scheduler is more efficient than system cron: it automatically retries failed attempts and consumes fewer resources. For loads over 1,000 subscriptions, we recommend it.
Typical Mistakes in Subscription Setup
- Incorrect retry count: default is 3, but if customers frequently complain, increase to 5.
- Missing trial period testing: ensure that after the trial ends, the payment fires.
- Misconfigured webhooks: check that the webhook URL is externally accessible and processes
invoice.payment_succeededevents. - Currency mismatch: if the subscription is in USD but the gateway only supports EUR, payments will fail.
- Ignoring Action Scheduler: on high loads, WP-Cron causes delays.
How to Integrate Subscriptions with WooCommerce Memberships
Subscriptions often pair with Memberships: a paid subscription activates a membership that grants content access. The link is configured in WooCommerce → Memberships → Membership Plans → Edit Plan → Grant Access. We design this link so that when a subscription is canceled, access is automatically revoked.
Comparison of setup options:
| Parameter | Simple Subscription | Variable Subscription |
|---|---|---|
| Number of plans | 1 | Multiple (Basic/Pro/Enterprise) |
| Free trial | Yes | Yes |
| Upgrade/downgrade | No | Yes (via API) |
| Setup complexity | Low | Medium |
What Is Included in the Work (Deliverables and Support)
- Analysis — review of business model, plan selection, trial period calculation.
- Gateway integration — registration, plugin installation, card tokenization.
- Subscription product creation — price, interval, trial, sign-up fee.
- Memberships integration — linking subscription → role → content access.
- Full cycle testing — checkout, payment, notifications, cancellation.
- Documentation — API hooks, manager instructions, troubleshooting guide.
- Team training — 2-hour session on managing subscriptions in the admin panel.
- Ongoing support — 30 days post-setup for any issues.
Installation and Basic Configuration
- Download the plugin from WooThemes, install via Plugins → Add New → Upload Plugin.
- Activate the license key in WooCommerce → Subscriptions → License.
- In WooCommerce → Settings → Subscriptions set: mixed checkout, maximum failed payments (usually 3), email templates.
Creating a Subscription Product
Products → Add New → Product type: Simple subscription → Subscription price: period and amount → Free trial: 7 days → Sign-up fee: 0 → Expire after: Never For multiple plans, use Variable subscription with attributes.
Hooks for Customization
add_action( 'woocommerce_subscription_renewal_payment_complete', function( $subscription, $last_order ) { $user_id = $subscription->get_user_id(); $plan = $subscription->get_items(); // update user role, send bonus }, 10, 2 ); add_action( 'woocommerce_subscription_status_cancelled', function( $subscription ) { $user_id = $subscription->get_user_id(); // revoke access, notify team } ); Timeline and Pricing
Basic setup with one tariff and Stripe — 1–2 business days. Multiple tariffs, upgrades, Memberships — 3–5 days. Pricing is individual. Order setup now — we will select the optimal configuration. Get a consultation on payment gateways and tariffs. Our certified team guarantees smooth integration and ongoing support.







