WP Manifestindependent plugin directory
manifest / events / escaperoombookingplugin

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.zip

Readme

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

  1. Install and activate WooCommerce.
  2. 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.
  3. Add your rooms under ERS Booking → Rooms and review ERS Booking → Settings (game languages, hold time, weekend days, checkout mode).
  4. 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

Read the full README on GitHub →