Cat Café Booking
Session-based booking system for cat cafés. Supports 30/60 min sessions, Square payments, Twilio SMS, OTP verification, liability waivers, and full admin management.
by Lou Griffith · github.com/lougriffith/catcafe-booking · 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/lougriffith/catcafe-booking/archive/refs/heads/main.zipReadme
Cat Café Booking — WordPress Plugin
Session-based booking system built for cat cafés. Handles 30/60 min sessions, shared capacity across sessions, Square payments, Twilio SMS, OTP verification, liability waivers, and full admin management.
Requirements
- WordPress 6.5+
- PHP 8.1+
- SMTP plugin (WP Mail SMTP, FluentSMTP, or any wp_mail()-compatible plugin)
- Square account (for live payments)
- Twilio account (for SMS)
Installation
- Download the latest release zip from GitHub Releases
- WP Admin → Plugins → Add New → Upload Plugin → choose zip → Install → Activate
- Go to Cat Café → Settings and configure everything before going live
Configuration
First-run checklist
| Setting | Where | Notes |
|---|---|---|
| Café name | Settings → Café Info | Shown to customers |
| Capacity | Settings → Café Info | Max seats shared across all sessions |
| Prices | Settings → Pricing | Per-person, per duration |
| Hours + open days | Settings → Operating Hours | Sessions auto-generated within these hours |
| Buffer time | Settings → Operating Hours | Minutes between session slots |
| Lead time | Settings → Operating Hours | How many hours ahead customers must book |
| Waiver text | Settings → Liability Waiver | Your actual waiver language |
| Café rules | Settings → Café Rules | Displayed to guests before they sign |
| Square credentials | Settings → Square | App ID, Location ID, Checkout URL |
| Twilio credentials | Settings → Twilio | Account SID, Auth Token, From number |
| GitHub repo | Settings → GitHub Auto-Update | username/repo for auto-updates |
Square Setup
- Create a Square developer account at developer.squareup.com
- Create an application and get your App ID and Location ID
- Create a Checkout Link in your Square dashboard for the booking product
- Paste the Checkout Link URL into Square Checkout URL
- For webhook-based payment confirmation, add your Square Access Token and configure a webhook pointing to:
https://yoursite.com/wp-json/catcafe/v1/square-webhook(webhook endpoint coming in v1.1)
Twilio Setup
- Sign up at twilio.com
- Purchase a phone number (~$1/month)
- Copy your Account SID and Auth Token from the Twilio Console
- Add all three to Settings → Twilio
Usage
Shortcode
Place [catcafe_booking] on any WordPress page:
[catcafe_booking]
Full-page template
- Create a new page
- In Page Attributes → Template, select Cat Café — Full Page Booking
- Publish — the page renders only the booking app with no theme chrome
Customer cancel flow
Every confirmation email/SMS includes a cancel link:
https://yoursite.com/?catcafe_action=cancel&token=XXXXX
- If clicked more than 24 hours before the session → cancellation processed, guest notified
- If clicked within 24 hours → message shown asking them to call
Admin
WP Dashboard Widget
Visible on the main WP Dashboard. Shows upcoming sessions with booked guests and quick confirm/cancel buttons.
Cat Café → Reservations
- Filter by date or status
- Confirm or cancel individually
- Select multiple → bulk confirm or bulk cancel
- Emergency closure — cancel all reservations for a date
- Export to CSV
Cat Café → Waitlist
- View waitlisted guests
- Promote to reservation when a seat opens
- Remove from waitlist
Cat Café → Settings
All operational settings are editable here. No code changes needed.
Auto-Updates
Set GitHub Repo in Settings to yourusername/catcafe-booking. When you push a new tagged release (v1.1.0), WordPress will surface it in the Plugins update screen automatically.
For private repos, add a GitHub Token with repo read scope.
File Structure
catcafe-booking/
├── catcafe-booking.php # Main plugin file
├── CHANGELOG.md
├── README.md
├── includes/
│ ├── class-post-types.php # WP post types + all DB helpers
│ ├── class-settings.php # Settings get/set/save
│ ├── class-sessions.php # Session generation + formatting
│ ├── class-reservations.php # Booking business logic
│ ├── class-otp.php # OTP send/verify (email + SMS)
│ ├── class-notifications.php # Email + Twilio SMS
│ ├── class-rest-api.php # All REST endpoints
│ ├── class-shortcode.php # [catcafe_booking] shortcode
│ ├── class-page-template.php # Full-page template
│ ├── class-cron.php # WP Cron reminder job
│ └── class-updater.php # GitHub auto-update
├── admin/
│ ├── class-admin.php # WP Admin menu + pages
│ ├── class-dashboard-widget.php
│ ├── admin.css
│ ├── admin.js
│ └── views/
│ ├── reservations.php
│ ├── waitlist.php
│ └── settings.php
├── public/
│ ├── css/booking.css
│ └── js/booking.js
├── templates/
│ ├── booking-app.php # HTML shell (shortcode + full-page)
│ └── full-page.php # Full-page WP template
└── .github/
└── workflows/
└── deploy.yml
Roadmap (v1.1+)
- Square webhook endpoint for payment confirmation
- iCal / Google Calendar sync
- Blackout date management UI
- Per-session pricing overrides
- Multi-location support
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| 1.3.0 | Apr 6, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.