Customer Dashboard

Empower customers to manage their own bookings

Overview

The Customer Dashboard is a self-service portal that lets your customers view, reschedule, cancel, and download their bookings without contacting you directly. It reduces your administrative workload while giving customers full control over their appointments.

View Bookings

Upcoming and past appointments in one place

Reschedule

Pick a new date and time with live availability

Cancel

Self-service cancellation with policy enforcement

Customer dashboard showing the public booking form on the frontend

Setup Instructions

Follow these steps to set up the customer dashboard on your WordPress site. The process takes about five minutes.

1

Create a WordPress page

Go to Pages → Add New in your WordPress admin. Name it something like “My Bookings” or “Customer Dashboard.”

2

Add the dashboard shortcode

Paste the [booking_form] shortcode into the page editor. You can combine it with other shortcodes as described below.

3

Require user login

Go to WP Booking System → Settings → Customer Dashboard and enable “Require WordPress account.” Only logged-in users will be able to see their bookings. Guests are redirected to the WordPress login page.

4

Configure user role permissions

Under the same settings panel, choose which WordPress user roles can access the dashboard (e.g., Subscriber, Customer). You can also enable automatic account creation during the booking flow so new customers get a WordPress account when they first book.

Tip: Add a “My Bookings” link to your main navigation menu so customers can easily find their dashboard after logging in.

Customer-Facing Features

Once logged in, customers see a comprehensive dashboard with all of their booking information organized into clear sections.

View Upcoming Bookings

The main dashboard tab lists all future bookings sorted by date. Each entry shows:

  • Booking date and time slot
  • Service name and duration
  • Assigned staff member
  • Current status (Confirmed, Pending, Rescheduled)
  • Payment status (Paid, Pending, Partially Paid)

Booking History

A separate “Past Bookings” tab displays all completed and expired bookings. Customers can review the full history of their appointments, including dates, services, staff, and final payment amounts. This is useful for record-keeping and expense tracking.

Payment Status & History

Each booking card includes a payment section that displays:

Payment Status

Visual badge showing Paid, Pending, Partially Paid, or Refunded.

Amount Paid

Total amount paid with currency, including deposits and remaining balance.

Transaction ID

Stripe or WooCommerce transaction reference for the customer’s records.

Refund History

If a cancellation triggered a refund, the amount and date are shown.

Download Calendar File (iCal / ICS)

Each upcoming booking includes an “Add to Calendar” button that downloads a standard .ics file. Customers can import this into Google Calendar, Apple Calendar, Outlook, or any other calendar application. The file contains the booking date, time, service name, staff member, and location (if configured).

Rescheduling System

WP Booking System Pro supports three types of rescheduling, all of which re-check availability in real time before confirming the new time slot.

Customer-Initiated Rescheduling

From the dashboard, customers click the “Reschedule” button on any upcoming booking. They are taken through a streamlined flow:

1

Click “Reschedule” on the booking card.

2

A calendar appears showing only available dates and times for the same service and staff member.

3

The customer selects a new date and time slot.

4

Optionally, the customer provides a reason for rescheduling.

5

The system verifies availability one final time and confirms the reschedule. Both the customer and the staff member receive email notifications.

Token-Based Rescheduling (No Login Required)

Every booking confirmation email includes a unique reschedule URL with a secure token. Customers can click this link to reschedule without logging in. The token is valid for the lifetime of the booking and grants access only to that specific appointment.

https://yoursite.com/booking/reschedule/?token=abc123def456

Staff-Initiated Rescheduling

Staff members can reschedule bookings from their staff panel. The customer receives an email notification with the new date and time, plus a link to accept or contact support.

Admin Rescheduling

Administrators can reschedule any booking from the backend via Bookings → All Bookings. Admin rescheduling bypasses cancellation policy restrictions and can override staff availability if needed.

Reschedule Reason Tracking: Every reschedule records the original date/time, the new date/time, who initiated the change, and the reason provided. This history is visible in the admin booking detail screen and in booking export reports.
Automatic Availability Re-Check: When a customer selects a new time slot, the system performs a real-time availability check against staff schedules, existing bookings, buffer times, and capacity limits before confirming. This prevents double-bookings even if two customers attempt to reschedule at the same time.

Cancellation System

Give customers the ability to cancel bookings on their own, while protecting your business with configurable cancellation policies.

Customer Cancellation Flow

When a customer clicks “Cancel Booking” on the dashboard, they are asked to provide a cancellation reason (optional or required, depending on your settings). After confirming, the booking status changes to “Cancelled” and the time slot is released back into availability.

Cancellation reasons are tracked for reporting:

  • • Schedule conflict
  • • Found another provider
  • • No longer needed
  • • Custom reason (free text)

Cancellation Policies

Configure how far in advance customers must cancel to avoid fees. Go to WP Booking System → Settings → Cancellation Policy to set these rules:

SettingDescription
Minimum notice periodHours or days before the appointment that cancellation is allowed (e.g., 24 hours)
Cancellation feeOptional flat fee or percentage deducted from the refund
Late cancellationBlock cancellation entirely or allow with no refund if within the notice window
Max cancellationsLimit the number of times a customer can cancel per month or per service

