Design Document
List of Plugins
- Gravity Forms
- Gravity Forms / SMTP - for sending email, reminders, and notifications via WP
- Gravity Forms / Event Field (Free)
- Gravity Forms / GravityCalendar
- Memberpress
One of the most common requests I get is to create some type of booking subscription platform using Memberpress and a third-party booking plugin like Amelia or Calendly. Whether it's for access to a wellness facility, booking a studio, or scheduling appointments, clients often start with these solutions.
While plugins like Amelia or The Events Calendar can serve specific industries well (e.g., salons), they become a poor fit once subscriptions are introduced. Memberpress is central to managing subscriptions, and these plugins typically require clunky workarounds or expensive integrations to connect the dots.
Booking plugins also come at an extra cost, lack native SMTP support for emails, and offer limited customization for branded experiences. Most setups end up relying on no-code tools like Zapier, introducing complexity and fragility. When it works, it's slow and rigid; when it doesn't, it's a support nightmare.
You're far better off hiring a developer on Upwork and investing in Gravity Forms add-ons. These give you long-term value and greater flexibility. More importantly, you avoid dashboard confusion - Memberpress will handle the core subscription and account management experience.
Below is the tech stack and process you'd want to use to implement a robust booking + subscription feature. Using this method will give you a serious edge over your competition.
Step 1: Create the Gravity Form
- Build your Gravity Form and note the form ID and individual field IDs.
- These will be used in custom hooks and logic later on.
- Use the "Page Break" field to create a multi-step form if desired.
Step 2: Redirect to the Memberpress Product Page
Create three pricing cards. There are two main redirection strategies:
- Option 1 (Simple): Link directly to a unique Gravity Form for each specific Memberpress subscription product.
- Option 2 (Flexible): Use query parameters or hidden fields to pass the product ID, and conditionally redirect after form submission.
Optional Enhancements:
- Create a multi-step "progress" form using Page Break fields.
- Improve form styling using custom CSS or HTML.
- Use custom field markup hooks like those documented in Outsellers Gravity Forms Filters.
Step 3: Customize the Gravity Forms Event Add-On
- Hide the
End Time
field via CSS or a Gravity Forms filter. - Programmatically set the
End Time
to 30 minutes after the selectedStart Time
using a PHP hook. - Pre-fill recurrence options to streamline the UI.
Step 4: Integrate with GravityCalendar
- Use GravityCalendar Developer Hooks to:
- Customize how entries display on the calendar.
- Dynamically modify event titles and visibility based on user roles or form values.
Step 5: Integrate with Memberpress
Customize the Member Dashboard
- Create a
/memberpress/
folder in your child theme or plugin to override Memberpress templates. - Follow the official guide: Memberpress Template Overrides.
- Use overrides to add custom nav items and views to the user dashboard.
Add Custom Views and Navigation Items
- Admin View:
- Add a nav tab and view that displays all shared calendars.
- Restrict this view to administrators only.
- User View:
- Allow users to view and manage their own event preferences.
- Let them modify settings like date, time, and recurrence via Gravity Forms entries.