Oryx Bookings
Oryx Bookings is a powerful, feature-rich appointment and service booking plugin designed for businesses that require a reliable, scalable, and secure booking infrastructure. Built from the ground up with custom database tables, clean architecture, and modern PHP 8.0+ practices, Oryx Bookings delivers exceptional performance even at scale.
Whether you run a salon, clinic, consulting firm, spa, fitness studio, or any service-based business, Oryx Bookings provides everything you need to manage appointments, staff schedules, and customer bookings seamlessly.
Why Choose Oryx Bookings?
- Custom Database Architecture – Optimized InnoDB tables with proper indexing for lightning-fast queries
- Enterprise-Grade Security – Rate limiting, spam protection, booking locks, and GDPR compliance built-in
- Clean Architecture – Repository pattern, Use Cases, and proper separation of concerns
- Real-Time Availability – Intelligent slot calculation with double-booking prevention
- Elementor Integration – Native Elementor widget with 6 beautiful templates
- Developer-Friendly – Action hooks, well-documented code, and extensible design
Core Features
Service Management
- Create unlimited services with custom pricing and duration
- Rich text content editor with media support for detailed service descriptions
- Featured images for visual service presentation
- Service categories with hierarchical support for organized navigation
- Active/Inactive status control for seasonal or temporary services
- Two availability modes: Staff-based (requires staff selection) or Service-only (company schedule)
- Assign multiple staff members to each service
Staff Management
- Complete staff profiles with name, job description, and photo
- Link staff to WordPress users (optional)
- Flexible Availability Modes:
- Use company default working hours
- Custom weekly schedule per staff member
- Individual staff days off management
- Active/Inactive status for staff availability control
Booking System
- Real-time available slot calculation
- Automatic slot generation based on service duration
- Smart conflict detection prevents double-bookings
- Support for multiple booking statuses: Pending, Confirmed, Cancelled, Completed
- Customer information capture (name, email)
- UTC timestamp storage for timezone accuracy
- Action hooks for integration with email notifications and CRM systems
Company Schedule & Holidays
- Working Hours Configuration:
- Set opening and closing times for each day of the week
- Mark specific days as closed (e.g., weekends)
- Visual time picker interface
- Company Days Off / Holidays:
- Add unlimited holiday dates with optional reasons
- Automatic booking prevention on closed dates
- Easy management with add/delete functionality
Security & Protection
- Rate Limiting:
- Configurable request limits per action (slots lookup, booking creation)
- Adjustable time windows
- IP + User-Agent tracking for accurate limiting
- Spam Protection:
- Honeypot fields to catch bots
- Time-based tokens prevent instant form submissions
- Minimum form fill time requirement
- Slot Security:
- Cryptographically signed slot tokens
- Token expiration (TTL) prevents replay attacks
- Server-side validation of all booking requests
- Booking Lock:
- Transient-based locking prevents race conditions
- Configurable lock duration (5-60 seconds)
- Ensures only one booking per slot
- Security Logging:
- Track rate limit hits, token failures, booking conflicts
- Privacy-conscious logging with IP masking and email hashing
- Option storage or error_log output
GDPR Compliance
- Personal Data Export: Integrated with WordPress privacy tools for data export requests
- Personal Data Erasure: Anonymizes booking records while preserving business data
- Privacy-First Design: Minimal data collection, secure storage practices
Frontend Integration
- Shortcode:
[oryx_bookings]– Display the complete booking form anywhere - My Bookings Shortcode:
[oryx_bookings_my_bookings]– Let customers view their bookings - AJAX-Powered: Smooth, no-reload experience for date/slot selection
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Template System: Choose between Default and Steps templates
- Customizable Colors: Primary color picker to match your brand
- CSS Classes for Styling:
.oryx-bookings-form– Main form container.oryx-bookings-field– Individual form fields.oryx-bookings-submit– Submit button
Elementor Integration
- Native Elementor Widget – Drag-and-drop booking form widget
- 6 Beautiful Templates:
- Grid
- Stepper
- Accordion
- Card Flow
- Flat Split
- Focus Input
- Live Preview in Elementor editor
- Custom Widget Category for easy access
Admin Dashboard
- Quick Overview: Pending bookings count, active services, active staff at a glance
- Modern UI: Clean, card-based design with Tailwind CSS
- Easy Navigation: Quick links to all management areas
- Real-Time Stats: Database-driven statistics
Internationalization
- Fully translation-ready with complete text domain support
- All strings wrapped in translation functions
- POT file generation ready
- RTL-compatible design
Developer Features
- Action Hooks:
oryx_bookings_booking_created– Fires when a new booking is created
- Repository Pattern: Clean data access layer for all entities
- Use Cases: Business logic encapsulated in dedicated classes
- PSR-4 Autoloading: Modern PHP class loading
- Type Declarations: Strict typing with PHP 8.0+ features
- WordPress Coding Standards: Fully compliant with WPCS
Usage
Quick Start Guide
Step 1: Configure Working Hours Go to Oryx Bookings > Settings > Working Hours and set your business operating hours for each day of the week.
Step 2: Add Holidays (Optional) Navigate to Settings > Holidays to add any dates when your business will be closed.
Step 3: Create Staff Members Go to Staff > Add New Staff and create profiles for your team members. Choose whether they follow company hours or have custom schedules.
Step 4: Create Services Navigate to Services > Add New Service. Set the name, duration, price, and assign staff members who can provide this service.
Step 5: Display the Booking Form
Add the shortcode [oryx_bookings] to any page or post, or use the Elementor widget.
Shortcodes
Main Booking Form: [oryx_bookings] Displays the complete booking form with service selection, staff selection (if applicable), date picker, time slots, and booking confirmation.
Customer Bookings: [oryx_bookings_my_bookings] Allows logged-in customers to view their booking history.
For Developers
Hook into new bookings: add_action('oryx_bookings_booking_created', function($booking_id, $booking_data) { // Send email notification // Update CRM // Trigger automation }, 10, 2);
Third-Party Libraries
This plugin bundles the following third-party libraries:
Flatpickr v4.6.13 A lightweight, powerful datetime picker Source: https://flatpickr.js.org/ Copyright (c) 2017 Gregory Petrosyan License: MIT License (https://opensource.org/licenses/MIT)
Support
For support, feature requests, or bug reports, please visit the plugin support forum or contact the developer.
Credits
Developed by Rabie Eltegani with a focus on performance, security, and user experience.