Standalone Mode

Selling Subscriptions Without WooCommerce

Standalone mode lets Milo Subscriptions run recurring subscriptions on your WordPress site without WooCommerce. There are no products, no cart, and no checkout pages to build. A subscriber clicks a button, pays on a secure Stripe page, and their subscription is managed entirely by Stripe Billing. Milo keeps your site in sync and lets you gate content, show a “manage subscription” area, and track members.

If you already run a WooCommerce store, you do not need standalone mode. It is aimed at sites that want recurring revenue without the overhead of a full shop.

When to use standalone mode

Standalone mode is a good fit for:

  • Membership sites and patron buttons
  • Content paywalls (gate posts, pages, or sections)
  • SaaS or app access control
  • Recurring donations for nonprofits and creators
  • Any “subscribe for access” use case that does not need a shopping cart

If you sell physical products, need shipping, taxes per line item, coupons on orders, or a traditional checkout, use Milo Subscriptions in standard WooCommerce mode instead.

What you need before you start

  1. Milo Subscriptions installed and active (the free core plugin).
  2. Milo Payments installed and connected to Stripe. Standalone mode runs exclusively through Milo’s managed Stripe connection, so this is required. You connect once with a single click; there are no API keys to copy.
  3. A Stripe account (you connect it through Milo Payments).

If Milo Payments is not connected to Stripe, standalone mode cannot be enabled. The settings screen will tell you and link you to the connection step.

How it works

The flow follows the simplest possible model:

  1. A visitor clicks a Subscribe button you placed on your site.
  2. They are redirected to a secure Stripe Checkout page to enter their payment details.
  3. Stripe Billing handles everything after that: recurring charges, failed payment retries (dunning), strong customer authentication (SCA), renewals, and the customer’s self-service portal.
  4. A webhook syncs the subscription status back to your WordPress site, so content gating and the member area always reflect reality.

Stripe is the source of truth for subscription status. Milo stores only the minimal information it needs to gate content and show members their status. No WooCommerce orders or background queues are involved.

Fees

Standalone mode is free to enable. There is no license fee and no feature gating: you get unlimited plans, unlimited subscribers, content gating, blocks, shortcodes, and developer hooks at no cost.

In exchange, a 1% platform fee is added to each subscription payment, on top of Stripe’s standard processing fee (2.9% + 30¢ in the US; Stripe’s rate varies by country). This fee funds the free plugin and the managed Stripe infrastructure. It is disclosed during setup, in the settings tab, and on the Plans page, so there are no surprises.

For comparison, hosted subscription platforms typically charge 2% (SureCart) to 5% or more (Lemon Squeezy, Paddle) on top of processing.

Step 1: Enable standalone mode

  1. Go to Milo Subscriptions → Settings.
  2. Find the Standalone Mode toggle (off by default).
  3. Turn it on. If Milo Payments is not yet connected to Stripe, you will be prompted to do that first.

Turning on standalone mode does not affect any existing WooCommerce subscriptions. The two modes are independent.

Step 2: Connect Stripe

If you have not already connected Stripe through Milo Payments:

  1. Go to Milo Payments → Settings.
  2. Click Connect Stripe.
  3. Complete the one-click Stripe authorization.

You will be returned to your site with Stripe connected. No secret keys are ever stored on your site.

Step 3: Create a plan

Plans are the subscription offers your visitors can buy (for example “Pro Monthly” at €9/month).

  1. Go to Milo Subscriptions → Plans.
  2. Click Add Plan.
  3. Set a name, price, and billing interval (for example monthly or yearly).
  4. Save. Milo creates the matching product and price in your connected Stripe account automatically.

Each plan has an identifier (its slug, for example pro) that you use when placing a subscribe button.

Step 4: Add a Subscribe button

You can place a subscribe button with a block or a shortcode.

Using the block editor

In any post or page, add the Subscribe Button block (search for “Milo” in the block inserter), then pick the plan and edit the button label in the block settings.

Two more blocks are available:

  • Restricted Content wraps content that only active subscribers of a plan can see.
  • My Subscription shows the logged-in member their current subscription with a button to manage it.

Using shortcodes (page builders or classic editor)

[milo_subscriptions_subscribe plan="pro" text="Join now"]

Available attributes:

  • plan (required): the plan slug, for example pro.
  • text: the button label. Defaults to “Subscribe”.
  • class: extra CSS classes for styling.
  • success_url: where to send the customer after a successful subscription.
  • cancel_url: where to send the customer if they cancel checkout.

Restricting content to subscribers

Wrap any content so only active subscribers of a given plan can see it. Everyone else sees a fallback message.

[milo_subscriptions_restricted plan="pro"]
This content is only visible to Pro subscribers.
[/milo_subscriptions_restricted]

Attributes:

  • plan (required): the plan slug the visitor must be subscribed to.
  • fallback: the message shown to non-subscribers. Defaults to “This content is available to subscribers only.”

In the block editor, use the Restricted Content block and choose the plan and fallback message in the block sidebar.

Letting members manage their subscription

Add a self-service area where logged-in members can view and manage their subscription. The “Manage” button opens the Stripe customer portal, where they can update their card, change plan, or cancel, all handled by Stripe.

[milo_subscriptions_my_subscription]

Attributes:

  • logged_out_message: shown to visitors who are not logged in.
  • no_subscription_message: shown to logged-in users with no active subscription.
  • manage_button_text: the label on the manage button. Defaults to “Manage Subscription”.
  • class: extra CSS classes.

In the block editor, use the My Subscription block.

A common setup is a single “My Account” page containing the My Subscription block, linked from your site menu.

What your customers experience

  1. They click Subscribe and land on a Stripe-hosted checkout page (no account on your site required to pay, though you can require login first if you wish).
  2. After paying, they are returned to your success_url (or the page they came from).
  3. Gated content unlocks immediately once the subscription is active.
  4. They can return any time to the My Subscription area and click Manage Subscription to update payment details, switch plans, or cancel through Stripe’s secure portal.
  5. Stripe handles renewals, retries on failed payments, and SCA prompts automatically. If a subscription lapses, gated content locks again on the next sync.

What standalone mode does not include

Standalone mode is deliberately lightweight. It does not include:

  • A WooCommerce cart, checkout, or order records
  • Physical product, shipping, or per-line-item tax handling
  • Order-based coupons (use Stripe-side promotions instead)
  • The Milo premium add-ons that are built for WooCommerce mode

If you need any of those, run Milo Subscriptions in standard WooCommerce mode.

Frequently asked questions

Can I use both standalone mode and WooCommerce on the same site?
The two modes are independent and do not interfere. Most sites use one or the other. WooCommerce subscriptions are unaffected by the standalone toggle.

Where is the subscription data stored?
Stripe is the source of truth for billing and status. Milo stores the minimal data needed to gate content and show members their status, kept in sync by webhook.

What happens if a payment fails?
Stripe Billing retries the payment on its dunning schedule and prompts the customer. While the subscription is past due or canceled, gated content locks on the next sync.

Do my customers need a WordPress account?
Not to pay. You can optionally require login before subscribing, and the My Subscription area requires login so members can manage their plan.

How do I change a plan’s price?
Edit the plan in Milo Subscriptions → Plans. Existing subscribers keep their current price unless you migrate them in Stripe; new subscribers get the new price.

Is the 1% fee charged on top of Stripe’s fee?
Yes. The 1% platform fee is in addition to Stripe’s standard processing fee, and it is disclosed during setup and in your settings.