Service Booking Pro
Multi-step WordPress service booking wizard with packages, extras, discounts and dynamic forms. Autoloaded OOP architecture with repository pattern and REST API.
by Mohammad Freihat · github.com/freihat1993/service-booking-pro · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/freihat1993/service-booking-pro/archive/refs/heads/main.zipReadme
Service Booking Pro
A multi-step booking / quote form for WordPress — service categories, bundles, extras and pricing periods, with an admin panel and email notifications, all from a single shortcode.
Version: 2.11.5 · Requires: WordPress 6.0+, PHP 8.0+ · License: GPL-2.0-or-later
Overview
Service Booking Pro renders a multi-step booking / quote form via the [service_booking_pro] shortcode. Visitors move through service categories, choose packages, add extras, and submit a request or quote — with pricing built up live and re-verified on the server.
Features
- Service categories with sub-categories, package groups and bundles
- Extra services with checkbox / quantity types and one-off, monthly or annual pricing
- Live selection sidebar and order summary
- Optional discount flow (quote vs. discount submissions)
- Admin panel with a tabbed settings screen: categories builder, form builder, design (colors / fonts), currencies, email templates, and reCAPTCHA v2
- Submissions stored in a custom table with an admin list and detail view
- Email notifications — client + admin HTML emails with merge tags
- Shadow-DOM frontend so theme CSS cannot break the form
- Bundled Font Awesome (served locally, not from a third-party CDN)
Security
Prices, totals and discounts are re-computed server-side from saved settings on every submission — client-sent amounts are never trusted. Also includes a settings-tab include allowlist, strict hex validation for design colors, icon-class whitelisting in the frontend renderer, page-cache-safe CSRF nonces, and reCAPTCHA v2.
Structure
service-booking-pro.php Bootstrap
includes/
├── class-sbp-db.php Custom table + schema
├── class-sbp-settings.php Settings storage
├── class-sbp-shortcode.php Frontend render (shadow DOM)
├── class-sbp-ajax.php AJAX submission + nonce refresh
├── class-sbp-submission.php Server-side price verification + storage
├── class-sbp-email.php Client/admin notifications
└── class-sbp-dummy-data.php Demo data loader
admin/
├── class-sbp-admin.php
└── views/
├── settings.php
├── settings-tabs/ general, service_categories, pricing,
│ form_builder, design, currencies,
│ email_templates, security, summary_order
├── submissions-list.php
└── submission-detail.php
assets/ Frontend CSS/JS + bundled Font Awesome
Installation
- Upload the plugin zip via Plugins → Add New → Upload Plugin, or copy the
service-booking-profolder to/wp-content/plugins/. - Activate it.
- Open Service Booking Pro → Settings, configure categories (or load the demo data), then place
[service_booking_pro]on any page.
Usage
[service_booking_pro]
Author
Mohammad Freihat — WordPress developer, Amman, Jordan GitHub · LinkedIn
License
GPL-2.0-or-later. See LICENSE.