ReservePress  /  Documentation  /  ReservePress Wellness User Guide
Wellness — Spas, Massage Clinics & Holistic Studios Plugin v1.0.17 | Theme v1.2.7 24 pages • Full HTML + PDF

ReservePress Wellness — Installation & User Guide (v1.0.17)

Complete setup and practitioner scheduling manual for ReservePress Wellness (Plugin v1.0.17 & Theme v1.2.7) — built for massage therapy clinics, day spas, holistic studios, and multi-practitioner wellness centres.

🔍
Chapter 1

1. Requirements

Before installing ReservePress Wellness, confirm your server meets the following requirements: Requirement

Minimum

WordPress

6.4 or higher

PHP

7.4 or higher (PHP 8.0+ recommended)

MySQL / MariaDB

MySQL 5.7+ or MariaDB 10.3+

HTTPS

Required for Stripe payments (strongly recommended for all installs)

Pretty Permalinks

Must be enabled — Settings → Permalinks → any option except Plain

WP Memory Limit

128 MB minimum; 256 MB recommended

Optional: Stripe Account

Required only if you want to collect online payments or deposits. Not required for pay-in-clinic (cash/card on arrival) workflows.

Chapter 2

2. Installation

Method A — Upload via WordPress Admin (Recommended)

  • Log in to your WordPress admin dashboard.
  • Go to Plugins → Add New → Upload Plugin.
  • Click Choose File and select reservepress-wellness-v1.0.17.zip.
  • Click Install Now, then Activate Plugin.
  • You will be redirected to the RP Wellness dashboard automatically.

Method B — FTP / File Manager

  • Extract reservepress-wellness-v1.0.17.zip on your computer.
  • Upload the reservepress-wellness folder to /wp-content/plugins/ via FTP or your host's file manager.
  • In WordPress admin go to Plugins → Installed Plugins.
  • Find ReservePress Wellness and click Activate.

What Happens on Activation

The plugin automatically creates 8 custom database tables prefixed with wp_rpsal_ (or your configured prefix). Custom capabilities are added to the Administrator role. No existing WordPress data is modified.

Database Tables Created

wp_rpsal_services
wp_rpsal_service_categories
wp_rpsal_staff
wp_rpsal_staff_hours
wp_rpsal_appointments
wp_rpsal_clients
wp_rpsal_promotions
wp_rpsal_blocked_times
Chapter 3

3. First-Time Setup

Follow these steps in order after activating the plugin. Completing each step before the next ensures the booking widget works correctly from day one.

3.1 Configure General Settings

Go to RP Wellness → Settings and fill in the General section:

  • Clinic Name — appears in email notifications and the booking widget heading.
  • Clinic Email — used as the reply-to address for client emails.
  • Phone Number — displayed in confirmation emails.
  • Theme Style Adoption — set to auto to inherit your active theme's colours and fonts automatically.
  • My Appointments URL — paste the full URL of your My Appointments page (set up in Step 3.6).

3.2 Add Service Categories

Go to RP Wellness → Services and click the Categories tab. Categories group services in the booking widget (e.g. Massage, Facial, Bodywork). You can skip this step and add services without categories.

3.3 Add Services

Go to RP Wellness → Services → Add New Service. Fill in:

  • Name — e.g. Deep Tissue Massage.
  • Category — assign to a category if you created them.
  • Duration — appointment length in minutes.
  • Buffer Time — gap added after the appointment before the next slot is available.
  • Price — base price. Leave at 0 for free or price-on-consultation services.
  • Deposit — optionally require a deposit (fixed amount or percentage) if Stripe is enabled.
  • Image — used by the Services page and the [rpwel_services] shortcode.
  • Status — set to Active for the service to appear in the booking widget.

3.4 Add Staff Members

