{"id":377587,"date":"2026-09-30T05:09:49","date_gmt":"2026-09-30T05:09:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/yappointment\/"},"modified":"2026-09-30T10:51:13","modified_gmt":"2026-09-30T10:51:13","slug":"yappointment","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/yappointment\/","author":23575320,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.4.0","stable_tag":"2.4.0","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"yAppointment","header_author":"yAppointment","header_description":"Embed your yAppointment online booking portal into your WordPress site with a shortcode, a block or a floating booking button.","assets_banners_color":"f5f1ec","last_updated":"2026-09-30 10:51:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/yappointment.com\/features\/integrations\/wordpress","header_author_uri":"https:\/\/yappointment.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":46,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.3.3":{"tag":"2.3.3","author":"yappointment","date":"2026-09-30 05:09:23","revision":3720340},"2.4.0":{"tag":"2.4.0","author":"yappointment","date":"2026-09-30 10:51:13","revision":3721027}},"upgrade_notice":{"2.4.0":"<p>Adds the optional Webshop sync for WooCommerce shops. Nothing changes and nothing new is sent until you turn it on.<\/p>","2.3.3":"<p>The setup notice stays on the Plugins screen and the plugin&#039;s own pages. Translations now come from translate.wordpress.org.<\/p>","2.3.2":"<p>Readme and screenshots only. No settings change.<\/p>","2.3.1":"<p>Dialogs in an embedded booking page now open in the visible part of the screen on phones.<\/p>","2.3.0":"<p>Connect with yAppointment in one click. After updating, connect your site once more on Get Started: the booking page is shown only while the site is connected.<\/p>","2.2.1":"<p>Corrects the embedding help on the dashboard: your site only needs HTTPS. No settings change.<\/p>","2.2.0":"<p>Connect your business by pasting its booking page link, preselect a service in the block, and import your brand colours. Existing settings keep working.<\/p>","2.1.0":"<p>Moves the Portal Base URL from the old default (the admin app) to the customer portal, https:\/\/app.yappointment.com. Custom URLs are left unchanged.<\/p>","1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3720340,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3720340,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3720340,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3720340,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"yappointment\/booking":{"name":"yappointment\/booking","title":"yAppointment Booking"}},"tagged_versions":["2.3.3","2.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3720340,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3720340,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3720340,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3720340,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3720340,"resolution":"5","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"Get Started: connect with yAppointment in one click, create a free account, or let us build it for you.","2":"Your booking page on your own site: services with photos, prices, durations and reviews.","3":"The floating \"Book Now\" button opens the booking in a popup on any page.","4":"The yAppointment Booking block in the editor: pick a service and the booking opens with it selected.","5":"Button Styles: the button in your own colours, shape and size."}},"plugin_section":[],"plugin_tags":[276,269,270,11523,268],"plugin_category":[40],"plugin_contributors":[283575],"plugin_business_model":[],"class_list":["post-377587","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment","plugin_tags-booking","plugin_tags-online-booking","plugin_tags-salon","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-yappointment","plugin_committers-yappointment"],"banners":{"banner":"https:\/\/ps.w.org\/yappointment\/assets\/banner-772x250.png?rev=3720340","banner_2x":"https:\/\/ps.w.org\/yappointment\/assets\/banner-1544x500.png?rev=3720340","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/yappointment\/assets\/icon-128x128.png?rev=3720340","icon_2x":"https:\/\/ps.w.org\/yappointment\/assets\/icon-256x256.png?rev=3720340","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/yappointment\/assets\/screenshot-1.png?rev=3720340","caption":"Get Started: connect with yAppointment in one click, create a free account, or let us build it for you."},{"src":"https:\/\/ps.w.org\/yappointment\/assets\/screenshot-2.png?rev=3720340","caption":"Your booking page on your own site: services with photos, prices, durations and reviews."},{"src":"https:\/\/ps.w.org\/yappointment\/assets\/screenshot-3.png?rev=3720340","caption":"The floating \"Book Now\" button opens the booking in a popup on any page."},{"src":"https:\/\/ps.w.org\/yappointment\/assets\/screenshot-4.png?rev=3720340","caption":"The yAppointment Booking block in the editor: pick a service and the booking opens with it selected."},{"src":"https:\/\/ps.w.org\/yappointment\/assets\/screenshot-5.png?rev=3720340","caption":"Button Styles: the button in your own colours, shape and size."}],"raw_content":"<!--section=description-->\n<p><strong>Your clients book while you work.<\/strong> yAppointment puts your booking page on your own WordPress site. A client picks a treatment, a team member and a free time, and the appointment lands in your calendar, day or night, without a phone call.<\/p>\n\n<p>Made for salons, barbers, beauty and nail studios, clinics, therapists, coaches and every business that works by appointment.<\/p>\n\n<h4>No time to set it up? We build it for you<\/h4>\n\n<p>Click <strong>Build it for me<\/strong> on the plugin's Get Started page and send us the link of your website (or your Facebook, Instagram, Planity or Treatwell page). We set up your yAppointment account from it: your services, prices and opening hours. You only check it and connect the site.<\/p>\n\n<h4>What your clients see<\/h4>\n\n<ul>\n<li>Your services with photos, descriptions, prices and durations<\/li>\n<li>Your team: clients can choose who they book with<\/li>\n<li>Only the times that are really free, so there is no double booking<\/li>\n<li>Reviews written by clients after their visit<\/li>\n<li>The booking page in their own language (27 languages, it follows your site's language)<\/li>\n<li>Works on phones, tablets and computers<\/li>\n<\/ul>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li>Every online booking in your yAppointment calendar, next to your walk-ins and phone bookings<\/li>\n<li>Your services, team and opening hours managed in one place<\/li>\n<li>No commission on bookings<\/li>\n<li>A 14-day free trial, no credit card needed<\/li>\n<\/ul>\n\n<h4>Run a WooCommerce shop? Keep it in sync (optional)<\/h4>\n\n<p>If your site sells products with WooCommerce, you can switch on <strong>Webshop sync<\/strong>: your products and stock stay in step with yAppointment, and every paid webshop order appears in yAppointment at once, where you can confirm the payment, ship, add a tracking number or refund it without opening WordPress. What you change there also happens in WooCommerce, through your shop's own settings and payment methods. It is off until you set it up, works with High-Performance Order Storage, and does nothing on a site without WooCommerce.<\/p>\n\n<h4>Put it on your site in three ways<\/h4>\n\n<ul>\n<li><strong>A booking page:<\/strong> add the yAppointment Booking block (or the <code>[yappointment]<\/code> shortcode) to any page<\/li>\n<li><strong>A floating \"Book Now\" button<\/strong> on every page of your site, which opens the booking in a popup<\/li>\n<li><strong>A button for one treatment:<\/strong> the booking opens with that service already selected, great for a price list or a promotion page<\/li>\n<\/ul>\n\n<p>The button takes your colours: pick them yourself, or click <strong>Use my yAppointment colours<\/strong>.<\/p>\n\n<h4>Connect in one click<\/h4>\n\n<p>Click <strong>Connect with yAppointment<\/strong>, sign in to yAppointment in the new tab and confirm your site. You come back to WordPress connected. There is nothing to copy and you never type your yAppointment password into WordPress. New to yAppointment? <strong>Create my free account<\/strong> opens the sign-up with your e-mail address already filled in.<\/p>\n\n<h4>Good to know<\/h4>\n\n<p>The plugin is free. It shows your yAppointment booking page on your site, so you need a yAppointment account (the plugin opens the sign-up for you). yAppointment is a subscription service after the free trial; the prices are at https:\/\/yappointment.com\/pricing. Your site must be served over HTTPS.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin is a client for yAppointment (https:\/\/yappointment.com), a SaaS online booking platform operated by yAppointment. It does not work without a yAppointment account: your booking portal, services and bookings live on yAppointment, and the plugin shows them on your site. Nothing is sent to yAppointment until an administrator clicks one of the buttons on <strong>Get Started<\/strong>. It connects to three yAppointment hosts:<\/p>\n\n<ul>\n<li><p><strong>yAppointment admin app<\/strong> (<code>https:\/\/portal.yappointment.com<\/code>, or the yAppointment Admin URL set under General Settings &gt; Advanced). Where the business signs in to connect the site, creates an account, or asks for a setup.<\/p>\n\n<ul>\n<li>When: only when an administrator clicks <strong>Connect with yAppointment<\/strong> \/ <strong>Reconnect<\/strong>, <strong>Create my free account<\/strong> or <strong>Build it for me<\/strong> on the Get Started page. The administrator's browser opens it in a new tab; WordPress itself sends nothing.<\/li>\n<li>What is sent (in the address of the new tab): this site's address, the address yAppointment returns to after the confirmation, and a one-time random value that protects the return. <strong>Create my free account<\/strong> and <strong>Build it for me<\/strong> also send the clicking administrator's e-mail address (to prefill the form; the button says so) and <code>utm_source=wordpress-plugin<\/code>.<\/li>\n<\/ul><\/li>\n<li><p><strong>yAppointment booking portal<\/strong> (<code>https:\/\/app.yappointment.com<\/code>, or the Portal Base URL set under General Settings &gt; Advanced). Used to show your booking portal on your site.<\/p>\n\n<ul>\n<li>When: only while the site is connected, every time a visitor views a page that contains the <code>[yappointment]<\/code> shortcode, the yAppointment block, or (when enabled) the floating button, and when a visitor opens the booking popup. The visitor's browser loads the portal in an iframe. Showing a page never makes WordPress itself call yAppointment.<\/li>\n<li>What is sent: the portal address contains your company ID, the portal page, the language and, if set, a service ID. As with any embedded page, the visitor's browser also sends its IP address, user agent and the referring page address. Everything the visitor enters inside the embedded portal (for example name, e-mail address, phone number and the booking details) is sent directly to yAppointment to create and manage the booking.<\/li>\n<\/ul><\/li>\n<li><strong>yAppointment API<\/strong> (<code>https:\/\/api.yappointment.com<\/code>, or the API URL set under General Settings &gt; Advanced). Used to finish the connection, to check it, and to read public information about your business. Always from your WordPress server, never from a visitor's browser, and never while a visitor views a page.\n\n<ul>\n<li>When the Connect tab returns to WordPress: <code>POST \/api\/v1\/wordpress\/exchange<\/code> sends the one-time code from the return address and this site's address, and receives the site key and your business's ID, short name and name.<\/li>\n<li>When you connect manually (Advanced) and whenever an administrator opens one of the plugin's admin pages, at most once an hour: <code>GET \/api\/v1\/public\/companies\/{company ID}<\/code> with the site key checks that the connection is still valid (and reads your business name). When you click \"Use my yAppointment colours\" the same request reads your booking portal's colours.<\/li>\n<li>When the block editor loads the Service picker: <code>GET \/api\/v1\/public\/companies\/{company ID}\/services<\/code> with the site key and the editor's language (for the service names).<\/li>\n<li>When you click <strong>Disconnect<\/strong>: <code>POST \/api\/v1\/wordpress\/disconnect<\/code> with the site key, so yAppointment revokes it.<\/li>\n<li>What is sent: the items listed above and the site key (in the <code>Authorization<\/code> header). No data about your visitors is sent, and no data about your WordPress users except the e-mail address described above, which goes only in the address of the tab an administrator opens.<\/li>\n<\/ul><\/li>\n<li><strong>The same yAppointment API, for the optional Webshop sync (WooCommerce only).<\/strong> Nothing below is sent unless WooCommerce is active, the site is connected and an administrator has turned <strong>Webshop sync<\/strong> on and finished the setup in yAppointment (which opens in a new tab). Always from your WordPress server, never from a visitor's browser. Requests after the setup are signed with a secret that only your site and yAppointment know (HMAC-SHA256; the secret is kept in your database and is never put in an address).\n\n<ul>\n<li>Turning it on: <code>POST \/api\/integration\/bridge\/toggle<\/code> sends the switch (on or off) with the site key. If the setup has not been done, yAppointment answers with the address of its setup page, which the plugin opens in a new tab.<\/li>\n<li>When the setup returns to WordPress: <code>POST \/api\/v1\/wordpress\/sync-exchange<\/code> sends the one-time code from the return address and receives the sync secret.<\/li>\n<li>When products, stock or orders change (usually within seconds; retried with a growing pause when yAppointment cannot be reached; after every setup and every switch-on the whole shop is sent again): <code>POST \/api\/integration\/bridge\/events<\/code>.<\/li>\n<li>Products: name, short description, SKU, barcode, price, currency and tax settings, status, type, stock level, main image address, and the yAppointment id stored on the product.<\/li>\n<li>Stock changes: the product, the amount added or removed and the reason.<\/li>\n<li>Paid orders (WooCommerce's own order data): the customer's name, e-mail address, phone number, billing and shipping addresses, the items bought, prices, taxes, totals, payment method, status and order notes; refunds with amounts and items.<\/li>\n<li>Unpaid, failed and abandoned-checkout orders are not sent.<\/li>\n<li>Every 5 minutes while the sync is set up, and when an administrator opens the plugin's Dashboard page (at most once a minute): <code>POST \/api\/integration\/bridge\/status<\/code> reports the WooCommerce version, the plugin version, whether the switch is on, how many changes wait to be sent and the last error message, and receives the state of the sync. Every 5 minutes (only while the switch is on) and on <strong>Sync now<\/strong>: <code>POST \/api\/integration\/bridge\/changes<\/code> asks for changes made in yAppointment.<\/li>\n<li>yAppointment calls your site: <code>POST \/wp-json\/yappointment\/v1\/shop\/command<\/code> on your own site address, signed with the same secret and accepted only when the signature, the timestamp (5 minutes) and a one-time value are valid. It creates or updates a product, changes stock, or changes an order (status, note and tracking number, payment received, refund) with WooCommerce's own functions.<\/li>\n<li>Turning Webshop sync off (or disconnecting the site) stops all of it and removes the secret from your site. The <code>_yappointment_*<\/code> values kept on products and orders (the yAppointment id and a tracking number) stay so that turning it on again links to the same products instead of creating copies.<\/li>\n<li>yAppointment processes this data on your behalf under its Terms of Service and Privacy Policy (links below).<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>yAppointment Terms of Service: https:\/\/yappointment.com\/terms\nyAppointment Privacy Policy: https:\/\/yappointment.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress go to <strong>Plugins &gt; Add New<\/strong>, search for \"yAppointment\", then click <strong>Install Now<\/strong> and <strong>Activate<\/strong> (or upload the zip under <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>)<\/li>\n<li>Go to <strong>yAppointment &gt; Get Started<\/strong><\/li>\n<li>Click <strong>Connect with yAppointment<\/strong> if you have an account, <strong>Create my free account<\/strong> if you are new, or <strong>Build it for me<\/strong> if you want us to set it up. yAppointment opens in a new tab: sign in, confirm this site, and the tab returns to WordPress connected<\/li>\n<li>Add the <strong>yAppointment Booking<\/strong> block to a page, or switch on the floating button<\/li>\n<li>Optional, WooCommerce shops only: on <strong>yAppointment &gt; Dashboard<\/strong> turn on <strong>Webshop sync<\/strong>. yAppointment opens in a new tab for a short setup (stock location, invoicing) and sends you back<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20yappointment%20account%3F\"><h3>Do I need a yAppointment account?<\/h3><\/dt>\n<dd><p>Yes. The plugin shows your yAppointment booking page on your site; your services, calendar and bookings live in yAppointment. Click <strong>Create my free account<\/strong> on <strong>Get Started<\/strong> to start a 14-day free trial (no credit card), or <strong>Build it for me<\/strong> to have us set it up from your website.<\/p><\/dd>\n<dt id=\"what%20does%20%22build%20it%20for%20me%22%20do%3F\"><h3>What does \"Build it for me\" do?<\/h3><\/dt>\n<dd><p>It opens yAppointment in a new tab with your e-mail address and your site's address filled in. You send us the link of your website or social page, and we set up your account from it: services, prices and opening hours. When your account is ready, come back to <strong>Get Started<\/strong> and click <strong>Connect with yAppointment<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20connect%20my%20business%3F\"><h3>How do I connect my business?<\/h3><\/dt>\n<dd><p>Under <strong>yAppointment &gt; Get Started<\/strong>, click <strong>Connect with yAppointment<\/strong>. yAppointment opens in a new tab; sign in, choose the business if you have several, and confirm this site. The tab comes back to WordPress and shows \"Connected to \". Behind the scenes yAppointment gives this site its own site key; you never have to copy it.<\/p><\/dd>\n<dt id=\"can%20i%20connect%20without%20the%20new%20tab%3F\"><h3>Can I connect without the new tab?<\/h3><\/dt>\n<dd><p>Yes. In yAppointment open <strong>Company &gt; Integrations &gt; WordPress<\/strong> and generate a key for your site. In WordPress open <strong>Get Started &gt; Advanced: connect manually with a site key<\/strong>, enter your company ID (or the link of your booking page) and the key, and click <strong>Test and connect<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%3F\"><h3>How do I disconnect?<\/h3><\/dt>\n<dd><p>Click <strong>Disconnect<\/strong> on <strong>Get Started<\/strong>: the site key is revoked in yAppointment and removed from WordPress. You can also disconnect the site in yAppointment (<strong>Company &gt; Integrations &gt; WordPress<\/strong>); the plugin then shows \"Disconnected in yAppointment\" on its pages with a <strong>Reconnect<\/strong> button.<\/p><\/dd>\n<dt id=\"why%20does%20my%20booking%20page%20show%20nothing%3F\"><h3>Why does my booking page show nothing?<\/h3><\/dt>\n<dd><p>The booking page, the block and the floating button are shown only while the site is connected with a valid site key. When the site is not connected, or the connection was removed in yAppointment, visitors see nothing; logged-in administrators see a short \"yAppointment: not connected\" note in its place. A shortcode or block can only show the business this site is connected to. Your site must also be served over HTTPS (see below).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20need%20my%20yappointment%20password%3F\"><h3>Does the plugin need my yAppointment password?<\/h3><\/dt>\n<dd><p>No. You sign in on yAppointment's own site, never in WordPress. WordPress stores only the site key, which lets it read what your public booking page already shows (business name, services, colours). It cannot read bookings or customers, and you can revoke it at any time.<\/p><\/dd>\n<dt id=\"can%20the%20booking%20page%20open%20with%20a%20service%20already%20selected%3F\"><h3>Can the booking page open with a service already selected?<\/h3><\/dt>\n<dd><p>Yes. In the block, pick the service from the <strong>Service<\/strong> list. With the shortcode, add its ID: <code>[yappointment service=\"SERVICE_ID\"]<\/code>. The booking page opens with that service selected.<\/p><\/dd>\n<dt id=\"how%20do%20i%20match%20the%20button%20to%20my%20brand%3F\"><h3>How do I match the button to my brand?<\/h3><\/dt>\n<dd><p>Under <strong>yAppointment &gt; Button Styles<\/strong>, pick the background, text and hover colours, the shape and the size, and click <strong>Save Changes<\/strong>. <strong>Use my yAppointment colours<\/strong> fills the colour fields with your booking page's colours.<\/p><\/dd>\n<dt id=\"my%20booking%20page%20won%27t%20load%20%2F%20shows%20blank\"><h3>My booking page won't load \/ shows blank<\/h3><\/dt>\n<dd><p>Your WordPress site must be served over HTTPS. The yAppointment booking page can be embedded in any HTTPS page and needs no configuration on your side; on a plain-HTTP site the browser refuses the embed and it stays empty (the plugin's settings page warns about this). Also check that <strong>yAppointment &gt; Get Started<\/strong> shows \"Connected to \".<\/p><\/dd>\n<dt id=\"can%20i%20put%20the%20booking%20on%20several%20pages%3F\"><h3>Can I put the booking on several pages?<\/h3><\/dt>\n<dd><p>Yes. Use the block or the shortcode on as many pages and posts as you like, even several on one page. The booking page adjusts its height to its content by itself (<strong>Auto Resize<\/strong> in the settings, on by default).<\/p><\/dd>\n<dt id=\"which%20shortcodes%20are%20there%3F\"><h3>Which shortcodes are there?<\/h3><\/dt>\n<dd><p>[yappointment] shows your booking page in the page. Its options:<\/p>\n\n<ul>\n<li><code>company_id<\/code>: optional. Your connected business is used by default; only the business this site is connected to can be shown<\/li>\n<li><code>page<\/code>: booking, services, events, products, locations, employees, reviews, news, login, register<\/li>\n<li><code>height<\/code>: initial height in pixels (default: 700)<\/li>\n<li><code>width<\/code>: width (100%, 800px, 80vw)<\/li>\n<li><code>lang<\/code>: ar, bg, cnr, cs, da, de, el, en, es, et, fi, fr, hr, hu, it, lt, lv, nb, nl, pl, pt, ro, sk, sl, sv, tr, uk (default: the language of the current page; omitted when the booking page does not support it)<\/li>\n<li><code>style<\/code>: inline (default) or popup<\/li>\n<li><code>class<\/code>: an extra CSS class for the container<\/li>\n<li><p><code>service<\/code>: a service ID; opens the booking page with this service selected<\/p>\n\n<p>[yappointment_button] adds a button that opens the booking in a popup. Its options:<\/p><\/li>\n<li><p><code>company_id<\/code>: optional, as above<\/p><\/li>\n<li><code>page<\/code>: which page to open in the popup (default: booking)<\/li>\n<li><code>text<\/code>: the button label (default: \"Book Now\")<\/li>\n<li><code>lang<\/code>: same values as above<\/li>\n<li><code>class<\/code>: an extra CSS class for the button<\/li>\n<li><code>color<\/code>: the button colour in hex format (default: #4F46E5)<\/li>\n<li><code>service<\/code>: a service ID; opens the booking page with this service selected<\/li>\n<\/ul><\/dd>\n<dt id=\"is%20the%20booking%20popup%20accessible%3F\"><h3>Is the booking popup accessible?<\/h3><\/dt>\n<dd><p>Yes. It keeps the keyboard focus inside while it is open, closes with the Escape key, and carries the ARIA roles screen readers need.<\/p><\/dd>\n<dt id=\"what%20does%20my%20site%20need%3F\"><h3>What does my site need?<\/h3><\/dt>\n<dd><p>WordPress 6.0 or newer, PHP 7.4 or newer, and HTTPS. A yAppointment account is required: the plugin shows your yAppointment booking page on your site.<\/p><\/dd>\n<dt id=\"how%20does%20the%20webshop%20sync%20work%3F\"><h3>How does the Webshop sync work?<\/h3><\/dt>\n<dd><p>It needs WooCommerce and a connected site. On <strong>yAppointment &gt; Dashboard<\/strong> turn on <strong>Webshop sync<\/strong>: yAppointment opens in a new tab for a short setup, then sends you back and the plugin starts. From then on new and changed products, stock levels and paid orders are sent to yAppointment within seconds (through WooCommerce's own Action Scheduler queue, with retries), and what you do in yAppointment (edit a product, confirm a payment, ship, refund) is applied to WooCommerce with its own functions. <strong>Sync now<\/strong> retries what is waiting and asks yAppointment for changes; the card also shows how many changes wait to be sent and the last problem. Turn it off there or in yAppointment at any time.<\/p><\/dd>\n<dt id=\"which%20products%20and%20orders%20are%20synced%3F\"><h3>Which products and orders are synced?<\/h3><\/dt>\n<dd><p>Simple products and variations (each variation is its own product in yAppointment). Other product types (grouped, external, bundles) are reported to yAppointment with their type and shown there as \"not synced\", never silently dropped. Orders are sent once they are paid or wait for an offline payment (on hold, processing, completed, and later cancelled or refunded); unpaid, failed and abandoned-checkout orders are not sent. Nothing bought (items, quantities, prices, customer) is ever changed from yAppointment.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20high-performance%20order%20storage%3F\"><h3>Does it work with High-Performance Order Storage?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility and reads and writes orders only through WooCommerce's own order functions.<\/p><\/dd>\n<dt id=\"is%20the%20webshop%20data%20sent%20anywhere%20before%20i%20turn%20it%20on%3F\"><h3>Is the webshop data sent anywhere before I turn it on?<\/h3><\/dt>\n<dd><p>No. Until you turn Webshop sync on and finish the setup in yAppointment, no product, stock or order data leaves your site. See \"External services\" below for exactly what is sent afterwards.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Ask in this plugin's support forum on WordPress.org, or contact yAppointment at https:\/\/yappointment.com\/contact.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F\"><h3>Is it GDPR compliant?<\/h3><\/dt>\n<dd><p>The plugin does not collect visitor data on your site. Your yAppointment account's data processing policies apply to bookings made through the embedded booking page. If you turn on the optional Webshop sync, the personal data of your shop's customers (name, e-mail address, phone number, addresses, what they bought) goes to yAppointment, which processes it on your behalf; mention it in your privacy policy (the plugin adds suggested text under Settings &gt; Privacy).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>New: Webshop sync for WooCommerce (optional, off until you set it up). Products, stock and paid orders are sent to yAppointment through WooCommerce's Action Scheduler queue (signed, batched, retried), and changes made in yAppointment (products, stock, order status, notes and tracking numbers, payments, refunds) are applied to WooCommerce with its own functions, so your shop's settings, tax and payment methods keep applying. A switch, the state, \"Sync now\", the queue and the last problem are on yAppointment &gt; Dashboard.<\/li>\n<li>New: compatible with High-Performance Order Storage; a site without WooCommerce is unaffected.<\/li>\n<li>New: suggested privacy policy text under Settings &gt; Privacy.<\/li>\n<li>Change: the \"External services\" section describes the webshop sync's requests.<\/li>\n<\/ul>\n\n<h4>2.3.3<\/h4>\n\n<ul>\n<li>Change: the \"almost ready\" notice after activation shows only on the Plugins screen and the plugin's own pages, not across the whole admin. It still disappears once the site is connected or the notice is dismissed.<\/li>\n<li>Change: translations come from translate.wordpress.org; the plugin no longer bundles its own translation files.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Readme: a plain-words description for salon and clinic owners, the shortcode options in the FAQ, and new screenshots.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Fix: Dialogs in an embedded booking page now open in the visible part of the screen on phones.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>New: Connect with yAppointment. Sign in to yAppointment in a new tab, confirm this site, and come back connected; the site receives its own site key and nothing has to be copied.<\/li>\n<li>New: \"Create my free account\" (sign-up with your e-mail address and site prefilled, connected when the account is ready) and \"Build it for me\" (the yAppointment team sets up your account from your website) on Get Started.<\/li>\n<li>New: Disconnect on Get Started revokes the site key in yAppointment. A connection removed in yAppointment shows \"Disconnected in yAppointment\" with a Reconnect button, and the block's Service picker explains why it is empty.<\/li>\n<li>New: Advanced manual connection with a company ID and a site key generated in yAppointment (Company &gt; Integrations &gt; WordPress).<\/li>\n<li>Change: the booking page, the block and the floating button are shown only while the site is connected with a valid site key, and only for the connected business. Otherwise visitors see nothing and administrators see a short \"not connected\" note. The key is re-checked at most once an hour when an administrator opens the plugin's pages, never on a visitor's page view.<\/li>\n<li>Change: the plugin reads your business and services through the yAppointment API with the site key; the shared public client token is no longer used.<\/li>\n<li>New: yAppointment Admin URL under General Settings &gt; Advanced (for development installations).<\/li>\n<li>Sites connected by link in 2.2.x need to connect once more: the Get Started notice appears again after the update.<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li>Fix: the dashboard's troubleshooting and requirements now say what an embed really needs, a site served over HTTPS, instead of an outdated server header instruction.<\/li>\n<li>Fix: the booking block in the editor names your connected business instead of \"No company ID set\" when the block uses the business from the plugin settings, and its calendar icon shows again.<\/li>\n<li>Readme: screenshots, an HTTPS requirement in the FAQ, where to create an account and where to get help.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>New: connect by link. Paste the link of your booking page (or your company ID) in General Settings; the plugin checks it with yAppointment and shows \"Connected: \". An unknown business is rejected and the previous value is kept; if yAppointment cannot be reached, the value is saved with a warning.<\/li>\n<li>New: Get Started screen and a first-activation notice: connect your business, then copy the shortcode or switch on the floating button.<\/li>\n<li>New: \"Use my yAppointment colours\" on the Button Styles page fills the button colours from your booking portal (you still click Save).<\/li>\n<li>New: <code>service<\/code> attribute for <code>[yappointment]<\/code> and <code>[yappointment_button]<\/code>, and a Service picker in the block: the booking page opens with that service selected.<\/li>\n<li>New: API URL setting under General Settings &gt; Advanced (with the Portal Base URL), for self-hosted and development installations.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fix: the default Portal Base URL is now https:\/\/app.yappointment.com (the customer portal). Sites still on the old default (https:\/\/portal.yappointment.com, the admin app) are moved automatically on update.<\/li>\n<li>The portal language follows the current page's language (WPML\/Polylang aware) across all 27 portal languages; when the page language is not supported, no language is passed and the portal chooses one.<\/li>\n<li>Default Language setting and block language select list every portal language.<\/li>\n<li>Portal Base URL accepts http:\/\/ for localhost, 127.0.0.1, [::1] and *.localhost (local development); everything else must be https:\/\/. Query strings and fragments are rejected.<\/li>\n<li>Fix: the floating button and popup-style embeds open the booking popup again.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Inline embed shortcode <code>[yappointment]<\/code><\/li>\n<li>Popup button shortcode <code>[yappointment_button]<\/code><\/li>\n<li>Gutenberg block support<\/li>\n<li>Auto-resize via postMessage<\/li>\n<li>Accessible popup modal with focus trap<\/li>\n<li>Hungarian and English translations<\/li>\n<\/ul>","raw_excerpt":"Clients book your salon or clinic online, right on your WordPress site: services with photos and prices, your team, free times and reviews.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377587"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yappointment"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377587"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377587"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377587"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377587"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377587"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}