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”.
Enter the package name
Give it a descriptive name customers will see, e.g., “10 Yoga Sessions”, “5 Coaching Hours”, or “Monthly Therapy Bundle”.
Set the session count
Enter the total number of sessions included in this package. Each booking will deduct one session.
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).
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.
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:
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:
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.
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”).
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:
Expiry warning email
An automated email is sent to the customer 7 days before their package expires, reminding them of remaining sessions.
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.
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
{package_name}, {sessions_remaining}, and {package_expiry} placeholders in email templates to keep customers informed about their package status.