Go to RP Wellness → Staff → Add New Staff Member. Fill in:

  • First Name / Last Name.
  • Title / Designation — e.g. RMT, Holistic Practitioner. Displayed on the About page.
  • Email — used for staff notification emails.
  • Bio — displayed on the About page when using the ReservePress Wellness theme.
  • Photo — displayed in the booking widget practitioner picker and on the About page.
  • Colour — accent colour used for the staff member's initial avatar when no photo is set.
  • Services Offered — check which services this staff member performs. Only checked services appear for this practitioner in the booking flow.
  • Status — set to Active to make the staff member bookable.

3.5 Set Staff Hours

Go to RP Wellness → Staff, click a staff member's name, then click Set Hours. Configure working days and time ranges for each day of the week. The booking widget only shows available slots within these hours.

Important

Staff with no hours configured will show no available slots in the booking widget. Hours apply to the staff member's local timezone as configured in WordPress Settings → General.

3.6 Create Required Pages

Create the following pages in WordPress → Pages → Add New. The slug (URL) must match exactly for the plugin's links to work correctly.

Page Title

Slug

Content / Notes

Book Appointment

book-appointment

Add shortcode [rpwel_booking_widget] or use Booking Page template (ReservePress Wellness theme).

My Appointments

my-appointments

Add shortcode [rpwel_my_appointments]. Guests access via email link; logged-in users see their bookings automatically.

Services

services

Add [rpwel_services] shortcode or use the Services Page template (ReservePress Wellness theme).

After creating pages, go to RP Wellness → Settings → General and update the My Appointments URL field with the full URL of your My Appointments page.

Chapter 4

4. Shortcodes

All shortcodes can be added to any WordPress page, post, or widget area. They automatically enqueue the required CSS and JavaScript. No additional setup is needed beyond placing the shortcode in your content.

Dual prefix support

The plugin registers both rpwel_ and rpsal_ prefixes for all shortcodes. Either prefix works identically.

4.1 Booking Widget

[rpwel_booking_widget]
[rpwel_booking_widget service_id="3"]
[rpwel_booking_widget staff_id="2" title="Book with Sarah"]

The primary booking shortcode. Renders a fully interactive multi-step booking flow:

  • Step 1: Select Service
  • Step 2: Select Practitioner (or Any Available)
  • Step 3: Choose Date
  • Step 4: Choose Time Slot
  • Step 5: Enter Contact Details
  • Step 6: Payment (if Stripe enabled) → Confirmation

Attribute

Default

Description

service_id

0

Pre-select a service by ID. Widget skips Step 1 if set.

staff_id

0

Pre-select a staff member by ID. Widget skips Step 2 if set.

title

Book an Appointment

Heading displayed at the top of the widget.

4.2 Services Grid

[rpwel_services]
[rpwel_services columns="2" category_id="1"]
[rpwel_services show_price="false" show_book_button="true"]

Displays a responsive grid of active services with name, price, description, and a Book Now button. Attribute

Default

Description

category_id

0

Filter by service category ID. Shows all categories if omitted.

columns

3

Number of columns in the grid (1–4).

show_price

true

Show or hide the service price.

show_book_button

true

Show or hide the Book Now button.

4.3 Single Service

[rpwel_service id="5"]

Displays a single service by its ID — name, description, duration, and price. Useful for dedicated service landing pages.

Attribute

Default

Description

id

0 (required)

The ID of the service to display. Find IDs in RP Wellness → Services.

4.4 Staff Grid

[rpwel_staff]
[rpwel_staff columns="4"]

Displays all active staff members in a grid with photo, name, title, bio, and a Book with Me button. Attribute

Default

Description

columns

3

Number of columns in the grid.

4.5 My Appointments

[rpwel_my_appointments]

Displays a client's appointment history. Behaviour depends on login status:

  • Logged-in users — appointments are retrieved automatically by WordPress user account.
  • Guest users — after completing a booking, the confirmation screen shows a View My Appointments link that includes an email parameter (?rpsal_email=…). This allows guests to view their bookings without an account.
  • Not logged in and no email param — a login prompt is displayed.

Page Setup Required

This shortcode requires the My Appointments page to be created and its URL saved in RP Wellness → Settings → General. Without this, the confirmation email's View My Appointments link will not work.

4.6 Promotions List

