Yatoon Booking System

Описание

Yatoon Booking System is a professional appointment booking plugin built for salons, nail studios, spas, and any service business that takes appointments.

Customers book online through a clean, mobile-friendly multi-step form embedded on any page. You manage everything from the WordPress dashboard — no monthly fees, no third-party accounts needed in the free version.

✅ Free Features

Customer-Facing Booking Form
* Beautiful multi-step booking flow: Service Options Staff Date & Time Details
* Multi-service booking — customers can add multiple services in one appointment
* Guest booking — book for multiple people (e.g. couples, friends) in one session
* Smart staff assignment — «Any available staff» or pick a specific person
* Real-time time slot availability
* Mobile-friendly with floating cart bar
* Customer portal — view, manage, and cancel upcoming appointments

Service & Staff Management
* Unlimited services with categories, pricing, duration, descriptions, and photos
* Add-on options per service (e.g. nail art, gel top coat)
* Staff profiles with photos, bios, and service assignments
* Individual staff schedules and working hours

Booking Management
* Full booking calendar and list view in the dashboard
* Manual booking creation and editing by admin
* Booking status management (confirmed, pending, cancelled, completed)
* Customer contact details and appointment notes
* Waitlist management for fully booked time slots
* Customer blacklist (block repeat no-shows)

Notifications & Communication
* Automatic email confirmations to customers
* Customizable email subject and template
* Contact message inbox (customers can message you from the booking form)

Business Settings
* Business hours and closed days configuration
* Booking lead time (minimum advance notice required)
* Maximum future booking window
* Latest appointment end-time cutoff
* Anti-abuse protection (limit bookings per phone number)

🔒 Pro Features (Upgrade to unlock)

  • Square POS sync — two-way sync of services, staff, and bookings with your Square account
  • Vagaro sync — import appointments from Vagaro
  • SMS Notifications — automated booking confirmations and reminders via Twilio
  • Google Calendar sync — appointments appear on your Google Calendar automatically
  • Brand & Colors — customize logo, colors, fonts, button labels, and border radius to match your brand
  • Advanced staff management — add, edit, and manage staff directly from WordPress (no Square required)
  • Priority support

Upgrade to Pro

How It Works

  1. Install and activate the plugin
  2. Add your services and staff in the WordPress dashboard
  3. Set your business hours
  4. Add the shortcode [ybs_booking] to any page
  5. Customers can start booking immediately

Perfect For

  • Nail salons and nail studios
  • Hair salons and barbershops
  • Spas and massage studios
  • Esthetics and skincare clinics
  • Lash and brow bars
  • Any small service business taking appointments

External Services

This plugin optionally connects to the following third-party services. All connections are opt-in and only occur when you explicitly configure and enable the relevant integration in the plugin settings.

Square Appointments (Optional)

If you configure Square integration, this plugin communicates with the Square API to:
— Fetch your services, staff, and booking availability from Square
— Create and manage bookings in your Square Appointments calendar
— Sync booking data between your WordPress site and Square

What data is sent: Customer name, email, phone number, selected service, staff member, and appointment date/time are sent to Square when a booking is created. Availability queries send service and staff IDs.
When it is sent: Only when a visitor submits a booking form, or when the admin triggers a manual sync.
Service provider: Square, Inc.
Terms of Service
Privacy Policy

Square Booking Widget (Optional — Hybrid Mode)

If you enable «Hybrid Mode» in settings, a JavaScript widget is loaded from Square’s servers to display Square’s native booking interface.

This plugin loads a script from https://square.site/appointments/buyer/widget/ to embed Square’s booking widget.

What data is sent: The visitor’s browser connects to square.site to load the widget script. No personal data is sent until the visitor interacts with the widget.
When it is sent: Only when a page containing the booking shortcode is loaded and Hybrid Mode is enabled.
Service provider: Square, Inc.
Terms of Service
Privacy Policy

Vagaro (Optional)

If you configure Vagaro integration, this plugin communicates with the Vagaro API to fetch availability and create bookings.
What data is sent: Customer name, email, phone, service, and appointment details.
When it is sent: Only when a visitor submits a booking form with Vagaro mode enabled.
Service provider: Vagaro Inc.
Terms of Service
Privacy Policy

Google Calendar (Optional)

If you configure Google Calendar integration, this plugin connects to the Google Calendar API to add booking events to your calendar.
What data is sent: Booking details (customer name, service, date/time) are sent to Google.
When it is sent: Only when a booking is confirmed and Google Calendar integration is enabled.
Service provider: Google LLC
Terms of Service
Privacy Policy

Twilio SMS (Optional)

If you configure Twilio integration, SMS notifications are sent via the Twilio API.
What data is sent: Customer phone number and booking details.
When it is sent: Only when a booking is confirmed and Twilio SMS is enabled.
Service provider: Twilio Inc.
Terms of Service
Privacy Policy

Note: The free version of this plugin works entirely locally — no external services are required or contacted unless you explicitly configure an integration in the settings.

Скриншоты

  • Service selection — categorized services with photos, descriptions, and pricing
  • Date & time picker — multi-service booking with guest support and real-time availability
  • Full booking view — step progress bar, service summary, and appointment sidebar
  • Mobile — service selection on phone
  • Mobile — calendar and floating cart bar
  • Mobile — cart drawer showing appointment summary

