=== Appointment Booking Plugin for WooCommerce | Online Booking Calendar & Service Manager === Contributors: aamahin, magepeopleteam Tags: appointment booking, booking calendar, service booking, online booking, woocommerce booking Requires at least: 5.3 Tested up to: 7.0 Requires PHP: 7.0 Stable tag: 1.4.1 WC requires at least: 3.0 WC tested up to: 10.9.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Turn any WordPress site into an online appointment booking system. Real-time calendar, staff scheduling, WooCommerce payments, coupons, and a customer account dashboard โ€” all in one plugin. == Description == **WPBookingly** is a modern, mobile-ready **appointment booking plugin for WordPress** that makes it easy to manage services, staff, and customer appointments without writing a single line of code. Whether you run a salon, clinic, consultancy, gym, car rental, or tutoring business, WPBookingly gives you a professional [online booking calendar](https://mage-people.com/product/service-booking-plugin-wpbookingly/) your customers can use from any device. Customers browse real-time availability, pick a service and time slot, and confirm their appointment instantly โ€” right on your website. With a lightweight codebase, shortcode support, and compatibility with any WordPress theme or page builder, WPBookingly is built to help you organize bookings, cut down on no-shows, and save time every day. โ–ถ๏ธ [Watch the Quick Overview Video](https://youtu.be/46_WERFyyGc) ๐ŸŒ [Live Frontend Demo](https://wpbookingly.com/) ๐Ÿ“˜ [Full Documentation](https://docs.mage-people.com/plugins/wpbookingly/overview) โฌ‡๏ธ [Free Download on WordPress.org](https://downloads.wordpress.org/plugin/service-booking-manager.zip) = Why Choose WPBookingly as Your WordPress Booking Plugin? = * **No coding required** โ€” set up a complete service booking website in minutes * **Works with or without WooCommerce** โ€” choose the checkout that fits your business * **Mobile-first design** โ€” fast, responsive booking on desktop, tablet, and phone * **Built for every industry** โ€” salons, clinics, consultants, rentals, tutors, and more * **SEO-friendly and lightweight** โ€” won't slow your site down = Who Uses WPBookingly? = ๐Ÿ’‡โ€โ™€๏ธ **Salons & Spas** โ€” Let clients pick a stylist, service, and time slot online. ๐Ÿงน **Cleaning & Repair Services** โ€” Assign jobs, set availability, confirm bookings instantly. ๐Ÿ’ผ **Consultants & Coaches** โ€” Schedule sessions, send reminders, manage payments. ๐Ÿฅ **Clinics & Therapists** โ€” Handle multi-staff schedules and patient appointments. ๐Ÿ“ธ **Photographers** โ€” Show available dates, manage session types, collect deposits. ๐Ÿš— **Car Rental & Automotive Services** โ€” Display vehicles, set pricing, take instant reservations. ๐ŸŽ“ **Tutors & Training Centers** โ€” Run recurring classes and accept payments with ease. = Core Features (Free) = **Booking & Scheduling** * Real-time calendar sync to prevent double bookings * Custom staff schedules and working hours * Configurable service durations and buffer time * Dynamic time-slot length โ€” pick a preset or set any custom duration in minutes * Automated time-slot management * Group booking support * Recurring appointment controls **Checkout & Payments** * Two full checkout modes: **WooCommerce mode** (taxes, coupons, gateways, emails, orders) or **Custom/Native mode** (WPBookingly's own cart, checkout, and orders โ€” no WooCommerce required) * Free Offline payment gateway in Custom/Native mode โ€” take bookings without WooCommerce and without a paid upgrade * Inline checkout inside the booking drawer in both modes, with gateway redirects and automatic retry on temporary failures * Advanced booking coupons with service, price, quantity, date, staff, and usage restrictions * Partial-payment support across native and WooCommerce checkout flows **Customer Experience** * Modern customer account dashboard (native mode) or enhanced WooCommerce My Account (WooCommerce mode) * View, reorder, reschedule, and request cancellation of bookings * Recurring-series management for repeat appointments * Customizable input fields to collect extra client details **Admin Tools** * Modern service editor: categories, extras, pricing, schedules, staff, taxes, waiting lists, FAQs, galleries * One-Click Business Templates to launch a ready-to-book service in seconds * Booking administration, staff dashboard, reviews, and cancellation-request management * Analytics and reporting overview **Security & Compliance** * Server-side validation, nonces, rate limiting, and capability/ownership checks * Protected booking and account access with verified payment references * GDPR consent and data export/erasure tools = Shortcodes = | Shortcode | Purpose | |---|---| | `[service-booking post_id="123"]` | Display the booking interface for a specific service | | `[mpwpb-user-dashboard]` | Display the customer booking dashboard | | `[custom_payment_my_account]` | Display the Custom/Native payment My Account area | | `[mpwpb_booking_confirmation]` | Display a protected order confirmation screen | = Every Booking Website Needs These Features = ๐Ÿ“… Real-time calendar sync. ๐Ÿ” Recurring & group bookingsยท ๐Ÿ’ณ Secure online payments (Stripe, PayPal, and more)ยท ๐Ÿ“จ Automated email/SMS notificationsยท ๐Ÿงฉ Flexible booking-form placement via shortcode ยท ๐ŸŒ Multilingual & theme compatibilityยท ๐Ÿ“Š CSV data export and reporting = Upgrade to WPBookingly Pro = Take your booking system further with: * Real-time Google Calendar sync * Advanced staff management and multi-staff assignment * Recurring appointments and automated SMS reminders * PDF invoices and downloadable booking tickets * CSV data export * Custom client forms * Group & multi-service booking * Advanced analytics and reporting * Online Stripe and PayPal gateways for Custom/Native mode * Extended WooCommerce payment gateways ๐Ÿ‘‰ Try the [WPBookingly Pro Demo](https://mage-people.com/product/wordpress-service-booking-plugin-all-kind-of-service-booking-solution/) = Step-by-Step Industry Guides = Setting up a booking site for your industry takes just a few steps: install WordPress, pick a compatible theme, install WPBookingly, configure WooCommerce (optional), add your services, publish the booking shortcode, and start accepting appointments. Detailed walkthroughs are available for: * [Salon & Spa Booking Website](https://mage-people.com/wordpress-salon-booking-plugin/) * [Music & Educational Class Booking](https://mage-people.com/how-to-set-up-an-online-musical-class-appointment-system-using-wpbookingly/) * [Healthcare Appointment System](https://mage-people.com/set-up-an-online-medical-appointment-system/) * [Fitness & Gym Booking System](https://mage-people.com/yoga-class-booking-system-with-wpbookingly/) * [Car Rental & Repair Booking](https://mage-people.com/car-rental-plugin-for-wordpress/) * [Restaurant & Hospitality Booking](https://mage-people.com/booking-uc/wordpress-medical-service-appointment-booking-solution/) == Installation == 1. Upload the `service-booking-manager` folder to `/wp-content/plugins/`, or install WPBookingly directly from **Plugins > Add New** in your WordPress dashboard. 2. Activate the plugin. Activation automatically registers the service post type and refreshes permalink rules. 3. Go to **WPBookingly > Quick Setup** and choose a payment mode: * **Custom/Native mode** โ€” no WooCommerce required. WPBookingly provides its own cart, checkout, orders, confirmation screen, and My Account page. * **WooCommerce mode** โ€” requires WooCommerce installed and active. Uses WooCommerce's taxes, checkout, coupons, gateways, emails, and order management. 4. Configure business hours, payment settings, booking policies, and account pages under **WPBookingly > Settings**. 5. Create a service, add service items and a schedule, then publish it. 6. Display the booking form using the service permalink or the `[service-booking post_id="123"]` shortcode on any page. == Frequently Asked Questions == = Is WPBookingly free to use? = Yes. The core WPBookingly plugin is completely free. WPBookingly Pro adds premium features such as Google Calendar sync, advanced staff management, PDF invoices, and SMS notifications for businesses that need a more advanced setup. = Do I need WooCommerce to use WPBookingly? = No. WPBookingly works with or without WooCommerce. Choose **Custom/Native mode** to run bookings, checkout, and customer accounts without WooCommerce, or choose **WooCommerce mode** to use WooCommerce's checkout, taxes, coupons, gateways, and order management. = What shortcode do I use to display a booking form? = Use `[service-booking post_id="123"]` and replace `123` with your service's post ID. The older `[bookingplus]` shortcode is obsolete and should not be used. = Why does my service page show a 404 error? = Current versions register the service post type and flush rewrite rules automatically on activation. If you upgraded from an older version, deactivate and reactivate WPBookingly, or go to **Settings > Permalinks** and click Save Changes. If the issue persists, check your web server's rewrite rules and file permissions. = Which payment gateways does WPBookingly support? = In WooCommerce mode, WPBookingly uses any gateway enabled in WooCommerce, including Stripe and PayPal. In Custom/Native mode the Offline payment gateway is included free, so you can accept bookings and collect payment manually without WooCommerce; online Stripe and PayPal checkout in this mode requires WPBookingly Pro. Always test gateway credentials over HTTPS before going live. = Can customers manage their own bookings? = Yes. Customers can view booking details, reorder a service, request cancellation, and reschedule eligible appointments from their account area. WooCommerce-mode bookings appear under WooCommerce **My Account > Orders**; Custom/Native bookings appear on the automatically created WPBookingly My Account page, or on any page using the `[mpwpb-user-dashboard]` shortcode. = Can customers cancel or reschedule an appointment? = Eligible bookings display cancellation and reschedule controls in the customer account area. Cancellation is submitted as a request and stays pending until an administrator approves it. Availability, ownership, and your configured lead-time policy are always verified on the server. = Does WPBookingly support recurring appointments and series management? = Yes, when recurring booking is enabled for a service. Customers can view the full series, edit eligible appointments, add a new appointment, and request cancellation of the entire series from their account. = How does the booking calendar decide which time slots are available? = The calendar calculates available dates and times using the service's working days, operating hours, duration, capacity, holidays, staff availability, existing bookings, and any booking rules you've configured. = Can I create custom booking forms with extra fields? = Yes. Each service can include its own pricing, schedule, availability, extra services, staff assignments, FAQs, and custom client input fields. = Is WPBookingly compatible with any WordPress theme? = Yes. WPBookingly is built to work with any properly coded WordPress theme and popular page builders, and it's fully translation-ready for multilingual sites. = Where do I report a security vulnerability? = Please report security issues through the official [Patchstack Vulnerability Disclosure Program](https://patchstack.com/database/vdp/9e5fc652-d645-44ea-8d5a-0947db247fec). Patchstack assists with verification, CVE assignment, and notifying the plugin developers. == Screenshots == 1. Real-time booking calendar and service selection interface. 2. Modern service editor with categories, pricing, schedules, and staff. 3. Custom/Native checkout inside the booking drawer. 4. Customer My Account dashboard with orders and booking management. 5. Admin analytics, booking administration, and staff dashboard. == Changelog == = 1.4.0 = * Added Dynamic Time Slot Length: choose one of the presets or type any custom slot length in minutes, in both the modern and classic service editors. * Added booking duration everywhere: the booked time range and duration now appear on the order item, order emails, My Account, the thank-you page, the native checkout recap, and the booking wizard summary. The slot length is frozen at checkout, so editing a service later never rewrites what a customer already booked. * Added Offline Payment as a free standalone gateway, so Custom/Native payment mode now works without WooCommerce and without Pro. Stripe and PayPal remain Pro features. * Added inline Custom/Native checkout inside the booking drawer for every non-WooCommerce setup, including the offline booking confirmation, instead of redirecting to a separate checkout page. * Added an Orders screen for Custom/Native bookings on free sites, giving a read-only overview of placed bookings. * Added an automatic demo-data import with a floating circular progress widget. Services are imported one per request so constrained hosts no longer hit memory or execution-time limits, and the import now works in standalone mode without WooCommerce. * Added a required payment method check: a booking can no longer be completed until a working gateway is configured. Customers see a short notice, and administrators get a direct "Go to Payment Settings" link. * Added a redesigned Review Settings screen with a card layout, an auto-send toggle, a "send after N days" option, and clickable placeholder chips that insert into the email body. * Improved the booking drawer on phones and tablets with a full visible-height layout, admin-bar aware spacing, touch-sized footer actions, and a corrected tablet breakpoint. * Improved the drawer progress bar so the completed and current steps always match the step being displayed. * Improved duration display so anything an hour or longer reads hour-wise (for example "4 hours" instead of "240 min") across the service overview and duration chips. * Improved admin styling with a refreshed sidebar, corrected sticky positioning while scrolling, and updated default colours. * Improved Custom Payment mode stability by adding fallbacks for WooCommerce helper functions, preventing fatal errors on admin screens when WooCommerce is not active. * Fixed recurring bookings reporting inflated revenue: each occurrence stored the whole series total, so Analytics and the Order List multiplied the amount by the number of occurrences. * Fixed staff photos rendering as ovals or rectangles instead of circles in the staff edit form and staff list. * Fixed the booking wizard allowing the staff step to be reached without picking a date and time, and cleared a previously picked time when the date changes so a mismatched date/time pair can never be submitted. * Fixed two Back buttons appearing at once in the booking wizard on mobile. * Fixed the "Custom" slot-length input intermittently not appearing when selected. * Fixed "Send Request" and saving on the Reviews screen giving no feedback and switching away from the active tab. * Fixed a fatal error ("Call to undefined method MP_Global_Function::format_price()") on sites running this plugin alongside other MagePeople plugins. * Fixed a documentation link that contained a duplicate /docs path. * Security: fixed a stored cross-site scripting issue in the admin review "View" modal, where review content submitted by a customer could execute script in a moderator's browser. Review content is now rendered as plain text. * Security: added a capability check to the review send-request action and restricted the payment settings link to users allowed to manage settings. The server now refuses to create an order when no payment method is available. = 1.3.1 = * Added a modern service creation and editing workflow covering categories, extras, schedules, recurring rules, tax, staff, waiting lists, FAQs, galleries, and formatted service details. * Added One-Click Business Templates that generate an editable, ready-to-book service with sample pricing, content, FAQs, schedules, and staff. * Added an improved quick-setup experience, expanded service list, analytics, staff tools, reviews management, and a searchable in-plugin help guide. * Added partial-payment support across Custom/Native, classic WooCommerce, and WooCommerce Checkout Blocks flows. * Added a complete Custom/Native checkout with protected confirmations, native orders, offline payments, and Stripe/PayPal controls. * Added an inline WooCommerce checkout inside the booking drawer, including billing fields, taxes, coupons, terms, gateway redirects, and checkout-state recovery. * Added reliable retry handling for temporary checkout failures so customers keep their booking selections. * Added a modern Custom/Native My Account area with dashboard, orders, billing, and profile security. * Added booking actions to WooCommerce My Account: View, Reorder, Request Cancellation, Reschedule, Manage Recurring, and Cancel Series. * Added customer cancellation requests with administrator approval, booking history, and policy lead times. * Added recurring-series management for eligible customers. * Added advanced booking coupons with service, value, quantity, schedule, customer, and staff restrictions. * Added GDPR consent, cookie controls, and data export/erasure tools. * Improved the service page, booking drawer, checkout, account tables, and dialogs with responsive styling. * Fixed service permalinks after activation. * Fixed Service Details formatting so rich text from the WordPress editor renders correctly on the frontend. * Fixed intermittent WooCommerce checkout loading, duplicate cart/order attempts, and gateway redirect handling. * Hardened checkout, booking, account, and upload requests with validation, sanitisation, nonces, and rate limits. = 1.2.2 = * Added recurring appointment controls, staff assignment and schedules, and responsive booking layouts. * Added 24-hour time-format support and improved availability handling. * Added assisted WooCommerce installation with AJAX setup and demo import. * Improved permalink sanitisation and request authorisation. = 1.2.0 = * Added analytics, recurring booking, waiting-list, and customer-dashboard foundations. * Added sortable service content and refreshed date/time selection. * Fixed zero-price, extra-service, and order-display issues. = 1.1.8 = * Improved the booking shortcode and resolved service-booking and checkout issues. = 1.1.3 = * Added sortable service categories, subcategories, and FAQs. * Improved service import, icon/image display, and AJAX loading states. = 1.1.2 = * Added buffer-time support and improved startup compatibility checks. = 1.1.1 = * Improved staff visibility rules and service updates. = 1.1.0 = * Improved the service-booking workflow and checkout configuration. = 1.0.0 = Initial release of Service Booking Manager (WPBookingly). No upgrade necessary at this time. == Upgrade Notice == = 1.4.0 = Security release, recommended for all users. Fixes a stored XSS issue in the admin review modal and inflated recurring-booking revenue in reports. Custom/Native mode is now free with Offline payment, so review Payment Settings, clear caches, and test one booking after updating. = 1.3.1 = Back up your site before updating. After updating, review Payment Settings and booking policies, clear any page/cache optimisation caches, and test one complete booking in your selected checkout mode. Existing service, booking, and order data remains fully intact.