[rpwel_promotions]

Displays all currently active promotions with their discount code, description, and validity. Promotion codes can be entered by clients during the booking checkout step.

4.7 Availability Calendar

[rpwel_availability_calendar service_id="1"]
[rpwel_availability_calendar service_id="1" staff_id="2"]

Displays a read-only month calendar highlighting available dates for a given service and optionally a specific staff member. Useful on service or staff landing pages. Attribute

Default

Description

service_id

0 (required)

The service to check availability for.

staff_id

0

Optionally restrict to a specific staff member.

Chapter 5

5. Admin Menu Reference

The RP Wellness menu appears in the WordPress admin sidebar. It contains the following sections:

5.1 Dashboard

  • Overview of today's appointments, upcoming bookings, and key stats.
  • Quick-access buttons for common tasks.
  • Recent activity feed.

5.2 Appointments

  • Full list of all appointments with date, client, service, staff, and status filters.
  • Click any appointment to view full details, change status, or add internal notes.
  • Use the New Appointment button to manually create a booking (walk-in or phone).
  • Admin bookings show an inline conflict warning if a time slot is already taken — check the override box to book anyway.
  • Status options: Scheduled, Confirmed, In Progress, Completed, Cancelled, No Show.

5.3 Calendar

  • Weekly calendar view of all appointments, grouped by staff column.
  • Navigate with Prev/Next buttons or the date picker.
  • Click any appointment block to view or edit it.

5.4 Services & Categories

  • Manage all services and their categories.
  • Set name, description, duration, buffer time, price, deposit, image, and status.
  • Categories tab: create and manage service groupings.

5.5 Staff

  • Manage all practitioners.
  • Assign services, set working hours, upload photo, and set colour.
  • Title / Designation field — e.g. RMT, Holistic Practitioner. Shown on the About page and Front Desk.
  • Staff Hours sub-page: configure per-day working time ranges.
  • Block Time: add vacation days or blocked periods that remove slots from the booking widget.

5.6 Clients

  • View all client records with contact information and appointment count.
  • Click a client to see their full appointment history.
  • Clients are created automatically when a booking is made.

5.7 Promotions

  • Create discount codes for use during checkout.
  • Set discount type (percentage or fixed amount), value, usage limit, and validity dates.
  • Active promotions can be displayed publicly using the [rpwel_promotions] shortcode.

5.8 Reports

  • Revenue summary by date range.
  • Appointment volume by service and by practitioner.
  • Requires the view_rpsal_reports capability (Administrators have this by default).
Chapter 6

6. Settings Reference

All settings are at RP Wellness → Settings. The settings screen is divided into seven tabs. Each tab saves independently — click Save Settings within each tab.

6.1 General Tab

Setting

Description

rpsal_salon_name

Your clinic name — appears in email notifications and the booking widget.

rpsal_salon_email

Reply-to email address for all client-facing emails.

rpsal_salon_phone

Clinic phone number — included in confirmation emails.

rpsal_theme_style

auto = inherit active theme CSS variables. off = always use plugin default colours.

rpsal_my_appts_url

Full URL of the My Appointments page. Required for email confirmation links.

6.2 Booking Rules Tab

Setting

Description

rpsal_min_advance_hours

Minimum hours in advance a client can book. Default: 2.

rpsal_max_advance_days

How far ahead clients can book. Default: 60 days.

rpsal_slot_interval

Interval between time slots shown in the widget. Default: 30 minutes.

rpsal_cancellation_hours

Hours of notice required for cancellation.

rpsal_allow_guest_booking

Allow bookings without a WordPress account. Recommended: on.

rpsal_require_phone

Make the phone field required at checkout.

6.3 Gratuity Tab

Setting

Description

rpsal_gratuity_enabled

Show a gratuity/tip selector at checkout. Only available when Stripe is enabled.

rpsal_gratuity_presets

Comma-separated tip percentages shown as quick-select buttons. Default: 15,18,20.

rpsal_gratuity_default

Pre-selected tip percentage. Leave blank for none.