Automatic Refund Processing

When a cancellation meets policy requirements and a refund is due, the system automatically processes it through the original payment gateway:

  • Stripe payments are refunded directly to the customer’s card via the Stripe API.
  • WooCommerce orders are set to “Refunded” status and the refund is processed through WooCommerce.
  • Partial refunds are calculated automatically when a cancellation fee applies.
  • Refund confirmation emails are sent to both the customer and the administrator.
Cancellation Notification Emails: When a booking is cancelled, emails are automatically sent to the customer (confirming the cancellation and any refund details), the assigned staff member, and optionally the site administrator. Customize these templates under WP Booking System → Email Templates.

Shortcodes for Public Pages

Use these shortcodes to embed booking functionality on any page, post, or widget area. Each shortcode supports attributes to customize its behavior.

[booking_form] — Full Booking Form

Displays the complete booking form with service selection, staff selection, date/time picker, and customer information fields.

AttributeDescriptionExample
servicePre-select a service by slugservice="massage"
staffPre-select a staff member by slugstaff="jane"
styleForm layout style (default, compact, modern)style="compact"
show_calendarShow inline calendar on load (true/false)show_calendar="true"
[booking_form service="haircut" staff="jane" style="modern" show_calendar="true"]
Full booking form embedded on a WordPress page via the booking_form shortcode

[booking_calendar] — Calendar Display

Displays an interactive calendar showing available and booked time slots. Useful for letting visitors check availability before booking.

AttributeDescriptionExample
viewCalendar view mode (month, week, day)view="week"
serviceFilter calendar by service slugservice="consultation"
staffFilter calendar by staff slugstaff="dr-smith"
Calendar display embedded on a WordPress page showing available time slots

[booking_services] — Service Listing Grid

Renders a responsive grid of all available services with images, descriptions, pricing, and a “Book Now” button.

AttributeDescriptionExample
categoryFilter services by category slugcategory="wellness"
limitMaximum number of services to displaylimit="6"
columnsGrid columns (1, 2, 3, or 4)columns="3"
show_booking_buttonShow or hide the booking button (true/false)show_booking_button="true"
Services listing grid displayed on the frontend with booking buttons

[booking_popup]

Renders a button that opens the full booking form in a popup overlay.

text — Button label (default: “Book Now”)
service — Pre-select a service
css_class — Custom CSS class for styling
[booking_popup text="Schedule Now" service="massage"]

[booking_button]

Renders a simple inline button that links directly to the booking page for a specific service.

text — Button label (default: “Book Now”)
service — Service slug to link to
css_class — Custom CSS class for styling
[booking_button text="Book Haircut" service="haircut" css_class="my-btn"]

Form Builder & Customization

The built-in form builder lets you customize every aspect of the booking form without writing code. Access it under WP Booking System → Form Builder.

Color Schemes

Choose from preset color schemes or define custom brand colors for buttons, headers, and accents.

Layout Templates

Select from horizontal, vertical, or card-based layouts. Responsive designs adapt to all screen sizes.

Field Customization

Add, remove, reorder, and make fields required or optional. Supports text, dropdown, checkbox, and file upload fields.

Live Preview

See changes in real time as you customize the form. Preview desktop and mobile views side by side.

Shortcode Generation: After customizing your form in the builder, click “Copy Shortcode” to get the exact shortcode with all your settings baked in. Paste it on any page to display your custom form.

Email Notification Templates

The following email templates are triggered by dashboard actions. Customize them under WP Booking System → Email Templates.

Booking Rescheduled (to Customer)

Sent when a booking is rescheduled by the customer, staff, or admin. Includes the old date/time, new date/time, and reschedule reason.

{old_date} {old_time} {new_date} {new_time} {reschedule_reason} {reschedule_by}

Booking Rescheduled (to Staff)

Notifies the assigned staff member about the rescheduled appointment.

{customer_name} {old_date} {old_time} {new_date} {new_time} {service_name}

Booking Cancelled (to Customer)

Confirms the cancellation to the customer, includes refund details if applicable.

{cancellation_reason} {refund_amount} {refund_status} {booking_date} {service_name}

Booking Cancelled (to Admin)

Notifies the administrator about the cancellation for record-keeping.

{customer_name} {customer_email} {cancellation_reason} {service_name} {booking_date}

Shortcode Quick Reference

ShortcodePurposeKey Attributes
[booking_form]Full inline booking formservice, staff, style, show_calendar
[booking_calendar]Interactive availability calendarview, service, staff
[booking_services]Service listing gridcategory, limit, columns, show_booking_button
[booking_popup]Popup booking buttontext, service, css_class
[booking_button]Simple booking link buttontext, service, css_class
Important: Rescheduling and cancellation buttons are only visible on upcoming bookings that are within the allowed policy window. If a customer does not see these options, check your cancellation policy settings under WP Booking System → Settings → Cancellation Policy.

Dashboard Ready!

Your customer dashboard is now set up. Customers can view, reschedule, cancel, and download their bookings from a single self-service page.

Next: Troubleshooting Guide