=== Yatoon Salon Booking - Appointment Calendar for Salons & Spas ===
Contributors: yatoon, freemius
Tags: appointment booking, booking calendar, salon booking, spa booking, scheduling
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 4.0.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Demo: https://yatoon.com/bookingdemo/

Mobile-first appointment booking for salons, spas, nail studios, and beauty businesses. No monthly SaaS required.

== Description ==
= Start taking salon appointments from your WordPress site =

Yatoon gives beauty businesses a polished booking flow without sending clients away to another app. Clients choose a service, pick staff or "Any staff", select an available time, enter their details, and receive a confirmation with manage and calendar links.

The free version is built for salons that want a complete local booking system on WordPress: services, staff, business hours, booking pages, confirmation emails, client self-service, service photos, and a staff portal. Pro adds live Square/Vagaro sync, SMS, deposits, no-show workflows, packages, memberships, and advanced automation.

Try the client experience here: https://yatoon.com/bookingdemo/

= Official source, copyright, and support =

Yatoon Salon Booking is an official Yatoon plugin. Official downloads, updates, licensing, and support are provided through https://yatoon.com.

Live demo: https://yatoon.com/bookingdemo/

The plugin code is distributed under the GPLv2 or later, as required for WordPress-compatible distribution. Copyright notices, author attribution, and the Yatoon brand identity must be preserved. Modified or forked versions must not claim to be the official Yatoon release, use Yatoon branding in a misleading way, or imply official support unless authorized by Yatoon.

For the safest installation, download Yatoon only from the official source and avoid unsupported redistributed copies.

= Built for salons, not generic appointments =

After trying plugin after plugin designed for dentists or yoga studios, we gave up and built our own. Yatoon is the booking system we wish existed when we opened our salon - and now we're sharing it with every beauty business owner who's been through the same frustration.

No complicated setup. No $50/month SaaS fees. No features you'll never use. Just a beautiful, fast booking experience your clients will love.

---

= What is included in the free version =

* Mobile-first customer booking form with `[yatoon_booking]`
* Local availability calendar with staff, services, closed dates, and business hours
* "Any staff" booking, or staff selection when clients have a favorite technician
* Multi-service appointments with live total price and duration
* Group appointment flow for clients booking with a guest
* Service menu, catalog, and gallery shortcodes for visual beauty service pages
* Customer confirmation emails and self-service manage links
* Staff portal for technicians to view their schedule
* Client records, appointment notes, custom fields, and service photos
* Setup wizard with optional demo services and automatic booking page creation

Yatoon works normally without AI, without Square, and without an outside booking subscription.

---

= Why salon owners choose Yatoon =

Most booking plugins were built for generic businesses. Yatoon was built for **beauty**. That means:

* Clients can book multiple services in one visit - nails + pedicure + eyebrows, all in one checkout
* Group appointments let one client book for herself and a guest, with separate services and staff
* Service cards can show photos, duration, pricing, and a Book action directly on the page
* Staff profiles and customer ratings help clients choose who they trust
* The booking form is designed for phones first, where most salon clients actually book
* Setup can create the booking page for you, so you are not guessing which shortcode goes where

This is the stuff that actually matters in a salon. Everything else is just noise.

---

= Booking experience clients understand =

* Clear steps for service, options, staff, time, and customer information
* Live appointment summary with price and duration before checkout
* "Just me" and "Group appointment" modes so guest booking does not confuse single clients
* Waitlist capture and "Text Us" fallback when clients cannot find a good time
* Add to Calendar links for Google, Apple, and Outlook after booking
* Self-service appointment links so clients can reschedule or cancel without calling

---

= Free vs Pro =

The free version is best for salons that want WordPress-hosted booking with local availability.

Upgrade to Pro when you need:

* Square Appointments or Vagaro live sync
* SMS reminders through Twilio
* Google Calendar sync
* Deposits, prepay, coupons, gift cards, memberships, and packages
* Waitlist auto-notify and no-show tracking
* AI reply drafts for Text Us messages
* Priority support from the Yatoon team

---

= Everything you need to launch =

**For your clients:**
* Beautiful booking form that matches your website
* Instant confirmation email with full appointment details
* Automated reminder email before their appointment
* One-tap star rating after their visit - no login required
* Secure link to reschedule or cancel anytime

