DEV Community

Cover image for Booking CMS — PHP Reservation Script for Hotels, Rentals, Clinics & Salons
Ruslan Bilohash
Ruslan Bilohash

Posted on

Booking CMS — PHP Reservation Script for Hotels, Rentals, Clinics & Salons

Take bookings from day one, on your server.

Booking CMS is a reservation script in plain PHP 8 — search, listings, amenities, guest reviews, a booking flow and a 24-screen admin panel. No framework, no build step, no npm. Upload it to ordinary shared hosting, run the installer, and it runs.

It ships as a hotel demo, but the listing type is yours to relabel: clinics and dental practices, beauty salons, spas, fitness studios, apartment rentals, equipment hire — anything that takes a reservation against a date range.

Live demo: bilohash.com/booking

Front end

Search with destination, dates, guests and rooms, then filter by property type, price range and sort order

Listing pages with photo, rating, review count, discount badge, per-night and total price

Property detail with overview, amenities and guest review tabs

Location block — GPS coordinates, an OpenStreetMap embed and a Start trip link into Google Maps directions

Booking form that collects guest details and writes a real reservation record

Public guest review form with reCAPTCHA and a moderation queue

Vertical landing pages for hotels, rentals, clinics, salons, spa, fitness and equipment hire

Responsive layout with a mobile menu

Admin panel — 24 screens

Dashboard with property, booking and revenue figures

Properties — price, discount, rating, coordinates, names per language, active or hidden

Bookings — pending, confirmed, cancelled

Review moderation — approve, hide, delete or add

Appearance settings: colours and footer

reCAPTCHA v2 and an AI chat widget (xAI Grok or OpenAI)

Payment method settings for PayPal, Stripe and Vipps — see the note below

Admin interface in all five languages, with a mobile drawer

Payments — read this before you buy

This script does not process payments. The booking form asks the guest to pick a method, and that choice is stored with the reservation, but nothing is charged and no payment provider is contacted. The admin panel has settings screens where you can save PayPal, Stripe and Vipps credentials, and those are stored — but no checkout is built on top of them yet.

That is deliberate for a reservation workflow where you take payment on arrival, by invoice, or over the phone. If you need a guest to pay online at the moment of booking, this is not that script — or budget for that integration on top.

The demo says the same thing on the property page, so you can see it for yourself before you spend anything.

Storage — MySQL or flat files

Four tables — properties, bookings, reviews and settings. Run it on MySQL, or leave it on the bundled JSON files for a quick evaluation and migrate later with the included script.

5 languages

Front end and admin panel both ship in Norwegian (default), English, Ukrainian, Russian and Swedish. Language files are plain PHP arrays in lang/ — copy one to add your own.

Tech

PHP 8.0+, no framework — runs on ordinary shared hosting

MySQL, or JSON files with a migration script to move over

Browser-based installer, no SSH needed

Apache .htaccess, canonical URLs, sitemap.php, robots.txt, llms.txt

OpenStreetMap embeds and Google Maps directions links

Google reCAPTCHA v2 on the public review form

Optional AI chat widget using your own xAI Grok or OpenAI key

What you get

Full source, unencrypted, no licence key and no callback to any server

Installer, demo properties, bookings and reviews so it is not empty on first run

README in English, Norwegian, Ukrainian and Russian, plus a changelog

Requirements

PHP 8.0 or newer, Apache with mod_rewrite (or the nginx equivalent), MySQL if you want database storage, and writable data/.

Third-party services

Nothing is contacted until you enter your own credentials and switch that integration on. The services are: OpenStreetMap, Google Maps, Google reCAPTCHA, xAI Grok and OpenAI. You are responsible for complying with each provider's terms.

Trademarks

All product names, logos and brands named above are property of their respective owners and are used for identification only. Booking CMS is independent and not affiliated with, sponsored by, or endorsed by any of them.

Screenshots

Top comments (0)