ERS Booking
plugin to handle escape room bookings using wordpress + woocommerce
by Escape Room Supplier · github.com/escaperoomsupplier/escaperoombookingplugin · website
★ 0stars
0forks
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/escaperoomsupplier/escaperoombookingplugin/archive/refs/heads/main.zipReadme
ERS Booking
WordPress + WooCommerce plugin for booking time slots in escape rooms.
Status: early development (0.1.0) — not ready for production use.
Features
- Rooms managed in wp-admin: player range, per-weekday start times, languages, base price + per-extra-player pricing, optional weekend prices
- Day promotions (percent or amount off, per room or all rooms, date ranges) and recurring promotions (e.g. every Monday −10%) managed on an admin calendar; promo days get badges and struck-through prices
- Booking calendars via shortcode or Gutenberg block:
[ers_calendar](all rooms, day view with weekday tabs) and[ers_calendar room="id"](single room, monthly/weekly) - Booking flow: pick a slot → choose players & game language (live price) → standard WooCommerce checkout (works with both classic and blocks checkout)
- Slots are blocked the moment an order is placed; unpaid orders are auto-cancelled after a configurable hold time and the slot is released
- Admin screens: dashboard, bookings lists (next/new/past), calendar with day blocking and promotions, room editor, settings
- Dedicated "Booking confirmed" customer email (standard WooCommerce email, templates overridable in the theme)
Requirements
- WordPress ≥ 6.5
- PHP ≥ 8.1
- WooCommerce (active)
Installation
- Install and activate WooCommerce.
- Download this repository as a ZIP and install it in wp-admin under
Plugins → Add New Plugin → Upload Plugin (or unpack it into
wp-content/plugins/ers-booking), then activate ERS Booking. - Add your rooms under ERS Booking → Rooms and review ERS Booking → Settings (game languages, hold time, weekend days, checkout mode).
- Put
[ers_calendar](all rooms) or[ers_calendar room="id"](single room) on any page — or use the "ERS Booking Calendar" block.
For development, symlink this folder as wp-content/plugins/ers-booking instead.
Structure
ers-booking.php — main file (header, constants, bootstrap)
includes/class-ers-booking.php — main plugin class (singleton)
includes/class-ers-install.php — DB schema, booking page, cron
includes/class-ers-rooms.php — room repository (CRUD, pricing)
includes/class-ers-bookings.php — booking repository
includes/class-ers-availability.php — bookable-slot engine
includes/class-ers-pricing.php — day-based pricing + promotions engine
includes/class-ers-product-sync.php — hidden Woo product per room
includes/class-ers-checkout.php — cart/checkout/order integration
includes/class-ers-calendar.php — [ers_calendar] shortcode views
includes/class-ers-booking-form.php — [ers_booking_form] details step
includes/class-ers-blocks.php — Gutenberg block registration
includes/class-ers-email-booking-confirmed.php — "Booking confirmed" WC email
includes/admin/ — admin menu + screens
assets/ — frontend CSS/JS, block editor JS
templates/emails/ — email templates (theme-overridable)
uninstall.php — cleanup on uninstall
languages/ — translation files (text domain: ers-booking)
SPEC.md — functional specification