**For your team:**
* Staff portal - technicians view their own schedule on their phone, no logins needed
* Staff profiles with photos, bios, and real star ratings
* Each staff member linked to only their services

**For you:**
* Dashboard with today's bookings and launch readiness checks
* Client list with visit history, notes, and allergy information
* Closed dates manager - block holidays for everyone with one click
* Custom booking form fields - add questions like nail shape preference, allergy notes, or reference photos
* Fully customizable confirmation email template

---

= Service display shortcodes =

* **`[yatoon_booking]`** - the full booking form. Put it on any page.
* **`[yatoon_service_menu]`** - restaurant-style menu with photos, prices, and Book buttons. Clients browse and book without leaving the page.
* **`[yatoon_catalog]`** - image card grid with category filters.
* **`[yatoon_gallery]`** - auto-scrolling photo carousel of your work. Supports mobile swipe, lightbox, and infinite loop.
* **`[yatoon_customer_portal]`** - client self-service: view upcoming bookings, reschedule, cancel.
* **`[yatoon_staff_portal]`** - technician schedule viewer. Installable as a home screen app on iPhone and Android.

---

= Get started in 5 minutes =

1. Install and activate the plugin
2. Open the Setup Wizard from Yatoon > Setup Wizard
3. Choose "Add demo services" if you want a quick test salon to explore
4. Let Yatoon create your booking page, or add `[yatoon_booking]` to an existing page
5. Add your real services, staff, prices, and hours
6. Open the booking page on your phone and place one test appointment

That's it. Your clients can start booking.

= WordPress AI-ready, but optional =

Yatoon can use the WordPress AI Client when an AI provider is connected in WordPress Settings > Connectors. AI is optional: if no provider is connected, the normal booking system keeps working.

* AI service helper can suggest matching services from your real service menu
* AI service description helper can improve admin-written service descriptions
* Yatoon does not store AI provider API keys and does not charge for AI usage
* AI prompts are instructed not to invent prices, appointment times, medical advice, refunds, or policies

= External Services and Privacy =

AI features use the WordPress 7.0 AI Client when a site administrator connects an AI provider in WordPress Settings > Connectors. Yatoon does not store AI provider API keys and does not charge for AI usage. Any AI usage cost depends on the site owner's selected AI provider. On WordPress 6.9 and older, AI features stay hidden and the booking system continues to work normally.

Pro integrations connect only after the site administrator enables them and enters credentials. Depending on enabled features, booking, customer, payment, calendar, or message data may be exchanged with Square, Vagaro, Stripe, Twilio, Google Calendar, or Freemius to provide the requested service.

When a site administrator opts in to Freemius software analytics, Yatoon also sends one-time setup funnel event names together with the plugin version, Free/Pro tier, booking mode, and event time. These events do not include customer names, contact details, appointment content, payment information, or an explicit site-domain property. Sites that do not allow tracking keep these milestones only in their own WordPress database.

* Square: https://squareup.com/us/en/legal/general/privacy
* Vagaro: https://www.vagaro.com/PrivacyPolicy.aspx
* Stripe: https://stripe.com/privacy
* Twilio: https://www.twilio.com/en-us/legal/privacy
* Google Calendar / Google APIs: https://policies.google.com/privacy
* Freemius: https://freemius.com - Terms: https://freemius.com/terms/ - Privacy: https://freemius.com/privacy/

== Screenshots ==

1. Mobile customer booking flow with Just me and Group appointment choices.
2. Service categories, popular picks, service photos, prices, and durations.
3. Staff selection with Any staff and technician profiles.
4. Time picker with a running appointment summary.
5. Checkout details with customer information, notes, and confirmation.
6. Successful booking with manage appointment and Add to Calendar actions.
7. Restaurant-style service menu for browsing and booking from a services page.
8. Customer portal for upcoming appointments, rescheduling, cancellation, and rebooking.
9. Setup wizard that can add demo services and create booking pages.
10. Admin dashboard with launch checks and today's appointments.
11. Services manager with prices, durations, photos, options, and visibility controls.
12. Staff portal PIN entry for shared salon devices.
13. Staff day calendar with appointments, customers, checkout, and messages.
14. Appointment detail screen for customer, service, payment, and status actions.
15. Add-ons store showing which free and Pro growth tools are available.

