Session Packs and Memberships
Regulars don’t want to pay for every class one at a time, and you’d rather have their money up front. Core Bookings gives you two ways to sell ahead. A session pack is a one-off purchase of credits for one service. A membership is a recurring plan that renews credits, unlimited booking or a member discount every month or year.
Session packs are built in. Memberships need the Memberships module. Customers buy and use both from their booking dashboard, so make sure that page is set up first.
Sell a Session Pack
Open a service in Bookings → Services and fill in three fields under Booking options:
- Sessions in a prepaid pack (0 disables): from 2 to 100 credits per pack.
- Pack price: at least 0.50 in your booking currency.
- Pack validity after purchase (days): 1 to 3650. Default 365.
The customer’s dashboard then lists the pack under the service, for example “10 sessions for USD 150.00”, with a Buy session pack button. The booking form also shows a Buy a session pack or use your credits link that takes them there.
Packs on a FluentCart service are paid through FluentCart. Packs on any other service are paid through Stripe Checkout, so Stripe must be connected. The customer has about 32 minutes to pay. Credits activate once the payment is verified.
How Credits Work
- The dashboard shows each pack with its credits left and expiry date, plus a Book using a credit link.
- One credit pays for one session. On a group session, one credit pays for one seat, so booking three seats uses three credits.
- A booking paid with credits confirms with no checkout. The booking page shows “Session credit” as the price.
- A cancelled booking, a rejected request or an approval request that expires returns exactly the credits it used. Returned credits keep the original expiry date.
- Credits expire the set number of days after payment.
Turn On Memberships
- Go to Bookings → Settings → Modules, tick Memberships under Classes and memberships, and click Save modules.
- Go to Bookings → Customers → Memberships and click Add plan.
- Fill in the plan and click Save plan.
| Setting | What it does |
|---|---|
| Plan name, Price, Billing interval | Billed per month or per year, at least 0.50, in your booking currency. |
| Credits each paid period | 0 to 100. One credit books one seat. Credits reset each paid period and unused ones don’t roll over. |
| Unlimited booking of the services below instead of credits | Members book the covered services at no charge while the membership is active. |
| Credits and unlimited bookings apply to | The covered services. Leave all unchecked to cover every service. |
| Member discount (%) | 0 to 100 percent off any booking price that credits don’t cover, on every service. |
| Members-only services | Only members of a plan that lists a service can book it. |
| Sell through | Stripe Billing (Checkout subscription), a FluentCart subscription variation ID with its FluentCart checkout link for this plan, or both. |
| Availability | Offer this plan on the customer dashboard. Untick it to stop selling a plan. Existing members keep their terms. |
For Stripe Billing, add invoice.paid, invoice.payment_failed, customer.subscription.updated and customer.subscription.deleted to the Stripe webhook you already use for bookings. FluentCart subscriptions need FluentCart Pro. See Connect Stripe and Sell Bookings through FluentCart.
What Members Get
The dashboard’s Memberships section lists each plan with a Join for button showing the price (Stripe) or a Join through checkout link for FluentCart. Once active, a membership shows its status, renewal date and credits left this period.
- Member prices, credits and members-only services only apply when the customer is signed in to their dashboard or a linked WordPress account with the same email. Typing a member’s email into the form isn’t enough.
- A booking fully covered by credits or an unlimited plan confirms with no checkout, even on a Stripe or FluentCart service.
- Members can book ahead into sessions up to one billing period past their current period.
- If a renewal payment fails, benefits pause until it succeeds.
- Stripe members can choose Cancel at the end of this period or Manage billing, which opens Stripe’s billing portal. FluentCart members pause or cancel from their store account.
Managers can adjust a member’s credits with a reason on the Memberships screen, and use Check with the payment provider to resync one membership.
Limits
- Packs and membership credits can’t pay for a course. Members still get their discount on courses.
- Packs, Stripe Billing and FluentCart subscriptions don’t run through PayPal, Polar or Paddle.
- Membership benefits don’t apply to appointments you add from the admin, or to bookings paid with a session pack.
- Turn off the waitlist on members-only services. A waitlist offer can’t prove membership, so it would be refused.
- Unused membership credits don’t carry over to the next period.
- Memberships aren’t included in site exports. The subscriptions live at Stripe or FluentCart.