6.4 Payment Tab (Stripe)

Setting

Description

rpsal_payment_mode

full = charge full amount at booking. deposit = charge deposit only. none = pay in clinic.

rpsal_stripe_enabled

Enable Stripe payment processing.

rpsal_stripe_test_mode

on = use test API keys. off = use live keys.

rpsal_stripe_pub_key_live

Stripe live publishable key (starts with pk_live_).

rpsal_stripe_secret_live

Stripe live secret key (starts with sk_live_). Never share this key.

rpsal_stripe_pub_key_test

Stripe test publishable key (starts with pk_test_).

rpsal_stripe_secret_test

Stripe test secret key (starts with sk_test_).

rpsal_stripe_webhook_secre t

Stripe webhook signing secret (starts with whsec_). Required for payment confirmation.

6.5 Tax Tab

Setting

Description

rpsal_tax_enabled

Apply tax to service prices at checkout.

rpsal_tax_rate

Tax percentage (e.g. 13 for 13% HST).

rpsal_tax_name

Label shown at checkout (e.g. HST, GST, VAT).

rpsal_tax_inclusive

on = prices already include tax. off = tax added on top.

6.6 Currency Tab

Setting

Description

rpsal_currency

ISO currency code. Default: CAD.

rpsal_currency_symbol

Symbol displayed with prices. Default: $.

rpsal_currency_position

before = $10.00. after = 10.00$.

rpsal_currency_decimals

Number of decimal places. Default: 2.

6.7 Email & SMTP Tab

Setting

Description

rpsal_email_from_name

Sender name for all plugin emails.

rpsal_email_from_address

Sender email address.

rpsal_email_confirmation

Send a confirmation email to the client after booking.

rpsal_email_reminder

Send a reminder email before the appointment.

rpsal_email_reminder_hours

Hours before the appointment to send the reminder. Default: 24.

rpsal_email_cancellation

Send a cancellation notice to the client.

rpsal_smtp_host

SMTP server hostname (e.g. smtp.sendgrid.net).

rpsal_smtp_port

SMTP port. Common values: 587 (TLS), 465 (SSL).

rpsal_smtp_username

SMTP account username.

rpsal_smtp_password

SMTP account password.

rpsal_smtp_encryption

tls or ssl.

SMTP Recommendation

WordPress default email (wp_mail) is often blocked by hosting providers. Use a transactional email service such as SendGrid, Mailgun, or Postmark for reliable delivery. Enter the SMTP credentials in the fields above, or use a dedicated SMTP plugin if preferred.

Chapter 7

7. User Roles & Capabilities

ReservePress Wellness adds custom capabilities to the WordPress role system. Administrators receive all capabilities automatically on activation. You can assign individual capabilities to other roles using a role management plugin such as User Role Editor.

Capability

Description

Admin

Manager*

Recept.*

manage_rpsal_appointments

View, create, edit appointments

✓

✓

✓

edit_rpsal_appointments

Edit existing appointments

✓

✓

✓

delete_rpsal_appointments

Delete appointments

✓

✓

manage_rpsal_services

Manage services and categories

✓

✓

edit_rpsal_services

Edit service details

✓

✓

manage_rpsal_staff

Manage staff members and hours

✓

✓

manage_rpsal_settings

Access plugin settings

✓

✓

view_rpsal_reports

View revenue and booking reports

✓

✓

view_rpsal_calendar

View the calendar screen

✓

✓

✓

access_rpsal_frontend

Access the Front Desk interface

✓

✓

✓

* Manager and Receptionist are not created automatically. Assign capabilities to existing roles using a role editor plugin.

Chapter 8

8. Front Desk Interface

The Front Desk is a dedicated interface designed for in-clinic use — reception tablets, front desk computers, or any staff-facing screen. It is separate from the WordPress admin and accessible at: https://yoursite.com/?rpsal_front_desk=1

