Complete Documentation

This guide covers installing, configuring, customizing, and testing the Booking Pro theme and the Booking System plugin — from first setup through every major admin screen and front-end feature.

WAMP / localhost WordPress 6.0+ PHP 7.4+ Customizer-driven Marketplace v1.4.0 Staff Web Panel

1. Overview — what this product is

Booking Pro is a premium niche WordPress theme for hotel, villa, tour, activity, car, and package businesses. Design, catalog listings, Customizer options, page templates, and marketing content live in the theme.

Booking System is a separate, independent plugin that provides the booking engine: availability, pricing, cart, checkout, payments, customers, coupons, taxes, reviews, wishlist, map search, reports, iCal, housekeeping, and notifications.

What the theme handles

  • Rooms, Villas, Tours, Activities, Cars, Travel Bundles CPTs
  • Homepage Section Manager (enable / reorder / design)
  • Innerpage and Single Catalog Customizer
  • Demo setup, sticky book bar, SEO schema helpers
  • Marketing CPTs (Team, Offers, Stay Packages, and more)

What the plugin handles

  • Create and manage bookings
  • Availability calendar and rules
  • Dynamic price calculation
  • Payments (Stripe, PayPal, Razorpay, bank, pay-at-hotel, and more)
  • Guest portal, cart, shortcodes, REST API
  • Staff Web Panel — front-end login for hotel staff (see §35)
Important: The theme alone does not complete bookings. The plugin must be active. Shortcodes such as [booking_form] only work when the plugin is enabled.

2. Architecture (how they connect)