== Frequently Asked Questions ==

= Does this work with Square or Vagaro? =

Real-time Square and Vagaro sync is available in Yatoon Pro. The free version supports local availability through the built-in Yatoon calendar.

= Can clients book for a group? =

Yes. Yatoon supports group appointments - your client can book services for themselves and a guest in a single checkout, with separate service and staff selection for each person.

= Can I add multiple services to one appointment? =

Yes. Clients can add as many services as needed. The booking form shows a running total of time and price, and the calendar finds a start time that fits the full combined duration.

= Is it mobile-friendly? =

Yatoon is designed mobile-first. The booking form, service menu, and photo gallery all work smoothly on phones and tablets.

= Does it send confirmation emails? =

Yes. Automated confirmation emails go out immediately after booking, with a full appointment summary and a link to manage or reschedule.

= Can clients leave a star rating without creating an account? =

Yes. After their appointment, clients receive an email with a one-tap star rating link. No login or account required.

= How do I display my service photos? =

Upload photos to each service (Services > Edit > Gallery Images), then add `[yatoon_gallery]` to any page. The carousel auto-scrolls and supports swipe on mobile.

= Does AI cost money? =

WordPress 7.0 provides the AI Client interface, but the site owner pays their chosen AI provider if that provider charges for usage. Yatoon does not store AI API keys or charge for AI usage.

= Does Yatoon still work on WordPress 6.9? =

Yes. The booking system remains compatible with WordPress 6.9 and older. AI features only appear when the WordPress 7.0 AI Client is available and configured.

= What languages is Yatoon available in? =

Yatoon is translation-ready and compatible with WPML and Polylang. All strings are localized.

== Changelog ==

= 4.0.3 =
* Added a compact search bar under the category tabs on the booking page so customers can quickly find a service by name or description.
* Fixed Business Logo not saving in Brand & Colors (logo was written to the wrong option key and never appeared on the booking page, portal, or emails).
* Fixed deleted/renamed service categories lingering forever in the Brand & Colors "Category Order & Names" list.

= 4.0.2 =
* Improved contrast for the Today command card in the owner dashboard.
* Removed the duplicate horizontal scrollbar from the Staff table.
* Reworded the customer design-image upload prompt to clearly request a reference photo showing the desired color, shape, or nail art.

= 4.0.1 =
* Reworked the WordPress.org readme positioning around salon-specific booking, free/pro clarity, screenshot captions, and setup copy.
* Fixed the Just me booking path so single-client appointments go directly to time selection instead of the guest/service review screen.
* Tightened mobile service category tabs and the More control so narrow phones show the full button.
* Made the customer self-service post-cancel buttons compact on mobile screens.
* Preserved existing bookings, shortcodes, staff portal links, customer self-service links, services, staff, settings, and local availability.

= 3.6.0 =
* Added a Today workspace with next-client, appointment, unpaid, pending, and late indicators.
* Added Staff, Manager, and Owner permission presets while retaining granular portal permissions.
* Added staff time-off requests with manager approval or rejection and automatic availability blocking.
* Added client visit history, allergy, preference, and recent-note context to appointment details.
* Replaced squeezed mobile multi-staff columns with horizontal employee tabs.
* Preserved existing appointments, availability rules, staff PINs, shortcodes, and settings.

= 3.5.0 =
* Added a dedicated Yatoon admin shell and improved responsive admin layouts.
* Refined the staff portal with Day, Week, and Agenda views.
* Added secure customer design-image uploads for enabled services and design add-ons.
* Added reusable existing-item selection for service options with shared reference IDs.
* Improved mobile booking progress, fixed visible encoding artifacts, and preserved 3.4.0 compatibility.

= 3.4.0 =
* Improved: Preserved the 3.3.20-3.3.29 Services admin refinements as the new release baseline.
* Improved: Added clearer Active/Hidden controls, editable options, compact service cards, and reliable responsive widths.
* Analytics: Added a privacy-aware five-step activation funnel using Freemius only on sites that already allow tracking.
* Privacy: Conversion events exclude customer, appointment, payment, and explicit site-domain data.
* Stability: Free and Pro share the same telemetry and database core, backed by release parity tests.