The interface includes:

  • Dashboard tab — today's schedule at a glance, plus upcoming appointments for the rest of the week.
  • New Appointment tab — create a walk-in or phone booking quickly without using the full admin.
  • Appointments tab — view, filter, and update appointment status.
  • Calendar tab — weekly view grouped by practitioner column.
  • Clients tab — search and view client records.
  • Staff tab — view practitioners and their availability.
  • Reports tab — quick revenue and booking summary.

Access Control

The Front Desk interface requires the access_rpsal_frontend capability. Administrators have this by default. Assign it to receptionist or manager roles as needed.

Chapter 9

9. Email Notifications

The plugin sends the following emails automatically. All emails are sent via the SMTP settings configured in RP Wellness → Settings → Email.

Email

Trigger

Recipient

Booking Confirmation

Immediately after a successful booking

Client

Appointment Reminder

N hours before the appointment (configurable)

Client

Cancellation Notice

When an appointment is cancelled

Client

Reminder emails require a WP-Cron job to fire. On most shared hosts this works automatically. For high-traffic or mission-critical reminders, configure a real cron job on your server: */5 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null

Chapter 10

10. Stripe Payment Setup

Step 1: Create a Stripe Account

Go to stripe.com and create or log in to your account. Complete business verification if required for live payments.

Step 2: Get Your API Keys

In the Stripe dashboard, go to Developers → API Keys. Copy your Publishable key and Secret key. Start with test mode keys (pk_test_… and sk_test_…) for initial setup.

Step 3: Enter Keys in Plugin Settings

Go to RP Wellness → Settings → Payments. Enable Stripe and check Test Mode. Paste your test keys into the Test Publishable Key and Test Secret Key fields. Save settings.

Step 4: Set Up Webhook

In Stripe dashboard go to Developers → Webhooks → Add Endpoint. Endpoint URL: https://yoursite.com/wp-json/rpsal/v1/stripe-webhook. Select events: payment_intent.succeeded and payment_intent.payment_failed. Copy the Signing Secret and paste it into the Stripe Webhook Secret field in plugin settings.

Step 5: Test a Payment

Make a test booking on your site. Use Stripe test card 4242 4242 4242 4242 with any future expiry and any CVC. Confirm the booking appears in RP Wellness → Appointments with payment status Paid. When ready for live payments, switch off Test Mode and replace with live API keys.

Security

Never paste your Stripe secret key anywhere public or in version control. The webhook secret prevents fraudulent payment confirmation requests. HTTPS is required for Stripe to function on live sites.

Chapter 11

11. ReservePress Wellness Theme

The ReservePress Wellness Theme (v1.2.7) is the official companion theme for ReservePress Wellness. It is designed to work out of the box with the plugin — no manual shortcode setup required for the Booking or Services pages.

Installing the Theme

  • Go to Appearance → Themes → Add New → Upload Theme.
  • Upload reservepress-wellness-theme-v1.2.7.zip and click Activate.
  • Create the pages listed below, assigning the matching page templates.

Required Pages & Templates

Page Title

Slug

Template

Home (set as front page)

/

Front Page

Services

services

Services Page

About

about

About Page

Contact

contact

Contact Page

Book Appointment

book-appointment

Booking Page

Plugin Integration

  • The Booking Page template automatically renders the booking widget — no shortcode needed.
  • The Services Page template pulls service data directly from the plugin database.
  • The About Page template pulls practitioner data from the plugin, ordered by Sort Order.
  • The booking widget inherits the theme's sage and terracotta colour palette automatically via CSS variables.

Theme Customisation

Go to Appearance → Customize to access all theme options. The Customizer is organised into the following sections:

Section

What you can configure

Typography

Font pairing (5 curated options). Only the selected pair is loaded from Google Fonts.

Clinic Information

Clinic name, tagline, phone, email, address, hours, and Book Now URL.

Homepage — Hero

Eyebrow, heading, subtext, both CTA buttons, meta card labels, hero image, and feature card overrides.

Homepage — Sections

Treatment cards (3), about teaser text and image, CTA band text.

Testimonials

Section heading plus up to 3 testimonials (quote, name, role each).

About Page

Practitioner name and title, header photo, story section (3 paragraphs + photo), 4 credentials.