┌─────────────────────────────────────────────────────────┐
│  WordPress site (http://localhost/test/)                │
│                                                         │
│  ┌──────────────────────┐   ┌─────────────────────────┐ │
│  │ Theme: booking-pro   │   │ Plugin: booking-system  │ │
│  │ prefix: BPro_ / bpro │   │ prefix: BS_ / bs_       │ │
│  │                      │   │                         │ │
│  │ CPT catalog + meta   │──▶│ reads item_type + id    │ │
│  │ templates / CSS      │   │ availability / pricing  │ │
│  │ Customizer UI        │   │ creates booking rows    │ │
│  └──────────────────────┘   └─────────────────────────┘ │
│              │                          │               │
│              └──────── front shortcodes ┘               │
│                                                         │
│  Staff Web Panel: /staff-panel/  (plugin BS_Staff_Panel) │
│  → WordPress login + role menus + admin view reuse      │
└─────────────────────────────────────────────────────────┘
  

Item type mapping

Front / plugin item_typeTheme CPTTypical archive slug
roombpro_room/rooms/
villabpro_villa/villas/
tourbpro_tour/tours/
activitybpro_activity/activities/
carbpro_car/cars/
package (bookable)bpro_bundle/bundles/
Avoid confusion:
  • bpro_bundle = bookable Travel Bundle → plugin item_type=package
  • bpro_package = marketing “Stay Packages” (content CPT, not the booking engine package)

3. Requirements

ItemMinimumNotes
WordPress6.0+Tested toward 6.7
PHP7.4+Local WAMP example: C:\wamp64\bin\php\php7.4.33\php.exe
MySQL / MariaDBAny modern versionPlugin creates wp_bs_* tables
PermalinksPretty permalinksPost name recommended
HTTPSRecommended on live sitesRequired for Stripe / PayPal / Razorpay in production
OptionalWooCommerceOnly if you want the WC checkout bridge

Local paths (this project)

  • Site: http://localhost/test/
  • Theme: wp-content/themes/booking-pro/
  • Plugin: wp-content/plugins/booking-system/

4. Installation (step by step)

Prepare WordPress

Start WAMP (Apache + MySQL). Open the site in a browser. Log in to admin at /wp-admin/.

Activate the plugin

Plugins → Installed Plugins → Booking System → Activate.

On activation, database tables are created (BS_Install). If an older DB version exists, maybe_upgrade() runs.

Activate the theme

Appearance → Themes → Booking Pro → Activate.

After activation you may see admin notices:

  • “Setup Demo Now” — until demo content is installed
  • “Booking System plugin required” — if the companion plugin is not active (inc/plugin-notice.php)

Flush permalinks

Settings → Permalinks → Save Changes (no need to change settings). This is required for CPT archives such as /rooms/ and /activities/.

5. First-run setup (recommended order)

  1. Booking System → Settings — currency, emails, pages, gateways (see §23).
  2. Appearance → Setup Demo — sample rooms, pages, and menus (see §6).
  3. Appearance → Customize — enable and order homepage sections.
  4. Settings → Reading — set Homepage to a static page (demo usually sets the Front Page).
  5. Appearance → Menus — confirm the Primary menu (demo often attaches links).
  6. Run one real booking test: Room single → dates → checkout → confirm it appears under admin Bookings.
  7. Staff Web Panel — open /staff-panel/, log in as admin, confirm dashboard loads (see §35).
Traveler pages (Activities, Cars, Bundles, Map) may be auto-created when you visit WP Admin (bpro_traveler_ensure_pages).

6. Demo content

Path: Appearance → Setup Demo (inc/demo-setup.php).

What typically gets installed

  • Sample Rooms / Villas / Tours (plus traveler items if seeded)
  • Sample Offers and Stay Packages (marketing CPTs)
  • Homepage, About, Contact, Rooms, Booking, and related pages
  • Page template assignments
  • Menus, sample Customizer content, and section items
  • Brand colors (linen / charcoal palette — see §16)
  • Footer widget area footer-1 cleared (removes default Archives / Categories widgets)

Buttons

ActionMeaning
Install demoCreate content for the first time
ReinstallReset / recreate demo-aware content
Be careful reinstalling demo content on a live client site — it can create duplicate pages and sample data. Prefer development or staging environments.

The plugin also offers seeding under Booking System → Tools → Seed demo data.

If Special Offers or Stay Packages still show placeholder text on the homepage, run Reinstall demo on a staging site, or add content under WP Admin → Offers / Packages.

7. Marketplace package (selling the product)

Booking Pro v1.4.0 is packaged for commercial distribution. The theme alone is not enough — always ship the Booking System plugin in the same bundle.

What buyers receive

File / folderPurpose
booking-pro/Theme (design, CPTs, Customizer, demo setup)
booking-system/Required plugin (availability, checkout, payments)
readme.txtWordPress-standard theme readme (inside theme folder)
screenshot.pngTheme preview image (1200×900 recommended)
docs/BOOKING-PRO-COMPLETE-GUIDE.htmlThis documentation (includes §35 Staff Web Panel)

Recommended ZIP structure

booking-pro-bundle-v1.4.0.zip
├── booking-pro/              ← upload to wp-content/themes/
├── booking-system/           ← upload to wp-content/plugins/
├── documentation/
│   └── BOOKING-PRO-COMPLETE-GUIDE.html
└── LICENSE.txt

Before you publish

  1. Update Theme URI and Author URI in style.css (replace https://bookingpro.theme with your store URL).
  2. Run a fresh WordPress install test: theme + plugin → Setup Demo → one full booking.
  3. Install the Theme Check plugin locally and fix any reported warnings.
  4. Provide license terms (GPL theme + your commercial plugin license if applicable).
  5. Host a live demo with both packages active.
  6. Document the Staff Web Panel URL for buyers (/staff-panel/).
Branding (v1.4.0): Product name is unified as Booking Pro (text domain booking-pro, folder booking-pro). Older docs may reference “TravelCraft” — ignore that name.

8. Theme-related admin menus

MenuPurpose
Rooms / Villas / ToursCore bookable catalog
Activities / Cars / Travel BundlesTraveler catalog
PropertiesOptional property grouping CPT
Testimonials, Team, Services, AmenitiesHomepage marketing content
Offers, Stay PackagesPromo / marketing packages
Appearance → CustomizeAll visual options
Appearance → Setup DemoOne-click demo
Appearance → Menus / WidgetsNavigation

9. Catalog custom post types

Core

  • bpro_room — supports title, editor, thumbnail, excerpt
  • bpro_villa
  • bpro_tour
  • bpro_property — properties

Taxonomies (rooms example)

  • bpro_room_type — Room Types
  • bpro_room_category — categories
  • Amenity-related taxonomies (see inc/post-types.php)

Single template location

Singles live in single-pages/:

  • single-bpro_room.php
  • single-bpro_villa.php
  • single-bpro_tour.php
  • single-bpro_activity.php
  • single-bpro_car.php
  • single-bpro_bundle.php

Loader: inc/setup.phpsingle_template filter.

Shared markup: template-parts/catalog/single.php (gallery, booking sidebar, reviews, wishlist, quick facts — controlled by Customizer toggles).

10. Content / marketing CPTs

File: inc/content-post-types.php

CPTUse
bpro_testimonialHomepage testimonials section
bpro_teamTeam section / Team page
bpro_serviceServices grid
bpro_amenityAmenities icons / list
bpro_offerSpecial offers
bpro_packageStay Packages (marketing — not the bookable bundle)

11. Room / Villa / Tour field groups

Fields are centralized. Room example: inc/rooms/class-room-fields.php. Meta prefix: _bpro_room_*. The plugin catalog layer reads price and inventory from these fields.

Room UI groups

Details
code, status, featured, short description, video
Inventory
units / stock-style fields
Capacity & Beds
guests, beds
Pricing
base price, extra guest, and more
Seasonal Pricing
date ranges
Availability
blocked dates + booking mode / lat / lng
Amenities / Meals
plans and features
Guest rules / Check-in
policies
Cancellation / SEO / Media
advanced

Booking mode (all major catalog types)

  • Instant book — booking status comes from the Instant book status setting (default: confirmed)
  • Request to book — typically a pending / request flow

Map fields: Latitude, Longitude, Map address label — used by the Map Search shortcode.

12. Traveler types — Activities, Cars, Bundles

Files: inc/traveler/register.php, class-traveler-meta.php, frontend.php.

Activity (bpro_activity)

  • Adult price, Child price
  • Max guests per slot, Duration
  • Available dates (one per line YYYY-MM-DD)
  • Booking mode, lat/lng, meeting point

Car / Transfer (bpro_car)

  • Price per day, optional one-way transfer price
  • Fleet count, max passengers
  • Vehicle type: sedan / SUV / van / luxury / airport transfer
  • Booking mode and map fields

Travel Bundle (bpro_bundle → item_type package)

  • Package pricing and linked inventory fields (see meta registration)
  • Booked through the plugin package handlers

Front pages auto-created

  • Activities → template page-activities.php
  • Cars → page-cars.php
  • Bundles → page-bundles.php
  • Map & Wishlist → page-map.php

13. Homepage Section Manager

Appearance → Customize → Homepage Section Manager (priority ~30).

Section Order

Drag-and-drop order control. Stored as JSON in theme mod bpro_homepage_sections.

Per-section options (every section)

  • Enable section checkbox
  • Design variant select (Design 01, 02… auto-discovered from files)
  • Content fields: title, subtitle, description, image, buttons, limits, columns, and more
  • Hero: slides repeater (“Add new slide”)
  • Some sections: items / gallery repeaters
  • Color controls where registered

Available homepage sections

IDLabelTypical fields
heroHeroslides, title, CTA, video
booking-searchBooking Searchtitle, subtitle
aboutAbouttext + image + button
rooms / villas / toursCatalog gridstitle, limit, columns
activities / cars / bundlesTraveler gridstitle, limit, columns
map-searchMap Searchtitle, subtitle → plugin map
amenities / servicesFeatureslimit
destinations / offers / packagesMarketingitems / limit
gallery / testimonials / team / faqSocial proofimages / limit / items
blog / cta / newsletter / contactConversionCTA + contact details

Design file convention

template-parts/sections/{section}/{section}-01.php
assets/css/sections/{section}/{section}-01.css

When you add a new design file, it appears automatically as a Customizer choice.

Layout notes (v1.4.0):
  • booking-search-01 — white panel overlaps the hero; uses [booking_search] shortcode inside booking-search-01__panel
  • map-search-01 — dedicated map canvas (~480px height) with Leaflet markers from the plugin
  • hero-01 — slider nav sits above the booking form (z-index stack)

Templates: template-parts/sections/booking-search/booking-search-01.php, map-search/map-search-01.php

14. Innerpage Manager

Customize → Innerpage Manager — sections, titles, and colors per page template.

Covered templates include:

  • About, Contact, FAQ, Gallery, Services, Amenities, Team, Testimonials
  • Rooms, Villas, Tours listing pages
  • Activities, Cars & Transfers, Travel Bundles
  • Map & Wishlist, Booking, Destinations, Offers, Packages, Full width, and more

Listing pages often include a limit control (defaults 12 / 9).

CSS scope uses body classes such as bpro-page-rooms (see inc/innerpage-customizer.php).

15. Single Catalog Manager

Customize → Single Catalog Manager (priority ~31).

Types: Single Room, Villa, Tour, Activity, Car/Transfer, Travel Bundle.

Section toggles (every type)

KeyBlock
heroHero header
galleryGallery
overviewOverview / description
taxonomiesClassification & amenities
detailsFull details accordion
bookingBooking form sidebar
highlightsHighlights list
quick_factsQuick facts
reviewsReviews block
wishlistWishlist button
stickySticky book bar

Extras: CTA text, layout, titles, color controls. Body classes: bpro-single-room, bpro-single-activity, and so on.

16. Typography & global look

  • Customize → Typography — fonts / sizes (inc/typography-customizer.php)
  • Customize → Brand Colors — live CSS variables on the front page (inc/customizer.php)
  • Design tokens: assets/css/global.css (CSS variables)
  • Header / footer design variants under template-parts
  • Google Fonts: Cormorant Garamond (display) + Outfit (body) — loaded from fonts.googleapis.com

Default color palette (v1.4.0 — linen / charcoal)

Token / useDefault
Body background#f3eee7 (linen)
Surface / cards#fffcf8
Primary / headings#313131 (charcoal)
Secondary / dark sections#252525
Accent / labels#8a8178
Buttonsbg #313131, text #f3eee7, hover #000000
Borders#ddd7ce

Demo setup and Customizer both seed these values. Buyers can override every color under Customize → Brand Colors.

17. Core templates (404, search, archives)

Added in v1.4.0 for marketplace / Theme Check readiness.

Error & search

TemplateFileWhen used
404 Not Found404.phpMissing URLs — branded message + search form + home link
Search resultssearch.php?s=keyword blog / site search

Catalog archives (native CPT URLs)

URLTemplateLayout
/rooms/archive-bpro_room.phpCard grid via template-parts/catalog/archive-grid.php
/villas/archive-bpro_villa.phpSame — villa cards with bedrooms / guests
/tours/archive-bpro_tour.phpSame — duration + price
/activities/archive-bpro_activity.phpPlugin shortcode list
/cars/archive-bpro_car.phpPlugin shortcode list
/bundles/archive-bpro_bundle.phpPlugin shortcode list

Room / villa / tour archives enqueue the matching section CSS (rooms-01.css, etc.) for consistent styling with homepage cards. Inner listing pages (e.g. page template “Rooms”) remain available as an alternative layout.

18. Page templates

Folder: page-templates/. On the page edit screen, use the Template dropdown.

TemplateFileTypical content
Aboutpage-about.phpAbout section
Contactpage-contact.phpContact + form
Rooms / Villas / Tourspage-rooms.php …Catalog grids
Activities / Cars / Bundlespage-activities.php …Traveler grids
Map & Wishlistpage-map.php[booking_map] + wishlist
Bookingpage-booking.phpSearch + [booking_form]
FAQ / Gallery / Team / …respective filesMatching sections
Full Widthpage-full-width.phpNo sidebar shell

19. Theme presentation shortcodes

Every homepage section ID becomes a shortcode:

[hero design="1"]
[rooms design="2" limit="6" columns="3"]
[booking-search]
[activities]
[map-search]

Aliases: [hero1], [rooms02], and similar (inc/shortcodes.php).

Booking logic shortcodes belong to the plugin (for example [booking_form]). Theme shortcodes only render UI sections.

20. Theme file map (quick reference)

booking-pro/
├── functions.php          # bootstrap + requires (BPRO_VERSION)
├── style.css              # theme header + marketplace metadata
├── readme.txt             # WordPress.org-style readme
├── screenshot.png         # theme preview image
├── 404.php / search.php   # error + search templates (v1.4.0)
├── archive-bpro_*.php     # room / villa / tour / activity / car / bundle archives
├── front-page.php         # homepage sections
├── header.php / footer.php
├── single-pages/          # CPT singles
├── page-templates/        # inner pages
├── template-parts/
│   ├── catalog/single.php
│   ├── catalog/archive-grid.php   # shared archive cards (v1.4.0)
│   ├── header/ footer/
│   └── sections/…         # homepage designs
├── assets/css|js|…
└── inc/
    ├── setup.php, enqueue.php, helpers.php
    ├── customizer.php, innerpage-customizer.php, single-customizer.php
    ├── post-types.php, content-post-types.php, catalog*.php
    ├── rooms/ villas/ tours/ traveler/
    ├── demo-setup.php, demos.php, plugin-notice.php
    └── sticky-book.php, forms.php, schema.php…

21. Booking System plugin — overview

  • Theme: 1.4.0 · Plugin: 1.4.0 · DB version: 1.2.0
  • Main file: booking-system/booking-system.php
  • Text domain: booking-system
  • Works with any theme via shortcodes / REST / PHP helpers — best paired with Booking Pro

Core classes (includes/)

  • BS_Booking — create/update bookings
  • BS_Availability — date conflicts
  • BS_Pricing — totals, rules
  • BS_Cart / checkout / guest portal
  • BS_Payment / gateways / online checkout
  • BS_Coupon, BS_Tax, BS_Service
  • BS_Wishlist, BS_Reviews, BS_Map_Search
  • BS_Packages — package/bundle booking
  • BS_iCal, BS_Housekeeping, BS_Reports
  • BS_Notification, messaging, cron
  • BS_REST_API, BS_Ajax
  • BS_WooCommerce bridge
  • BS_Staff_Panel — front-end staff workspace + role menus
  • BS_Capabilities — staff roles and permissions

22. Plugin admin menus

Top-level menu: Booking System (calendar dashicon).

SubmenuTypical capabilityWhat to do here
Dashboardbs_manage_bookingsOverview stats
Bookingsbs_manage_bookingsList / create / edit / cancel
Calendarbs_manage_bookingsVisual calendar
Customersbs_manage_customersGuest records
Pricingbs_manage_pricingPricing rules
Servicesbs_manage_pricingAdd-on services
iCal Syncbs_manage_bookingsImport external calendars
Housekeepingbs_manage_housekeepingRoom readiness tasks
Couponsbs_manage_couponsDiscount codes
Paymentsbs_manage_paymentsPayment records / manual entry
Taxesbs_manage_settingsTax rates
Notificationsbs_manage_settingsEmail/SMS templates
Reportsbs_view_reportsRevenue / occupancy + CSV
Reviewsbs_manage_bookingsApprove / moderate reviews
Settingsbs_manage_settingsAll global options
Toolsbs_manage_settingsSeed / maintenance
Rooms / Villas / Tours admin lists live under the theme CPT menus. The plugin intentionally leaves catalog ownership to the theme when bpro_room exists.
Staff Web Panel (§35): Most day-to-day booking screens are also available at /staff-panel/ for non-admin staff — without giving them full WordPress wp-admin access. wp-admin still has extra screens (Coupons, Taxes, iCal, Tools, Services, Reviews) that are not in the panel menu.

23. Plugin Settings — every option in detail

Path: Booking System → Settings. Stored in option key bs_settings.

A. General

OptionField nameDefault / notes
Currency codecurrencyINR
Currency symbolcurrency_symbol
Currency positioncurrency_positionbefore / after
Booking number prefixbooking_number_prefixBK → BK1001…
Default statusdefault_statuspending or confirmed
Instant book statusinstant_book_statusStatus used when a listing is Instant book
Auto-approve reviewsreviews_auto_approveCheckbox — publish immediately
Min / Max nightsmin_nights / max_nightsTypically 1 / 30
Advance booking hoursadvance_booking_hours0 = no cutoff
Reminder days beforereminder_days_beforeCron reminders
Deposit %deposit_percent0 = full amount depending on flow
Admin emailadmin_emailBooking alerts
Checkout pagecheckout_pageWordPress page ID select
Confirmation pageconfirmation_pageThank-you page

B. Payments

OptionNotes
Enabled gatewaysCheckboxes from registered gateways (Pay at Hotel + filtered list: Stripe, PayPal, Razorpay, bank, and more)
Bank transfer instructionsText shown to the guest
Stripe secret + publishable keysLive or test keys
PayPal client ID + secretPlus Sandbox checkbox
Razorpay key ID + secretIndia-friendly payments

C. SMS / WhatsApp

OptionNotes
Enable SMS (Twilio)sms_enabled
Twilio Account SID / Auth Token / FromCredentials
Enable WhatsAppMeta Cloud API
WhatsApp token + phone number IDCloud API
Clicking Save Settings runs BS_Settings::sanitize() — strings, emails, integers, and gateway arrays are cleaned before storage.

24. Booking flow (how a booking is created)

Guest chooses a listing (Room single / search results / map).
Dates + guests — availability check (AJAX / REST /availability).
Price calculation — base + seasonal rules + extras + tax − coupon (/price).
Cart / checkout form — customer details and gateway selection.
Booking createBS_Booking::create → status from booking mode + settings.
Payment record — offline pending or online gateway redirect/intent.
Confirmation page + email/SMS templates + admin Bookings list.

Creating a booking from admin

Booking System → Bookings → Add: item_type, item_id, check-in/out, adults/children, status, customer fields.

25. Availability & pricing

Availability

  • Table: wp_bs_availability (plus booking date ranges that block inventory)
  • Day items (tours/activities) vs stay items (rooms/villas): helpers bs_is_day_item(), bs_is_stay_item()
  • Calendar UI: shortcode [availability_calendar] and admin Calendar

Pricing rules

Booking System → Pricing — seasonal / weekend / length-of-stay style rules via BS_Pricing::save_rule.

Listing base price comes from theme meta (for example room base price).

26. Payments & gateways

  • Base gateway is filterable: Pay at Hotel (offline)
  • Additional gateways register via the bs_payment_gateways filter / BS_Gateways / online checkout class
  • Enable them in Settings and add API keys
  • Admin Payments: record manual payments
  • Invoices: BS_Invoice templates
On localhost, live Stripe/PayPal may fail — use sandbox keys, or test the flow with Pay at Hotel.

27. Coupons, taxes, services

Coupons

Create a code, discount type/amount, usage limits, and validity. Applied at checkout.

Taxes

Tax rates table — applied to the pricing total.

Services (add-ons)

Breakfast, airport pickup, and similar. Attached to bookings; stored in booking_services.

28. Notifications

Booking System → Notifications — edit templates (BS_Notification::update_template).

  • Email on new booking / confirmation / cancellation
  • Optional SMS (Twilio) and WhatsApp when enabled in Settings
  • Reminders via cron using reminder_days_before

Tip: use WP Mail SMTP or Mailhog locally, otherwise emails may appear to “disappear”.

29. Wishlist, reviews, map search

Wishlist

  • Class: BS_Wishlist — logged-in user meta + guest cookie
  • AJAX heart toggle on grids / singles
  • Shortcode: [booking_wishlist]

Reviews

  • Table: wp_bs_reviews
  • Shortcode: [booking_reviews] (usually in item context)
  • Admin: Booking System → Reviews
  • Setting: auto-approve on/off

Map search

  • Leaflet-based UI
  • Shortcode: [booking_map]
  • Requires lat/lng on listings
  • Homepage section map-search and Map page template

30. iCal, housekeeping, reports

iCal Sync

Import an external calendar URL for a given item_type + item_id. Optionally save the feed for re-import.

Housekeeping

Post-checkout cleaning / room readiness operations for hotels.

Reports

Occupancy / revenue views plus CSV export.

31. Plugin shortcodes (complete list)

ShortcodePurposeKey attributes
[booking_search]Search form (+ results)type, design, show_results
[availability_search]Alias of searchsame
[booking_form]Main book widgetitem_type, item_id, layout=checkout|widget|popup|sticky|sidebar
[availability_calendar]Month calendaritem_type, item_id, month
[room_list] / [room_grid]Rooms gridlimit, columns…
[villa_list] / [tour_list]Villa / tour grids
[activity_list] / [car_list] / [package_list]Traveler grids
[booking_items]Generic itemstype
[room_single] etc.Single card/blockid
[booking_cart]Cart
[booking_checkout]Checkout
[booking_confirmation]Thank you
[my_bookings]Guest portal
[booking_wishlist]Wishlist page
[booking_reviews]Reviewsitem context
[booking_map]Map search
[booking_summary] / price aliasesTotals

Example page content


[booking_checkout]


[booking_confirmation]


[my_bookings]


[booking_map]
[booking_wishlist]

32. REST API

Namespace: booking-system/v1

MethodRouteUse
POST/wp-json/booking-system/v1/availabilityCheck dates
POST/wp-json/booking-system/v1/priceQuote total
POST/wp-json/booking-system/v1/bookingsCreate booking
GET/wp-json/booking-system/v1/items/{type}List items
GET/wp-json/booking-system/v1/items/{type}/{id}Single item

Local example: http://localhost/test/wp-json/booking-system/v1/items/room

33. Database tables

Prefix is usually wp_bs_ (via bs_table()).

  • rooms, villas, tours (legacy/plugin mirrors if used)
  • customers
  • bookings, booking_items
  • availability
  • pricing_rules
  • payments
  • coupons, coupon_usage
  • services, booking_services
  • taxes
  • notifications
  • tour_dates
  • reviews

34. WooCommerce integration

BS_WooCommerce::init — if WooCommerce is active, gateways / checkout bridging can be filtered in.

  • Optional — WooCommerce is not required for core theme booking
  • Test that with WC active there is no conflict between WC cart and booking cart shortcodes

35. Staff Web Panel — complete guide

The Staff Web Panel is a front-end workspace for hotel and property staff. It uses normal WordPress login (username + password) but shows a dedicated booking UI instead of the full wp-admin dashboard. Staff see only the menus their role allows.

Why use it? Front desk and housekeeping teams can manage bookings and room status without access to WordPress settings, plugins, themes, or unrelated admin screens.

A. URLs and access

URLPurpose
https://yoursite.com/staff-panel/Dashboard (default landing after login)
…/staff-panel/login/Staff sign-in screen
…/staff-panel/logout/Logs out and redirects to login
…/staff-panel/bookings/Bookings list / add / edit
…/staff-panel/calendar/Visual availability calendar
…/staff-panel/customers/Guest records
…/staff-panel/payments/Record manual payments
…/staff-panel/housekeeping/Room readiness board
…/staff-panel/pricing/Pricing rules
…/staff-panel/settings/Global plugin settings
…/staff-panel/reports/Revenue / occupancy + CSV export
…/staff-panel/users/Create staff accounts (role-restricted)

On subdirectory installs (e.g. http://localhost/test/) the path is /test/staff-panel/. Pretty URLs require permalinks to be flushed once (Settings → Permalinks → Save).

Fallback query-string URL (if rewrites fail):

?bs_staff_panel=1&bs_staff_page=login

B. Who can log in?

Only users with staff panel access are allowed past the login screen:

  • Administrator — full access
  • Booking Manager (bs_manager)
  • Front Desk (bs_frontdesk)
  • Housekeeper (bs_housekeeper)
Standard WordPress roles such as Editor or Subscriber cannot access the panel even if they know the URL — they see “Your account does not have staff panel access.”

C. Roles, capabilities & menu access

RolePanel menus visibleCan create users?
Administrator All 10 menus (Dashboard, Bookings, Calendar, Customers, Payments, Housekeeping, Pricing, Settings, Reports, Staff Users) Yes — all roles including Administrator
Booking Manager Same as Administrator (all panel screens) Yes — Front Desk & Housekeeper only
Front Desk Dashboard, Bookings, Calendar, Customers, Payments, Reports No
Housekeeper Dashboard, Bookings (view), Calendar, Housekeeping No

Capability reference

CapabilityUsed for
bs_manage_bookingsBookings, calendar
bs_manage_customersCustomers screen
bs_manage_paymentsPayments screen
bs_manage_housekeepingHousekeeping board
bs_manage_pricingPricing rules
bs_manage_settingsSettings screen
bs_view_reportsReports + CSV export
create_users / edit_usersStaff Users screen (Manager + Admin)

D. Login flow

1. Open login

Visit /staff-panel/login/ or click the staff panel link from the theme admin notice when Booking System is active.

2. Enter WordPress credentials

Username or email + password. Optional Remember me sets a persistent cookie.

3. Role check

Plugin verifies the user has bs_manage_bookings, bs_manage_housekeeping, or manage_options.

4. Redirect to dashboard

Successful login lands on /staff-panel/. Failed login shows an error on the login form.

E. Panel screens (what each menu does)

MenuFunctionKey actions
DashboardKPI overviewToday’s bookings, pending/confirmed counts, revenue, recent bookings table, most-booked items
BookingsReservation managementSearch/filter, add new booking, edit status, view totals and payment state
CalendarVisual occupancyMonth view by room/villa/tour; click busy cells to cycle status (pending → confirmed → checked_in)
CustomersGuest CRMSearch guests by name/email; view booking history per customer
PaymentsPayment ledgerRecord manual/offline payments against a booking (pay-at-hotel, bank, etc.)
HousekeepingRoom status boardSet per-room status: Clean, Dirty, In progress, Inspected, Maintenance
PricingDynamic rulesSeasonal/weekend pricing rules (same as wp-admin Pricing)
SettingsGlobal optionsCurrency, gateways, emails, checkout pages — same fields as §23
ReportsAnalyticsDaily revenue chart, occupancy by month, top items, export bookings CSV
Staff UsersTeam accountsCreate username/email/password + assign role; lists existing staff
Not in the panel (wp-admin only): Coupons, Taxes, Services, iCal Sync, Notifications templates, Reviews moderation, Tools/seed, and theme catalog CPTs (Rooms/Villas/Tours). Administrators still use Booking System in wp-admin for those screens.

F. Creating staff users

Path: Staff Panel → Staff Users (or wp-admin user screen for advanced edits).

  1. Fill Username, Email, and Password (required).
  2. Optional: first name / last name.
  3. Select Role from the dropdown (limited by your own role — see table in §35-C).
  4. Click Create user. The new user signs in at /staff-panel/login/ with the same credentials.
Passwords are set at creation time. To reset a password later, use Users → All Users in wp-admin or a password-reset plugin.

G. Design & UX (v1.4.0)

  • Matches Booking Pro linen / charcoal palette (§16)
  • Fonts: Cormorant Garamond (headings) + Outfit (UI)
  • Dark sidebar with SVG icons per menu item
  • Sticky top bar: page title, “View site” link, user avatar
  • Card-style KPIs, tables, and filter bars
  • Mobile: slide-out sidebar + hamburger menu
  • WordPress admin bar is hidden inside the panel
  • Site custom logo (Customizer) appears in sidebar and login if set

H. Technical implementation

ItemLocation
Router / login / rolesbooking-system/includes/class-staff-panel.php
Capabilities & rolesbooking-system/includes/class-capabilities.php
Panel shell templatebooking-system/staff-panel/layout.php
Login templatebooking-system/staff-panel/login.php
User management viewbooking-system/staff-panel/users.php
Inner screensReuses booking-system/admin/*/view.php (same data as wp-admin)
Stylesassets/css/staff-panel.css, assets/css/admin.css
Mobile JSassets/js/staff-panel.js
URL helpersbs_is_staff_panel(), bs_booking_admin_url() in includes/functions.php
Rewrite rulesstaff-panel/, staff-panel/{page}/ registered on init
Theme notice linkbooking-pro/inc/plugin-notice.php — links to panel when plugin active

Form posts (save booking, record payment, update settings, etc.) are handled by the same BS_Admin::handle_actions() logic as wp-admin. Data is stored in the same wp_bs_* tables — there is no separate database for the panel.

I. Staff panel vs wp-admin

Use Staff Panel for

  • Front desk daily operations
  • Housekeeping status updates
  • Manager on-site tablet / phone
  • Staff who should not see WordPress menus

Use wp-admin for

  • Plugin/theme updates
  • Coupons, taxes, iCal, notifications
  • Catalog editing (Rooms/Villas/Tours CPTs)
  • Demo setup, Customizer, user password resets

J. QA checklist (staff panel)

  • /staff-panel/login/ loads branded login page
  • Admin login → dashboard KPIs and recent bookings show
  • Each menu link opens without PHP fatal error
  • Front Desk user sees only allowed menus (no Settings/Users)
  • Housekeeper sees Housekeeping + limited Bookings/Calendar
  • Filter forms on Bookings/Calendar/Reports stay on panel URLs (not wp-admin)
  • Create Front Desk user as Manager → new user can log in
  • Logout clears session and returns to login
  • Mobile: sidebar toggle opens/closes; tables scroll horizontally if needed
  • Subdirectory install (/test/) resolves /test/staff-panel/ correctly

36. Required / recommended pages

PageTemplate / shortcodeSettings link
HomeFront Page (sections)Reading settings
Rooms / Villas / ToursPage templates or native archives /rooms/v1.4.0 archive templates
Activities / Cars / BundlesTraveler templatesauto-seed
Map & WishlistMap templateauto-seed
Booking / SearchBooking template
Checkout[booking_checkout]Settings → Checkout page
Confirmation[booking_confirmation]Settings → Confirmation page
My Bookings[my_bookings]optional account_page
Staff PanelAuto URL /staff-panel/ (no WP page needed)Plugin rewrite — see §35
Contact / About / FAQInner templates

38. Full testing checklist

Print or tick during QA:

A. Install smoke

  • Plugin activates without a PHP fatal error
  • Theme activates without a PHP fatal error
  • Admin shows plugin-required warning when Booking System is deactivated
  • readme.txt and screenshot.png exist in the theme folder
  • wp_bs_bookings table exists in phpMyAdmin
  • Admin menus: Booking System + Rooms are visible
  • Front homepage loads CSS correctly

B. Demo & pages

  • Setup Demo installs without error
  • Static homepage shows sections
  • Rooms / Activities / Map pages open
  • Native archives /rooms/, /villas/, /tours/ show card grids (v1.4.0)
  • 404.php and search.php render branded layouts
  • Footer does not show default Archives / Categories widgets after demo install
  • Primary menu links work (no 404)

C. Catalog CRUD

  • Add a Room with price, featured image, booking mode Instant
  • Add Villa / Tour with lat/lng
  • Add Activity with a dates list
  • Add Car + Travel Bundle
  • Single pages show gallery, price, book form, sticky bar

D. Customizer

  • Disable a homepage section → it disappears
  • Reorder sections → order changes
  • Switch design variant → layout changes, content stays the same
  • Single Catalog: disable Reviews → reviews hide
  • Innerpage colors apply on the Rooms listing

E. Booking happy path

  • Search available dates → results appear
  • Book a room with Pay at Hotel → confirmation
  • Admin → Bookings shows the new row with the correct total
  • Same dates are blocked / inventory is respected
  • Request-to-book listing → pending/request status
  • Instant book → confirmed (per settings)

F. Traveler

  • Activity booking for a listed date
  • Car day price calculates correctly
  • Bundle/package books successfully
  • Wishlist heart toggles (logged out + logged in)
  • Submit a review → appears (or awaits approval)
  • Map pins show for items with lat/lng

G. Commerce extras

  • Coupon reduces the total
  • Tax adds to the total
  • Extra service is selectable
  • Payment is recorded on the Payments screen

H. Ops

  • Calendar shows the booking
  • Reports load / CSV export works
  • Notification email is received (or logged)
  • iCal import marks blocked dates (if a feed is available)
  • Mobile: sticky book bar and forms are usable

J. Staff Web Panel

  • /staff-panel/login/ — branded login loads
  • Administrator — all 10 panel menus open without error
  • Booking Manager — full panel + can create Front Desk / Housekeeper users
  • Front Desk — Dashboard, Bookings, Calendar, Customers, Payments, Reports only
  • Housekeeper — Dashboard, Bookings, Calendar, Housekeeping only
  • Bookings filter + calendar month picker submit to panel URLs
  • Record a manual payment from Payments screen
  • Update a housekeeping room status
  • Logout works; non-staff WP user is rejected at login

K. REST smoke

  • GET items/room returns JSON
  • POST availability with a valid body returns available true/false

39. Troubleshooting

ProblemLikely fix
Booking form missingActivate the plugin; check the shortcode; Single Catalog → Booking enabled
404 on /rooms/Flush permalinks; confirm the CPT is registered; v1.4.0 adds archive-bpro_room.php
Archives look unstyledClear cache; confirm section CSS enqueued on archive (rooms/villas/tours)
Footer shows Archives / CategoriesAppearance → Widgets → clear footer-1; or reinstall demo (v1.4.0 clears widgets)
Yellow admin warning about pluginExpected when Booking System is inactive — activate the plugin
Offers / Packages empty on homepageAdd content under Offers / Packages CPTs, or run demo reinstall
Homepage empty sectionsEnable sections in Customizer; install demo; set a static front page
Map emptyAdd lat/lng to listings; confirm Leaflet loads; visit the Map page
Price shows 0Set base_price meta on the listing
Always pendingCheck booking_mode + default/instant status settings
Emails not sendingConfigure SMTP; check admin_email
Gateway errorUse sandbox keys; HTTPS; enable the gateway checkbox
Package vs Bundle confusionBook bpro_bundle; marketing content is bpro_package
White screenEnable WP_DEBUG logging; use PHP 7.4+; check for a missing require
Staff panel 404Settings → Permalinks → Save; confirm plugin active; try ?bs_staff_panel=1&bs_staff_page=dashboard
Panel login “no access”User needs role Administrator, Booking Manager, Front Desk, or Housekeeper
Panel page fatal errorUsually missing wp-admin template helpers — update plugin to v1.4.0+; clear object cache
Filter redirects to wp-adminUpdate plugin — panel forms must use bs_booking_admin_url()
Cannot create staff userOnly Admin/Manager see Staff Users; Manager can only assign Front Desk or Housekeeper

40. Changelog

Plugin v1.4.0 — Staff Web Panel

  • Front-end Staff Web Panel at /staff-panel/ with WordPress login
  • Custom roles: Booking Manager, Front Desk, Housekeeper (BS_Capabilities)
  • Role-based sidebar menus — 10 screens (Dashboard through Staff Users)
  • Staff user creation inside panel (Admin: all roles; Manager: Front Desk + Housekeeper)
  • Premium UI matching Booking Pro linen/charcoal design system
  • Mobile sidebar, top bar, SVG nav icons, Google fonts (Cormorant + Outfit)
  • Reuses wp-admin booking views on front-end; shared BS_Admin::handle_actions()
  • Helpers: bs_is_staff_panel(), bs_booking_admin_url()
  • Subdirectory install support + pretty permalink rewrite rules

Theme v1.4.0 (marketplace release)

  • Unified product branding as Booking Pro (removed TravelCraft naming)
  • Added readme.txt, screenshot.png, version sync via BPRO_VERSION
  • Added 404.php and search.php
  • Added archive-bpro_room.php, archive-bpro_villa.php, archive-bpro_tour.php
  • Added template-parts/catalog/archive-grid.php shared archive layout
  • Added inc/plugin-notice.php — admin warning when Booking System is inactive
  • Demo setup clears default footer-1 widgets; seeds offers/packages when missing
  • Default linen / charcoal color palette documented in §16
  • Catalog single CSS now loads for activity, car, and bundle singles too
  • Booking search + map section layout fixes (panel wrapper, hero nav z-index)

Theme v1.3.x

  • Homepage Section Manager, 100+ demo presets
  • Innerpage + Single Catalog Customizer
  • One-click demo under Appearance → Setup Demo
  • Aman-inspired design refresh (header, footer, section-01 styles)

41. FAQ

What is the Staff Web Panel?

A front-end booking workspace at /staff-panel/ for hotel staff. It uses WordPress login but hides wp-admin. See §35 for roles, URLs, and setup.

How do I give my receptionist access without wp-admin?

Create a Front Desk user under Staff Panel → Staff Users (or wp-admin Users). They log in at /staff-panel/login/.

Can housekeeping staff change bookings?

Housekeepers see Dashboard, Bookings (view), Calendar, and Housekeeping. They update room status on the housekeeping board; full booking edits require Front Desk or Manager roles.

How do I edit layouts?

Use the WordPress Customizer — Homepage Section Manager, Innerpage Manager, and Single Catalog Manager. No separate page builder is required.

Can the theme be sold without the plugin?

You can sell design alone, but booking features require the plugin. Packaging both together is recommended.

Will the plugin work with another theme?

Yes, via shortcodes / REST. Catalog CPTs are provided by Booking Pro; another theme needs its own catalog wiring.

How do I remove demo content?

Trash demo pages/posts; reset Customizer options manually; the flag bpro_demo_installed lives in the options table.

What files are required to sell on a marketplace?

Minimum: theme folder with style.css, readme.txt, screenshot.png, plus the Booking System plugin bundle and this documentation. See §7.

Where is this documentation file?

Path:

wp-content/themes/booking-pro/docs/BOOKING-PRO-COMPLETE-GUIDE.html

Open it directly in a browser (double-click) or serve it from your local URL.