Install & Activate
Upload Plugin. Go to Plugins → Add New → Upload Plugin. Select wp-event-booking.zip, click Install Now.
Activate. Click Activate Plugin. Creates wp_wpeb_bookings database table. Adds manage_event_bookings capability to Administrator and Editor.
Configure. Go to Events → Settings. Set the Organiser Email and Max Seats Per Booking (default: 5).
Create Events. Go to Events → Add New Event. Fill in Date, Time, Venue, Total Seats, Ticket Price, and assign Event Categories.
Publish & Embed. Add [event_list] to your Events page. Place [event_booking event_id="42"] on each individual event page using the post ID from the URL.
Core Features
Events CPT
Dedicated wpeb_event post type with Date, Time, Venue, Total Seats, Ticket Price, and Category taxonomy.
Real-Time Seat Tracking
Available seats = Total Seats − Confirmed Bookings. Sold-out events show a sold-out message automatically.
AJAX Booking Form
No page reload. Validated client-side and server-side. Seat limit per booking enforced from settings.
Confirmation Emails
Attendee receives booking details. Organiser gets a notification. Both via wp_mail().
Admin Bookings Page
Filter by status (Pending / Confirmed / Cancelled). One-click Confirm and Cancel buttons with AJAX updates.
REST API
Public endpoints to list upcoming events and get single event details including available seat count.
Event Categories
Hierarchical taxonomy. Filter the event list shortcode by category slug.
Transient Cache
Event list results cached for 1 hour. Cache automatically cleared when a booking is confirmed.
Shortcodes & REST API
Event List Grid
Renders a responsive card grid of upcoming events sorted by date. Only events with a future date appear.
[event_list] [event_list category="workshop" limit="6"]
| Attribute | Default | Description |
|---|---|---|
category | all | Event Category slug to filter by. |
limit | 10 | Maximum number of events to display. |
Booking Form
Renders the booking form for a specific event. Shows "Sold Out" when all confirmed seats are taken.
[event_booking event_id="42"]
| Attribute | Required | Description |
|---|---|---|
event_id | Yes | WordPress post ID of the event. Found in the URL: post=42. |
REST API
GET /wp-json/wpeb/v1/events ?category=yoga&limit=10&page=1 GET /wp-json/wpeb/v1/events/{id} Returns seats: total, booked, available