= 3.3.29 =
* Replaced the Services list status checkbox with a clear Active/Hidden status button so selection and visibility controls are no longer confused.
* Widened the Edit Service modal, added an explicit close button, and prevented option action controls from being clipped.
= 3.3.28 =
* Made Service Options / Variations editable directly inside the Edit Service modal, including name, duration, price, and type.
* Added per-option Save and Delete controls so add-ons no longer need to be deleted and recreated for small changes.
= 3.3.27 =
* Reworked the Services admin page into self-contained service rows that show key details without dragging right.
* Disabled resizable-column behavior for the Services list so old saved column widths cannot squeeze the visible content.

= 3.3.26 =
* Reworked the Services admin list into a compact overview that fits common admin screens without hunting for far-right actions.
* Added click-row-to-edit behavior so service details, categories, options, and add-ons are managed in the edit modal instead of a wide inline table.

= 3.3.25 =
* Moved Services admin management actions into the top toolbar: select one service, then Edit Selected, Add Add-on, or Delete Selected.
* Hid the far-right row Actions column from the Services table so important controls no longer require horizontal scrolling.

= 3.3.24 =
* Fixed the Services admin table column initialization so Service Name no longer expands and pushes Duration, Price, Category, Status, and Actions off-screen.
* Preserved resizable columns while applying practical default widths and a one-time reset of older saved oversized Services table widths.

= 3.3.23 =
* Refined the Services admin table so default columns start narrower while remaining resizable by the user.
* Reset old saved Services table widths and made service selection update immediately on pointer down.

= 3.3.22 =
* Improved the Services admin table so key actions stay visible without horizontal hunting on desktop screens.
* Made service row selection more reliable by increasing checkbox hit targets and allowing the checkbox cell to toggle selection.

= 3.3.21 =
* Improved the Services admin option editor with visible Save/Delete actions, Unsaved/Saved feedback, and clearer inline option management.
* Fixed duplicate horizontal scrollbars on the Services admin table so option editing is easier to use.

= 3.3.20 =
* Fixed mobile option and add-on cards on Android/narrow browsers so long service option names wrap normally instead of collapsing into vertical text.
* Improved mobile booking width and option-card spacing to reduce empty side gutters while keeping prices and selection circles readable.

= 3.3.19 =
* Stability: Free and Pro now load the same shared core before all business classes.
* Upgrade safety: UI-only releases no longer rerun the full database schema migration.
* Testing: Added automated shared-core, schema-upgrade, package parity, and WP-CLI smoke tests.
* Onboarding: New Square/Vagaro-aware setup wizard with optional demo data, automatic page creation, and direct test booking.
* Insights: Added a local activation funnel from activation through the first real booking.
* Trust: New installations stay clean unless sample staff and services are explicitly selected.

= 3.3.18 =
* Improved: Client profiles now surface VIP, upcoming booking, no-show, and unpaid signals directly in the client list.
* Improved: Square no-show fee statuses are clearer across Staff Portal, admin calendar, and bookings.
* Improved: Booking payment status labels now include no-show fee charged and waived states for cleaner operations.

= 3.3.17 =
* New: Added a Square-only no-show fee workflow for Staff Portal and admin calendar.
* New: Staff can open Square, copy the Square booking ID, mark a no-show fee charged in Square, or waive the fee after marking an appointment No Show.
* Improved: No-show appointments remain visible in operational calendar views so staff can finish the charge/waive decision.

= 3.3.16 =
* Refined: cleaner admin license wording, steadier mobile spacing, stronger button/focus states, and clearer release metadata for Free and Pro packages.
* Improved: tightened service/category cards and booking controls so the interface feels more polished on phone and desktop.

= 3.3.15 =
* Final polish: mobile steps, service cards, category tabs, AI helper, and license/upgrade wording are cleaner and easier to scan.
* Improved: Booking flow copy is clearer across group bookings, staff choice, appointment length, review, and mobile cart states.
* Improved: Add guests and services review uses numbered guest labels and a consistent primary action style.
* Improved: Time selection now uses an Edit Services action that returns customers to the service/guest review instead of defaulting to adding another service for Me.

= 3.3.14 =
* Improved: Group guest appointments now show the time range first and Reserved Time underneath, with guests clearly shown as starting together instead of implying sequential service order.
