Cart and checkout

Milo Subscriptions integrates directly with the WooCommerce cart and checkout, so selling a subscription feels identical to selling any other product. This page explains what changes when a subscription is in the cart, how payment is handled, and how to customize the experience.

Adding a subscription to the cart

When a customer adds a subscription product to their cart:

  • The cart line displays the subscription price, billing cadence, trial, and sign-up fee.
  • The cart subtotal includes the sign-up fee and first-period price (unless a free trial applies).
  • Taxes, shipping, and coupons are calculated on the first-payment total.

Mixed carts

A mixed cart contains both subscription and non-subscription products. Milo Subscriptions supports mixed carts out of the box. The customer pays:

  • The one-time price of regular products.
  • Plus the first-period total of every subscription in the cart.

Each subscription is created individually after checkout and billed on its own schedule.

Multiple subscriptions in one cart

A customer can buy several subscription products in a single order. Milo Subscriptions creates one subscription per product, each with its own renewal schedule. If two products share the same billing cadence, they still bill independently by default. To align them, enable Synchronized renewals.

Cart page

The cart page shows:

  • Each subscription’s recurring total line, grouped by billing cadence.
  • Any applicable free trial, sign-up fee, or fixed expiry.
  • A first payment section that summarizes what the customer pays today.

These details are rendered with standard WooCommerce templates and can be overridden by copying templates/cart/ into your theme.

Checkout page

At checkout, the customer sees:

  • The standard billing and shipping forms.
  • Available payment methods that support recurring payments. Gateways without recurring support are hidden automatically.
  • A recurring totals breakdown grouped by cadence.
  • A summary of what will be charged today, and what will be charged at the next renewal.

Payment method selection

Only gateways that support tokenization (saving a payment method for later charges) are shown when a subscription is in the cart. The customer’s selected payment method is stored and used for future renewals.

If the customer selects Manual renewal, they will receive an email with a payment link before each renewal and pay through your checkout each cycle. Enable manual renewals under Milo Subscriptions → Settings → Payments.

Account creation

Subscriptions require a customer account so renewals can be linked to a specific user. If a guest customer checks out with a subscription in the cart:

  • WooCommerce forces account creation when a subscription is present.
  • The customer receives login credentials to manage their subscription.

Empty cart and session

A subscription stays in the cart for the length of the WooCommerce session (by default, 48 hours). If the session expires, the cart is cleared. To extend cart persistence, use the standard WooCommerce cart and session filters.

Checkout blocks and shortcodes

Milo Subscriptions is fully compatible with:

  • The WooCommerce Checkout block.
  • The WooCommerce Cart block.
  • The legacy and
    shortcodes.

No additional configuration is required to use either.

Errors and edge cases

Payment method does not support subscriptions

If a customer selects a gateway that does not support recurring payments (for example, bank transfer, check, or COD), checkout is blocked and the customer is asked to pick another method. Admins can enable specific gateways for manual renewal only.

Free trial without a stored payment method

If a product has a free trial and the total at checkout is $0, a payment method is still required so the first renewal can be charged automatically. Gateways that support zero-amount authorizations (Stripe, Stripe-Direct, Mollie) handle this transparently. Others may require a small verification amount.

Cart abandoned

If a customer adds a subscription to the cart but leaves without completing, the Abandoned Cart add-on can email them a recovery link. See Add-ons.

Customizing the cart and checkout

  • Change strings: use the gettext filter or a translation plugin.
  • Change layout: override WooCommerce templates in your theme.
  • Change totals: use milosubscriptions_cart_recurring_totals and related filters in Hooks and filters.
  • Change available gateways: use woocommerce_available_payment_gateways to filter the list when a subscription is in the cart.

Next steps

  • Renewals: how recurring charges are processed after checkout.
  • Switching: let customers change plans after purchase.
  • Emails: customize order, renewal, and reminder emails.

Did this page miss something?

Tell us and we rewrite it, usually the same day.

Send a note