Browse Plugins

Subscriptions

The plugin handles the full subscription lifecycle. All subscription events from Lemon Squeezy sync automatically to your WooCommerce orders.

Supported Subscription Events

The plugin handles all of these subscription events via webhooks:

subscription_created
subscription_updated
subscription_cancelled
subscription_paused
subscription_unpaused
subscription_resumed
subscription_expired
subscription_payment_success
subscription_payment_failed
subscription_payment_recovered

What Gets Stored on the Order

When a subscription is created or updated, the plugin stores the following on the WooCommerce order: subscription ID, status, product/plan name, renewal date, end date, trial end date, payment method (card brand + last 4 digits), and pause details if applicable.

Customer Self-Service

Customers can manage their subscriptions directly from their WooCommerce My Account page:

  • “Manage Subscription” button – Links to the Lemon Squeezy customer portal where they can cancel, upgrade, or modify their subscription
  • “Update Payment Method” button – Links to the Lemon Squeezy payment update page
  • Subscription Details table – Shows plan name, status, next renewal date, access expiry, and payment method on the order detail page

No Extra Plugin Needed

You don’t need WooCommerce Subscriptions or any other subscription plugin. This plugin handles subscription lifecycle events directly via Lemon Squeezy webhooks.

Coupons on Subscriptions

Lemon Squeezy keeps a checkout’s price for every renewal. So on a product linked to a Lemon Squeezy subscription, a WooCommerce coupon comes off the first payment only, the way WooCommerce does it: the checkout carries the full price and the coupon travels as a one-time Lemon Squeezy discount, used once and deleted after the payment. To keep the coupon on every renewal instead, set “WooCommerce Coupons on Subscriptions” to “Every payment”.

With WooCommerce Subscriptions

Already selling with WooCommerce Subscriptions? The plugin works with it. Lemon Squeezy charges every renewal by itself, and each one is recorded in WooCommerce Subscriptions as a renewal order, paid. So WooCommerce Subscriptions fires its usual hooks (woocommerce_subscription_renewal_payment_complete and the rest), and license, membership and course plugins built on them work as they do with any other gateway.

  • From Lemon Squeezy: a failed renewal puts the subscription on hold with a failed renewal order, and a payment recovered later pays that same order. Pauses, cancellations (active until the paid period ends), a cancellation taken back and the end of a subscription change it in WooCommerce. The next payment date follows Lemon Squeezy.
  • To Lemon Squeezy: a subscription suspended, reactivated or cancelled in WooCommerce, by you or by the customer, is paused, resumed or cancelled at Lemon Squeezy. If Lemon Squeezy cannot be reached, the subscription gets a note saying what to do.

What can be sold this way

Lemon Squeezy charges the same amount every time, so:

  • One subscription per order
  • Linked to a Lemon Squeezy subscription variant that renews on the same schedule (yearly with yearly, monthly with monthly)
  • No sign-up fee, no free trial, no fixed renewal day, and no one-time products in the same order
  • A coupon on the first payment works

The product’s edit screen says whether a subscription product is ready, or why not, and the checkout does not offer Lemon Squeezy for a cart it cannot charge the right way.

Price Changes

Lemon Squeezy keeps the price a subscription started with. A price you change later in WooCommerce does not reach existing subscriptions; the renewal order gets a note if the amounts differ.

Was this page helpful?

Still stuck? Ask us