Colours

Sage, Sage Dark, Terracotta, Background, Body Text, and Front Desk sidebar colour.

Chapter 12

12. ReservePress Wellness Theme Lite

ReservePress Wellness Theme Lite is a minimal booking shell included free with every ReservePress Wellness purchase. It is designed for clinics whose main website runs on a non-WordPress platform such as Shopify, Squarespace, or Wix — where you need a clean, branded booking experience without building a full WordPress site.

How It Works

Install WordPress in a subfolder of your domain (e.g. yourdomain.com/book/). Theme Lite turns that subfolder into a self-contained booking portal — nothing more. Visitors who land on your booking URL see only the booking form and a confirmation/appointments page. The header shows your logo, which links back to your main site.

Installing Theme Lite

  • Go to Appearance → Themes → Add New → Upload Theme.
  • Upload reservepress-wellness-theme-lite.zip and click Activate.
  • On activation, the theme automatically creates two pages: Book Appointment and My Appointments. No manual page creation is required.
  • Go to RP Wellness → Settings → General and confirm the My Appointments URL points to the newly created page.

Customiser Options

Go to Appearance → Customize. Theme Lite exposes four options only: Option

Description

Logo

Upload your clinic logo. Displayed in the header, links back to your main site.

Primary Colour

Accent colour applied to buttons and highlights in the booking widget.

Main Site URL

The URL your logo links to (e.g. https://yourdomain.com).

Footer Copyright

Copyright line displayed in the footer.

What Theme Lite does not include

Theme Lite has no navigation menu, no homepage, and no marketing content. It is intentionally minimal — a booking shell only. For a full clinic website experience with a homepage, services page, staff profiles, and contact page, use the ReservePress Wellness Theme (Chapter 11).

Chapter 13

13. Troubleshooting

Booking widget shows “Online booking is coming soon”

  • The plugin is not activated, or the shortcode name is wrong.
  • Confirm the plugin is active under Plugins → Installed Plugins.
  • Confirm the page uses [rpwel_booking_widget] (not [rpwel_booking]).
  • If using the ReservePress Wellness Theme Booking Page template, no shortcode is needed — just publish the page.

No time slots appear on the calendar step

  • Confirm at least one staff member is active and has hours set (RP Wellness → Staff → Set Hours).
  • Confirm the selected service is assigned to that staff member (Services Offered checkboxes).
  • Check that the date is within the min/max advance booking window in Settings → Booking Rules.
  • Check WordPress timezone (Settings → General) matches the clinic's local timezone.

Services page shows “No services found”

  • Go to RP Wellness → Services and confirm at least one service has Status set to Active.
  • If using the ReservePress Wellness Theme, the Services Page template reads from the plugin database directly.
  • If using a shortcode, confirm [rpwel_services] is placed in the page content.

Emails are not being delivered

  • Test email delivery using a plugin like WP Mail SMTP or Check Email.
  • Configure SMTP settings in RP Wellness → Settings → Email to use a transactional email provider.
  • Check spam/junk folders before assuming emails are not sending.

Headers already sent or white screen after saving

  • This is usually caused by a PHP error or another plugin outputting content before WordPress.
  • Enable WordPress debug mode (WP_DEBUG=true in wp-config.php) to see the error.
  • Check that no extra blank lines appear at the end of your wp-config.php file.

Double-booking error message at checkout

  • This is by design. If two clients attempt to book the same slot simultaneously, the second request is rejected by the database transaction lock.
  • The client is shown a friendly message and prompted to choose another time.
  • No action required — the system is working correctly.

About page staff section is blank

  • Confirm at least one staff member has Status set to Active in RP Wellness → Staff.
  • Staff are ordered by the Sort Order field — ensure this is set correctly.
  • If no photo is uploaded, an initial avatar is displayed using the staff member's Colour setting.

For additional help, feature requests, or to report a bug, visit reservepress.ca or contact us at hello@reservepress.ca.

ReservePress Wellness is open source software licensed under the GNU General Public License v2 or later.