Session Packages

8 min read

Sell prepaid session bundles that customers can redeem over time. Increase revenue with upfront payments and improve customer retention with package discounts.

Overview

Session packages allow you to bundle multiple appointments into a single prepaid product. Customers purchase a package (e.g., “10 Personal Training Sessions”) and redeem one session each time they book. This is perfect for fitness studios, therapy practices, tutoring centers, and any business with repeat appointments. Key features:

  • Create packages with custom session counts and pricing
  • Set validity periods (e.g., 90 days from purchase)
  • Link packages to specific services or allow any service
  • Automatic session deduction during booking
  • Real-time remaining session tracking for customers and admins
  • Package expiry notifications before and at expiration
  • Customer package purchase history and usage log

Step 1: Create a Package

Navigate to WordPress Admin → Bookings → Packages and click “Add New Package”.

1

Enter the package name

Give it a descriptive name customers will see, e.g., “10 Yoga Sessions”, “5 Coaching Hours”, or “Monthly Therapy Bundle”.

2

Set the session count

Enter the total number of sessions included in this package. Each booking will deduct one session.

3

Set the price

Enter the total package price. Typically this is discounted compared to paying per session (e.g., 10 sessions at $40 each = $400, but the package costs $350).

4

Set the validity period

Enter the number of days the package remains valid after purchase. For example, 90 days means the customer has 3 months to use all sessions. Set to 0 for no expiration.

5

Link to services

Select which services this package can be redeemed against. Leave blank to allow redemption for any service.

Step 2: Customer Package Purchase

Customers can purchase packages through a dedicated page using the shortcode:

[booking_packages]

This shortcode renders a list of available packages with:

Package Cards

Each package is displayed as a card showing name, session count, price, validity period, and applicable services.

Price Per Session

The effective per-session price is calculated and shown, highlighting the savings compared to individual bookings.

Purchase Button

A "Buy Package" button that takes the customer through the standard payment flow (Stripe, PayPal, or bank transfer).

My Packages

Logged-in customers can view their active packages, remaining sessions, and expiry dates below the purchase cards.

Step 3: Session Redemption During Booking

When a customer with an active package books a linked service, the system automatically offers to redeem from their package:

1

Package detection

On the payment step, the system checks if the customer has an active, non-expired package with remaining sessions for the selected service.

2

Redeem option displayed

A “Use Package Session” option appears alongside the regular payment methods, showing the package name and remaining sessions (e.g., “7 of 10 sessions remaining”).

3

Session deducted

If the customer selects the package option, one session is deducted and the booking is confirmed immediately with no additional payment required.

Step 4: Remaining Session Tracking

Both customers and admins can track package usage:

  • Customers see their active packages with remaining sessions on the "My Bookings" page and during the booking process.
  • The admin booking list shows a "Package" badge on bookings redeemed from a package, with the package name.
  • Navigate to Admin > Bookings > Packages to see all purchased packages with usage statistics.
  • Each package shows: customer name, purchase date, sessions used, sessions remaining, and expiry date.

Step 5: Package Expiry

When a package has a validity period, the system handles expiry as follows:

1

Expiry warning email

An automated email is sent to the customer 7 days before their package expires, reminding them of remaining sessions.

2

Package marked as expired

Once the validity period ends, the package status changes to “Expired”. It no longer appears as a payment option during booking.

3

Admin override

Admins can extend a package’s expiry date or add additional sessions from the admin package management screen.

Unused sessions in an expired package are forfeited by default. If your business policy allows rollovers, you can manually create a new package for the customer with the remaining sessions.

Step 6: Admin Package Management

The admin packages screen provides full management capabilities:

  • View all packages (active, expired, and fully redeemed) with filters and search.
  • Click any package to see its full usage history (dates, services, and booking IDs for each redeemed session).
  • Manually add sessions to a customer's package (e.g., as a goodwill gesture or correction).
  • Extend or shorten the validity period of any active package.
  • Issue a refund for unused sessions directly from the package detail screen.
  • Export package sales and usage data to CSV for accounting.

Tips & Best Practices

Tip: Create multiple package tiers to encourage larger purchases. For example: 5 sessions ($225), 10 sessions ($400), 20 sessions ($700). The per-session price decreases with larger packages.
Tip: Use the {package_name}, {sessions_remaining}, and {package_expiry} placeholders in email templates to keep customers informed about their package status.
Tip: If a customer cancels a booking that was redeemed from a package, the session is automatically credited back to their package (as long as the package has not expired).