plugin-icon

Oryx Bookings

A professional service booking and appointment scheduling system for WordPress with staff management and real-time availability.
Version
1.0.1
Zuletzt aktualisiert
Feb 6, 2026
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 7.4+ 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

3 Ways to Display the Booking Form

Oryx Bookings supports Elementor, Gutenberg, and Shortcode — all three share the same 6 templates, settings, and booking engine.

  • 6 Beautiful Templates: Grid, Stepper, Accordion, Card Flow, Flat Split, Focus Input
  • AJAX-Powered: Smooth, no-reload experience for date/slot selection
  • Responsive Design: Works perfectly on desktop, tablet, and mobile
  • Customizable Colors: Primary color picker to match your brand
  • Display Toggles: Show/hide service image, description, price, duration, staff image
  • Custom Labels: Fully customizable step titles, button text, and success message
  • Multiple Instances: Add multiple booking forms per page, each with independent settings

Elementor Widget

  • Native Elementor Widget – Drag-and-drop under the „Oryx Bookings“ category
  • 6 Template Styles with live preview in the editor
  • Content Controls: Template selection, service/category filtering, display toggles, custom labels
  • Style Controls: Primary color, card styles, button styles, typography
  • Advanced Controls: Time format (12h/24h), redirect URL, custom CSS class

Gutenberg Block

  • Native Block – Search „Oryx – Booking Form“ in the block inserter
  • Server-Side Preview – See the live form directly in the editor
  • Sidebar Controls: Template selection, service filtering, display options, labels, colors, time format, redirect URL

Shortcode

  • [oryx_bookings] – Works with any theme and any page builder
  • 18 Attributes – Override any global setting per instance
  • Global Settings – Configure defaults at Oryx Bookings > Settings > Design
  • Shortcode Generator – Built-in generator with copy button in the Design settings tab
  • [oryx_bookings_my_bookings] – Let logged-in customers view their booking history

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 7.4+ 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 You have three options to display the booking form:

Option A: Elementor Widget

  1. Open any page with the Elementor Editor
  2. Search for „Booking Form“ in the widget panel (under the Oryx Bookings category)
  3. Drag the widget onto your page
  4. Configure template, colors, labels, and display options in the left panel
  5. All changes preview live in the editor

Option B: Gutenberg Block

  1. Open any page or post in the Block Editor
  2. Click „+“ to add a new block
  3. Search for „Oryx – Booking Form“
  4. Insert the block and configure using the right sidebar
  5. The block renders a live server-side preview in the editor

Option C: Shortcode

Basic usage (uses global settings from Design tab): [oryx_bookings]

With custom attributes: [oryx_bookings template=“stepper“ primary_color=“#EF4444″ show_price=“no“]

Available attributes:

  • template – Template style: grid (default), stepper, accordion, card-flow, flat-split, focus-input
  • primary_color – Hex color code, e.g. #3B82F6
  • show_image – Show service image: yes (default) or no
  • show_description – Show service description: yes (default) or no
  • show_price – Show service price: yes (default) or no
  • show_duration – Show service duration: yes (default) or no
  • show_staff_image – Show staff photo: yes (default) or no
  • currency – Currency symbol, e.g. $, , ر.س
  • currency_position – Symbol position: before or after (default)
  • time_format – Time display: 12h (default) or 24h
  • label_services – Services step title (default: „Select Service“)
  • label_staff – Staff step title (default: „Select Staff“)
  • label_date – Date step title (default: „Select Date“)
  • label_time – Time step title (default: „Select Time“)
  • label_info – Info step title (default: „Your Information“)
  • label_submit – Submit button text (default: „Confirm Booking“)
  • success_message – Message after booking (supports {booking_id} placeholder)
  • redirect_url – URL to redirect after successful booking
  • class – Custom CSS class for the wrapper

Examples:

[oryx_bookings template="stepper" primary_color="#DC2626"] [oryx_bookings template="accordion" show_price="no" time_format="24h"] [oryx_bookings template="card-flow" label_services="Select Service" label_staff="Select Staff" label_submit="Confirm Booking"] [oryx_bookings redirect_url="https://example.com/thank-you"]

Default values for all attributes can be configured at Oryx Bookings > Settings > Design. The shortcode generator on that page builds the shortcode automatically with a copy button.

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.

Kostenlosmit dem Business-Tarif
Mit deiner Installation stimmst du den Geschäftsbedingungen von WordPress.com sowie den Bedingungen für Drittanbieter-Plugins zu.
Getestet bis
WordPress 6.9.1
Dieses Plugin steht für deine -Website zum Download zur Verfügung.