RESTAURANT MODULE — ECOMMERCE

WordPress Restaurant Reservation Plugin — Online Booking Without Monthly Fees

Let customers book tables directly on your WordPress site with real-time availability, seat capacity management, and an approval workflow. No per-cover fees, no monthly subscriptions to third-party platforms, no customer data locked in someone else's system.

Slot Length 5 to 120 minutes
Capacity Caching 60-second transient TTL
Schedule Config Per-day weekly hours
Blackout Dates Unlimited
Admin Pages 4 complete views
Booking Form Works without JavaScript

The Problem With Restaurant Reservation Systems

Most restaurants rely on OpenTable, Resy, or Yelp Reservations for online booking. These platforms charge per-cover fees or monthly subscriptions, own the customer data, and control the booking experience. Your customers interact with a third-party brand instead of yours. And if you stop paying, you lose access to your reservation history and customer contact information.

LuperIQ Restaurant Reservations puts the entire booking system on your own WordPress site. Customers see your brand, fill out a form on your domain, and their reservation data lives in your database. Real-time availability checking prevents overbooking. An approval workflow gives you control over every reservation. Admin email notifications arrive with one-click edit links. There are no per-cover fees, no monthly platform costs, and no third-party lock-in.

Everything You Need for Restaurant Reservations on WordPress

Frontend Reservation Form

One Shortcode, Full Booking

Drop the [luperiq_reservation_form] shortcode on any page. Customers select a date, party size, and time slot. The form validates availability in real time before submission. No account creation required.

Real-Time Availability Engine

No More Overbooking

The AJAX-powered slot picker checks seat capacity against existing reservations before showing available times. Transient caching with a 60-second TTL keeps availability checks fast without database queries on every request.

Seat Capacity Management

Control Your Floor

Set maximum seats per time slot. The system counts confirmed reservations (and optionally pending reservations) against your capacity limit. When a slot is full, it disappears from the customer-facing form automatically.

Configurable Weekly Schedule

Different Hours Every Day

Set operating hours per day of the week with support for split service periods. Run lunch from 11:00 to 14:30 and dinner from 17:00 to 22:00. Block specific time ranges within a service period for staff breaks or private events.

Blackout Dates

Close When You Need To

Add blackout dates for holidays, private events, renovations, or any day you do not accept reservations. Blackout dates override the weekly schedule completely — customers see no available slots for that day.

Approval Workflow

Confirm on Your Terms

New reservations arrive with a Pending status. You review the details in the admin and confirm or decline. This gives the restaurant full control — useful for large parties, special requests, or managing unusual scheduling.

Admin Email Notifications

Know Immediately

When a customer submits a reservation, an email notification is sent to the admin with all booking details and a one-click link to edit the reservation directly in WordPress. No need to log in and search through a list.

Demo Page Auto-Creation

Working in Seconds

On activation, the module creates a demo page with the reservation form shortcode already embedded. You can start accepting reservations immediately or customize the page first.

Progressive Enhancement

Works Without JavaScript

The reservation form functions as a standard HTML form submission even when JavaScript is disabled. When JavaScript is available, the AJAX slot picker enhances the experience with real-time availability — but the core booking flow never depends on it.

Who This Module Is Built For

Any restaurant, bistro, cafe, or dining establishment that takes reservations and wants to own the booking experience on their own website.

Independent Restaurants

  • Stop paying per-cover fees to OpenTable or monthly subscriptions to third-party booking platforms.
  • Own your customer data — names, emails, phone numbers, and booking history stay in your WordPress database.
  • Present a consistent brand experience from menu browsing to table booking, all on your own domain.

Restaurants With Variable Schedules

  • Configure different hours for each day of the week with support for split lunch and dinner service.
  • Block specific time ranges for staff breaks, private events, or setup periods between services.
  • Add blackout dates for holidays, closures, or renovation days without modifying your regular schedule.

Small Venues and Cafes

  • Limited seating makes overbooking prevention critical — real-time capacity checking solves this.
  • The approval workflow lets you manually confirm large parties or special requests that need extra attention.
  • No login required for guests — the form collects name, email, phone, party size, and preferred time.

How the Availability Engine Works

When a customer selects a date on the reservation form, the module fires an AJAX request to check available time slots. The availability engine calculates capacity by looking at the weekly schedule configuration for that day of the week, removing any blocked time ranges, checking for blackout dates, and then counting existing reservations against the maximum seats per slot.

