=== Yatoon Salon Booking & Appointments === Contributors: yatoon, freemius Tags: booking, appointments, salon, spa, square Requires at least: 5.8 Tested up to: 7.0 Requires PHP: 7.4 Stable tag: 4.5.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Mobile-first salon booking with staff scheduling, customer self-service, reminders, flexible payments, and optional Square integration. == Description == **A flexible WordPress booking system built for salons, spas, and service businesses.** The free version provides a complete local booking workflow, while Pro adds Square integration and advanced operational features. Yatoon has powered daily bookings at a real nail salon for more than a year, connecting a branded customer experience with day-to-day salon operations. **[Try the live booking demo](https://yatoon.com/bookingdemo/)** - no account or installation required. = Start booking with Free = Square is not required. Local mode runs inside WordPress and gives service businesses a practical booking system without connecting an external scheduling or payment account. * Mobile-first booking for services, options, staff, date, time, customer details, and confirmation * Services, service variations, qualified staff, business hours, staff schedules, breaks, and closed dates * Any Staff assignment and final server-side availability checks to help prevent schedule conflicts * Multiple services and guests in one booking journey, with separate staff choices and reference photos * Booking calendar, appointment management, client records, notes, and basic reports * Email confirmations and configurable booking notifications * Secure customer self-service for viewing, cancelling, rescheduling, rebooking, and adding appointments to a calendar * Staff Portal schedule view for day-to-day mobile access * Service menu, waitlist, form fields, brand basics, privacy tools, and import/export tools * Gutenberg blocks, Elementor widgets, shortcodes, responsive layouts, RTL styles, and maintained language catalogs * Up to two staff members in the Free plan = Grow with Pro = Upgrade when your business needs Square, payments, automation, more staff, or broader salon operations. Pro includes everything in Free, plus: * Unlimited staff members * Square Appointments and POS workflows, Square online payments, deposits, refunds, sync monitoring, and recovery tools * Optional Vagaro synchronization and Google Calendar two-way availability * Stripe and PayPal payment options, deposits, prepayment, invoices, taxes, and refund workflows * SMS reminders through Twilio and optional WhatsApp workflows * Packages, memberships, gift cards, coupons, loyalty, recurring appointments, waitlist automation, broadcasts, and review requests * Advanced customer self-service, including changing services safely * Multi-location rules, shared resources, inventory, commissions, dynamic pricing, group classes, reports, and automations * Advanced brand controls, operational diagnostics, authenticated REST integrations, and priority support * Native Bricks, Beaver Builder, and Divi booking modules External providers are optional and require their own accounts, credentials, supported regions, and any applicable provider fees. = Reliability for real salon operations = Yatoon rechecks staff qualification, working hours, breaks, closed dates, existing appointments, and relevant external availability before sensitive booking changes are saved. If confirmation fails, the booking form keeps the customer's details and provides clear recovery actions instead of forcing the customer to start over. Pro's Operations health center adds recent sync activity, webhook status, stale-sync warnings, failed background jobs, retry controls, migration status, upgrade snapshots, rollback tools, performance measurements, and a privacy-safe technical summary for support. = Add Yatoon anywhere = * `[yatoon_booking]` - complete booking form * `[yatoon_service_menu]` - visual service menu with Book buttons * `[yatoon_customer_portal]` - customer self-service portal * `[yatoon_staff_portal]` - mobile staff schedule portal * `[yatoon_growth_storefront]` - Pro package and membership storefront * `[yatoon_group_appointments]` - Pro capacity-based classes and independent attendee reservations Every major shortcode is also available as a native Gutenberg block and Elementor widget. == Installation == 1. Install and activate Yatoon Salon Booking. 2. Complete **Yatoon Booking > Setup Wizard**. 3. Configure services, variations, staff qualifications, schedules, business hours, breaks, and closed dates. 4. Stay in Local mode with Free, or connect the integrations your Pro workflow requires. 5. Add the Yatoon Booking block, Elementor widget, or `[yatoon_booking]` shortcode to a public page. 6. Exclude booking and portal pages from full-page caching and delayed JavaScript optimization. 7. Complete a test booking and confirmation before launch. If configured, also test payment, refunds, synchronization, customer self-service, and staff workflows. == Screenshots == 1. Mobile-first booking with a clear five-step flow, service choices, and persistent cart. 2. Service variations, upgrades, options, and recommended add-ons. 3. Pro multi-service group appointments for a client and guests in one visit. 4. Qualified staff selection with Any Staff and preferred-team choices. 5. Recommended openings plus fast week, month, and time selection. 6. Per-service reference photo uploads with a visible Uploaded confirmation. 7. Complete confirmation receipt with guests, services, times, prices, directions, and calendar actions. 8. Service catalog controls for categories, pricing, status, and upload rules. 9. Pro brand controls for logos, colors, typography, buttons, and live previews. 10. Mobile Staff Portal with a practical day calendar. 11. Customer self-service for reviewing, rescheduling, or cancelling safely, with Pro service changes. 12. Pro service changes with duration checks and qualified available staff. == Frequently Asked Questions == = Does the Free version require Square or another external service? = No. Free can run in Local mode inside WordPress. Square, Vagaro, Stripe, PayPal, Twilio, and Google Calendar are optional Pro integrations. = What makes Yatoon different from a generic appointment plugin? = Yatoon focuses on salon workflows: service variations, multi-service visits, reference photos, qualified technicians, Any Staff assignment, customer self-service, and practical staff and client tools. Pro extends those workflows with Square and other advanced operations. = What does Pro add? = Pro adds unlimited staff, Square and Vagaro synchronization, online payments and deposits, SMS and calendar integrations, advanced customer self-service, growth tools, multi-location operations, and priority support. Features that use third-party providers require separately configured provider accounts. = What does the Square integration cover? = Square is optional and available in Pro. Yatoon Pro supports Square Appointments and POS workflows plus Square online payment, deposit, and refund options. Exact behavior depends on correct Square location, service, variation, team-member, and permission mappings. = How does Yatoon protect against schedule conflicts? = It checks staff qualification, working hours, breaks, closed dates, existing appointments, shared resources, and external availability where applicable. A final server-side check runs immediately before the change is saved. = Can one booking contain several services or guests? = Yes. Each guest can have separate services, staff assignments, timing, and reference photos while remaining part of one booking journey. = Can customers and staff manage appointments from a phone? = Yes. The Customer Portal provides secure self-service and the installable Staff Portal is designed for mobile daily operations. = Does it support deposits and online payments? = Online payments and deposits are available in Pro. Configure only the provider and deposit rules required by your business, then test the full payment and refund workflow in the provider's test environment before going live. = Is Yatoon multilingual? = Yes. Yatoon is translation-ready and includes maintained catalogs for Simplified Chinese, Traditional Chinese, Spanish (Spain and Mexico), and Vietnamese. English is the source language. Community translations distributed by WordPress.org continue to work, and untranslated strings safely fall back to English. Business-owned service names, descriptions, policies, and custom labels remain editable by the site owner. = Where can I get help? = Downloads, licensing, updates, and priority support are available through [Yatoon.com](https://yatoon.com/). Copy the privacy-safe technical summary from Operations when reporting an integration problem. == External Services and Privacy == Free Local mode performs booking and availability inside WordPress and does not require Square, Vagaro, Stripe, PayPal, Twilio, Google Calendar, Microsoft Outlook, or Meta WhatsApp. The plugin bundles Freemius for optional account connection, licensing, updates, and upgrade screens. Freemius is contacted when an administrator chooses to opt in, connect an account, manage a license, or use related services, and may receive the site, administrator, plugin, WordPress, PHP, and license information required to provide them. See [Freemius Privacy Policy](https://freemius.com/privacy/) and [Terms](https://freemius.com/terms/). Pro integrations contact only the providers an administrator configures and enables. Depending on the workflow, the minimum required booking, customer, staff, catalog, calendar, message, payment, refund, location, and provider-reference data is sent to that provider. Provider credentials are stored encrypted in WordPress; Yatoon diagnostics must not include them. * [Square Privacy](https://squareup.com/us/en/legal/general/privacy) * [Vagaro Privacy](https://www.vagaro.com/privacy) * [Stripe Privacy](https://stripe.com/privacy) * [PayPal Privacy](https://www.paypal.com/us/legalhub/privacy-full) * [Twilio Privacy](https://www.twilio.com/en-us/legal/privacy) * [Google Privacy](https://policies.google.com/privacy) * [Microsoft Privacy](https://privacy.microsoft.com/privacystatement) * [Meta Privacy](https://www.facebook.com/privacy/policy/) Site owners are responsible for obtaining required consent, publishing an accurate privacy notice, configuring retention, and complying with the rules of their region and chosen providers. == Changelog == = 4.5.4 = * Restored the merchant-facing Square note for single-service Any Staff bookings while retaining the concrete team member chosen from live availability. * Rebuilt saved appointment cards after a checkout-page refresh and prevented completed-step navigation from opening a misleading empty appointment. * Prevented mixed-language AM/PM markers inside a single appointment time range when the visitor and site use different locales. * Fixed MySQL 8 upgrade snapshots and restores for booking tables that contain generated conflict-guard columns. * Made the Commerce order-number migration compatible with legacy non-unique indexes while retaining a separate uniqueness guarantee when data permits. * Distinguished historical timing rows from detailed diagnostic samples, added an image-upload threshold, and kept small samples in a neutral collecting state. * Preserved the exact Square team member that made an Any Staff slot available and revalidated the same assignment at confirmation. * Added actionable booking-failure recovery with retry, choose-another-time, and choose-staff actions while keeping customer form data intact. * Added privacy-safe booking reference numbers for support correlation and clearer availability, network, payment, and conflict failure categories. * Expanded Square staging acceptance coverage, immutable-build release checks, support diagnostics, and activation/shortcode troubleshooting. * Added slow-request percentages and tail-latency guidance to Performance & Reliability without adding work to the public booking path. * Added P50/P95/P99 timing, database-query and provider-time attribution, payload classification, and privacy-safe bottleneck reporting for real booking traffic. * Polished the five-minute setup path with progress, starter content, launch readiness, and a required test-booking milestone. * Improved mobile-keyboard behavior, long-label wrapping, focus visibility, reduced-motion support, touch targets, and recovery-panel focus handling. * Expanded Chrome, WebKit, Pixel, and iPhone automation plus failure-recovery, performance, acceptance, case-study, and video documentation. = 4.5.3 = * Added tested runtime profiles for Square single-store, Square multi-store, Local lean, and the complete platform. * New installations default to a lean profile; upgrades preserve every existing module choice until an administrator deliberately changes profiles. * Disabled modules and unconfigured payment/integration providers now skip their PHP boot, hooks, routes, cron jobs, menus, and search entries. * Prevented Stripe.js from loading alongside active Square Online Payments and added release contracts for Square-only operation. * Replaced broad machine-generated locale bundling with a smaller maintained language set; Spanish and Vietnamese received terminology, brand, booking-context, placeholder, and catalog compilation review. = 4.5.2 = * Corrected WordPress dbDelta schema syntax, rebuilt audited production assets, strengthened multi-service pricing, and completed 24-locale release validation. * Improved checkout total alignment in desktop sidebars, mobile drawers, and RTL layouts. = 4.5.1 = * Replaced per-request schema DDL with a locked, versioned migration manifest that writes its completion marker only after verification. * Added privacy-safe diagnostic redaction for credentials, email addresses, phone numbers, and sensitive query parameters. * Corrected Free/Pro licensing metadata, release titles, version constants, locale counts, and translation-coverage claims. * Added deterministic release checks for PHP, JavaScript, JSON, gettext catalogs, package tiers, and archive contents. * Expanded bundled locale catalogs with explicit coverage reporting and safe English fallback. = 4.5.0 = * Added public throttling and generic failure responses for gift-card/coupon validation, plus a 60-request-per-minute availability budget. * Added explicit local and UTC creation timestamps for appointments so optional Pro background jobs never depend on the MySQL server timezone. * Added safe cleanup of optional WooCommerce background jobs when switching from Pro to Free. * Pro adds optional WooCommerce checkout, signed webhooks for Zapier/Make/n8n, Zoom meetings and Google Meet. * Added an Integrations settings entry with a clear Pro upgrade gate; integrations remain off by default. * Includes all search, staff assignment, payment, WhatsApp and reliability improvements prepared for the previous release candidate. = 4.4.5 = * Expanded topbar search into a complete catalog of Yatoon pages, hidden tools, settings tabs, settings sections, runtime menus, and English/Chinese aliases with relevance ranking. * Added editable Staff Priority to employee profiles; smaller numbers appear first and new employees default to the end of the list. * Pro adds PayPal Checkout and restores Stripe deposit checkout; payment gateways remain a Pro feature. * Pro adds Meta WhatsApp Cloud API transactional notifications through approved templates. * Removed an unreferenced JavaScript build artifact and added release/package validation guidance. * Added a visible single-writer database deployment warning to Platform settings. * Expanded the admin topbar search with feature keywords and English/Chinese aliases while keeping Pro-only results hidden. * Added direct topbar search results for Complete Backup & Restore, including backup, restore, migration, snapshot, 备份, and 恢复 keywords. * Hardened admin diagnostics: raw booking and Square inspection endpoints now require WP_DEBUG or YATOON_ENABLE_ADMIN_DIAGNOSTICS, reject invalid dates/service IDs, and HTML-escape database/API output. * Enlarged the Add guests and services remove control to a clear 42px circular target and added direct Remove beside Edit on Step 4; confirmation now refreshes the group review only after the service is actually deleted. * Added an accessible one-click Remove action beside Edit in the appointment summary; it clears the selected service and dependent options, staff and time without leaving stale totals. * Expanded the Customer Account Center with editable profile preferences, balance payment links, signed invoice downloads, package and membership history, and atomic loyalty reward redemption. * Added a recommended admin settings view that keeps common store controls visible while placing developer credentials and synchronization internals behind an accessible Advanced toggle. * Rebuilt the Step 4 appointment summary as calm, responsive person/service cards with readable staff selection and accessible edit, remove and reorder controls. * Removed technical timing offsets and competing green treatments from the customer flow; booking typography is now isolated from theme heading styles. * Upgraded Customer Wallet from a placeholder to verified account data for gift cards, packages, memberships, loyalty points, balance due and payment history. * Extended Brand & Colors live preview to include page, card, border and primary-action styling before saving. * Added a real-salon case study, public trust checklist, three short video storyboards, desktop/mobile regression matrix and automated release-contract checks. * Preserved the group-booking return flow introduced in 4.4.4 and retained all established booking, staff and admin workflows. For the complete version history, see `changelog.txt` included with the plugin.