Установка

  1. Download and upload the plugin ZIP via WordPress Admin Plugins Add New Upload Plugin
  2. Activate the plugin
  3. Go to Yatoon Booking Settings to configure your business hours and email settings
  4. Go to Yatoon Booking Services to add your services
  5. Go to Yatoon Booking Staff to add your staff members
  6. Add [ybs_booking] shortcode to any page to display the booking form
  7. That’s it — your booking page is live!

Часто задаваемые вопросы

Does this plugin work without Square or any other third-party account?

Yes! The free version is 100% local. Everything — services, staff, bookings, availability — is managed inside WordPress. No Square account, no API keys, no external services needed.

How do customers book appointments?

Add the shortcode [ybs_booking] to any WordPress page. Customers will see a beautiful multi-step booking form where they can choose a service, staff member, date and time, and enter their contact details.

Can customers book for multiple people at once?

Yes! The booking form supports group bookings. Customers can add services for themselves and additional guests (Guest 2, Guest 3, etc.) all in one appointment session.

Can I add multiple services per appointment?

Yes. Customers can add multiple services for themselves or for each person in their group. The form automatically calculates total duration and finds available time slots that fit everything.

Does it work on mobile?

Yes, fully. The booking form is responsive and mobile-optimized, with a floating cart bar that keeps the appointment summary visible while browsing services.

How do I limit how far in advance customers can book?

Go to Yatoon Booking Settings and set the «Maximum booking window» (e.g. 60 days in advance) and «Minimum lead time» (e.g. 2 hours notice required).

Can I block specific customers?

Yes. Go to Yatoon Booking Blacklist and add customer phone numbers to prevent them from making new bookings.

What happens when a time slot is fully booked?

Customers can join a waitlist. You’ll see waitlisted customers in Yatoon Booking Waitlist and can contact them if a cancellation opens up.

How do I upgrade to Pro?

Click ⬆️ Upgrade to Pro in the Yatoon Booking admin sidebar, or visit yatoon.com/pricing. After purchase, download the Pro ZIP from your account and install it via Plugins Add New Upload Plugin.

Does the free version have any limits on services or staff?

No artificial limits in the free version — add as many services and staff as you need.

Is this compatible with my theme?

The booking form uses self-contained CSS and works with any standard WordPress theme. It does not depend on any page builder.

Отзывы

Нет отзывов об этом плагине.

Участники и разработчики

«Yatoon Booking System» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Перевести «Yatoon Booking System» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.1.5

  • Fixed: All color option values in class-yatoon-frontend.php now wrapped with sanitize_hex_color() before CSS injection
  • Fixed: admin/views/bookings.php ABSPATH check moved before global \$wpdb

1.1.3

  • Fixed: Replaced all $table_xxx variables in SQL queries with {$wpdb->prefix}tablename directly (resolves InterpolatedNotPrepared + UnescapedDBParameter)
  • Fixed: All date() calls replaced with gmdate() (25 instances)
  • Fixed: strip_tags() replaced with wp_strip_all_tags()
  • Fixed: Added phpcs:disable/enable to all view files for NonPrefixedVariableFound (view files are included partials, not global scope)
  • Fixed: Added nonce verification to ajax_get_staff_services and ajax_update_staff_services
  • Fixed: ExceptionNotEscaped in cron.php — exceptions are logged, not echoed to users
  • Fixed: UnfinishedPrepare — $placeholders and $ph contain %d format strings
  • Fixed: NonPrefixedFunctionFound — sbs_resolve_font renamed to yatoon_resolve_font
  • Fixed: SBS_* backward-compat constants annotated with phpcs:ignore
  • Fixed: MissingTranslatorsComment — added /* translators: */ comments
  • Fixed: EscapeOutput remaining instances in admin views

1.1.2

  • Compliance: Renamed all plugin prefixes from ybs_/sbs_ to yatoon_ (≥4 chars) per WP.org guidelines
  • Compliance: Renamed all class names from SBS_* to YATOON_*
  • Compliance: Added == External Services == documentation to readme.txt
  • Security: Replaced all _e() with esc_html_e() for proper escaping (68 instances)
  • Security: Added nonce verification to Google OAuth callback (state parameter)
  • Security: Replaced remaining stripslashes() with wp_unslash()
  • Security: Added sanitize_text_field() to $_SESSION reads
  • Security: Added wp_unslash() to all JSON POST data reads
  • i18n: Added missing text domain to __() calls in activator.php
  • i18n: Fixed shortcode names to yatoon_booking and yatoon_customer_portal
  • Compatibility: Updated Tested up to WordPress 6.9

1.1.1

  • Security: Added direct file access protection (ABSPATH check) to all PHP files
  • Security: Added nonce verification to sync_bookings_from_square, debug_square_availability, debug_date_bookings handlers
  • Security: Replaced wp_redirect() with wp_safe_redirect() throughout
  • Security: Added wp_unslash() to all sanitize calls for POST/GET input
  • Security: Escaped all unescaped output in admin and public views
  • Security: Sanitized $_SERVER[‘REMOTE_ADDR’] via sanitize_text_field()
  • Compatibility: Removed unnecessary load_plugin_textdomain() call (not needed for WP 6.0+)
  • i18n: Fixed text domain — unified all strings to ‘yatoon-booking-system’
  • i18n: Fixed admin page slug URL references
  • Tested up to WordPress 6.8

1.1.0

  • Initial public release on WordPress.org