Slot length is configurable from 5 to 120 minutes. A 90-minute slot length with 60 maximum seats means the system divides each service period into 90-minute blocks and allows up to 60 seats of reservations per block. You can choose whether pending (unconfirmed) reservations count against capacity or only confirmed ones.

Availability results are cached using WordPress transients with a 60-second TTL. This means repeated availability checks within the same minute hit the cache instead of querying the database — keeping the form responsive even during peak booking times. After 60 seconds, the cache refreshes to reflect any newly confirmed or cancelled reservations.

What You Get: Four Admin Pages

Dashboard

Overview of upcoming reservations, today's bookings, capacity utilization, and quick-action buttons for confirming or declining pending reservations.

Reservations List

All reservations in a sortable table with custom columns: When (date and time), Party (size), Name, and Email. Filter by status and date range.

Settings

Configure slot length, maximum seats per slot, whether to count pending reservations, weekly operating hours per day, blocked time ranges, and blackout dates.

Add/Edit Reservation

Create or modify a reservation from the admin. Useful for phone bookings and walk-in tracking.

Schedule Configuration in Detail

The weekly schedule is configured per day. For each day of the week, you set the opening and closing times. If your restaurant runs split service — lunch and dinner with a break between — you add the lunch window and the dinner window separately. The gap between them is automatically treated as unavailable.

Blocked time ranges let you carve out unavailable periods within a service window. For example, if dinner runs from 17:00 to 22:00 but you hold 19:00 to 19:30 for a private event every Friday, you can block that 30-minute range on Fridays without affecting the rest of the dinner service. Blocked ranges are separate from blackout dates — they remove specific time windows rather than entire days.

Blackout dates override everything. When a date is blacklisted, no slots appear for that day regardless of the weekly schedule. Use blackout dates for holidays (Thanksgiving, Christmas), annual closures, renovation periods, or one-off private events that close the restaurant for the full day.

Designed to Work With the LuperIQ Restaurant Theme

This module pairs with the LuperIQ Restaurant Theme to deliver a complete dining experience on your WordPress site. The theme includes reservation flow pages, confirmation screens, and location and hours sections that integrate directly with the booking form — so customers move from browsing the menu to securing a table without leaving your brand.

LuperIQ Restaurant Theme

Reservations, Menus, and Local SEO

Purpose-built layouts for food service with menu display, reservation flow, location pages, and mobile-first design. /themes/luperiq-theme-restaurant/

Frequently Asked Questions

Do customers need to create an account to make a reservation?

No. The reservation form collects the guest's name, email, phone number, party size, and preferred time slot. No WordPress account or login is required. This keeps the booking friction as low as possible.

What happens when a time slot is full?

The slot disappears from the customer-facing form. Customers only see time slots with available capacity, so they cannot select a time that would overbook you. If all slots for a day are full, the date shows no availability.

Can I accept reservations by phone and add them manually?

Yes. The Add/Edit Reservation admin page lets you create a reservation from the admin panel with all the same fields — date, time, party size, guest name, email, and phone. This is useful for phone bookings and walk-in tracking.

How does the approval workflow work?

New reservations arrive with a Pending status. You receive an email notification with a one-click link to edit the reservation. Change the status to Confirmed to approve it. If you do not want to manually approve every reservation, you can count only confirmed reservations against capacity and treat pending ones as tentative holds.

Does this module integrate with the Restaurant Menus module?

The two modules are independent but complementary. Restaurant Menus handles your food menu and online ordering. Restaurant Reservations handles table booking. Together they give your restaurant a complete WordPress-based front end for both dining in and ordering out.

Can I set different capacity limits for lunch and dinner?

Capacity is configured per time slot, not per service period. If lunch and dinner have the same physical seating, the same maximum seats per slot applies. If you need different capacities, adjust the slot length and seats to approximate the difference for each service window.

Is there a customer-facing confirmation email?

The current version sends an admin notification email when a new reservation is submitted. Customer-facing confirmation emails are planned for a future release.

Accept Restaurant Reservations on Your Own Site — No Per-Cover Fees

Install LuperIQ, activate Restaurant Reservations, and start taking online bookings in minutes. Real-time availability, capacity management, and admin notifications are all included.

See Pricing