{"id":390792,"date":"2026-10-23T18:52:52","date_gmt":"2026-10-23T18:52:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/junocal-booking\/"},"modified":"2026-10-25T08:07:34","modified_gmt":"2026-10-25T08:07:34","slug":"junocal-booking","status":"publish","type":"plugin","link":"https:\/\/fa.wordpress.org\/plugins\/junocal-booking\/","author":23590520,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Junocal Booking","header_author":"Junocal Team","header_description":"Add your Junocal booking page, class schedule, courses, packs, memberships, appointments or lead form to any page with a block or the [junocal] shortcode.","assets_banners_color":"93a09a","last_updated":"2026-10-25 08:07:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/junocal.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":103,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"junocal","date":"2026-10-23 18:52:24","revision":3762242},"1.0.1":{"tag":"1.0.1","author":"junocal","date":"2026-10-25 08:07:34","revision":3764087}},"upgrade_notice":{"1.0.1":"<p>Shows Junocal&#039;s new logo in the block editor.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3762302,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3762302,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3762302,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3762302,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3762302,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3764087,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/?pagename=book-a-class\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"junocal-booking\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php'; update_option( 'junocal_booking_settings', array( 'studio' => 'riverside-pilates', 'credit' => false ) ); wp_insert_post( array( 'post_type' => 'page', 'post_status' => 'publish', 'post_name' => 'book-a-class', 'post_title' => 'Book a class', 'post_content' => '<!-- wp:junocal\\\/booking {\\\"align\\\":\\\"wide\\\"} \\\/-->' ) );\"}]}"}},"all_blocks":{"junocal\/booking":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"junocal\/booking","version":"1.0.1","title":"Junocal Booking","category":"embed","icon":"calendar-alt","description":"Show your Junocal booking page, schedule, courses, packs, memberships, appointments or lead form.","keywords":["booking","schedule","classes","appointments","yoga","pilates","dance","fitness"],"textdomain":"junocal-booking","attributes":{"studio":{"type":"string","default":""},"view":{"type":"string","enum":["booking","schedule","courses","packs","memberships","appointments","enquiry"],"default":"booking"},"days":{"type":"number","default":7},"theme":{"type":"string","enum":["light","dark"],"default":"light"},"navigation":{"type":"string","enum":["new-tab","same-tab"],"default":"new-tab"}},"supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true}},"example":{"attributes":{"view":"schedule"}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css"}},"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3762302,"resolution":"1","location":"assets","locale":"","width":1280,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3762242,"resolution":"2","location":"assets","locale":"","width":1280,"height":860},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3762302,"resolution":"3","location":"assets","locale":"","width":1280,"height":940}},"screenshots":{"1":"The Junocal Booking block in the editor, with its settings.","2":"A booking page on a WordPress site.","3":"Settings \u2192 Junocal Booking."}},"plugin_section":[],"plugin_tags":[8162,27880,27879,6165,10311],"plugin_category":[40],"plugin_contributors":[288151],"plugin_business_model":[],"class_list":["post-390792","plugin","type-plugin","status-publish","hentry","plugin_tags-class-booking","plugin_tags-class-schedule","plugin_tags-dance","plugin_tags-fitness","plugin_tags-yoga","plugin_category-calendar-and-events","plugin_contributors-junocal","plugin_committers-junocal"],"banners":{"banner":"https:\/\/ps.w.org\/junocal-booking\/assets\/banner-772x250.png?rev=3762302","banner_2x":"https:\/\/ps.w.org\/junocal-booking\/assets\/banner-1544x500.png?rev=3762302","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/junocal-booking\/assets\/icon.svg?rev=3762302","icon":"https:\/\/ps.w.org\/junocal-booking\/assets\/icon.svg?rev=3762302","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/junocal-booking\/assets\/screenshot-1.png?rev=3762302","caption":"The Junocal Booking block in the editor, with its settings."},{"src":"https:\/\/ps.w.org\/junocal-booking\/assets\/screenshot-2.png?rev=3762242","caption":"A booking page on a WordPress site."},{"src":"https:\/\/ps.w.org\/junocal-booking\/assets\/screenshot-3.png?rev=3762302","caption":"Settings \u2192 Junocal Booking."}],"raw_content":"<!--section=description-->\n<p>Junocal Booking is a free class booking and scheduling plugin for solo instructors and studios that teach yoga, pilates, barre, dance, fitness, personal training and music lessons. It puts your live class timetable on any WordPress page. Clients book classes, courses and appointments, buy class packs and memberships, and join the waitlist when a class is full. Payments go to your own Stripe account. You need a Junocal account.<\/p>\n\n<p>There's no code to paste. Add the Junocal Booking block, or the <code>[junocal]<\/code> shortcode in the classic editor, a widget area or Elementor. Clients browse your timetable on your site and book in a few taps. Registration and payment run on your secure Junocal booking page.<\/p>\n\n<p><a href=\"https:\/\/junocal.com\">Junocal<\/a> runs the bookings behind the plugin: your timetable, class capacity, credits, renewals, reminders, waivers, check-in and payments. There's no marketplace, so no commission on your bookings. Bookings and card details aren't stored in your WordPress database, so there's nothing extra to back up or secure.<\/p>\n\n<h4>Who it's for<\/h4>\n\n<ul>\n<li><strong>Yoga studios:<\/strong> weekly classes, intro offers, class packs, memberships students can pause, and teacher training sold as a course.<\/li>\n<li><strong>Pilates and barre studios:<\/strong> clients pick their reformer or their spot at the barre, with drop-ins, packs and memberships, plus privates and duets.<\/li>\n<li><strong>Dance studios and schools:<\/strong> term courses, kids' classes booked by parents, and adult drop-ins with class packs.<\/li>\n<li><strong>Fitness studios and gyms:<\/strong> spin, HIIT and strength classes where members pick a bike or station, with intro offers, memberships and waitlists.<\/li>\n<li><strong>Personal trainers:<\/strong> 1:1 and small-group sessions, session packs and coaching memberships.<\/li>\n<li><strong>Music teachers and schools:<\/strong> weekly lessons, term enrollment and lesson packs.<\/li>\n<\/ul>\n\n<p>It works the same for one instructor with a weekly class and for a studio with several rooms or locations.<\/p>\n\n<h4>What you can show<\/h4>\n\n<ul>\n<li><strong>Full booking page:<\/strong> everything you offer, with a shared cart.<\/li>\n<li><strong>Class schedule:<\/strong> a timetable of upcoming classes, 1 to 30 days ahead, with live booking and waitlists.<\/li>\n<li><strong>Courses:<\/strong> courses and programs open for enrollment.<\/li>\n<li><strong>Class packs<\/strong> and <strong>memberships,<\/strong> with prices and purchase buttons.<\/li>\n<li><strong>Appointments:<\/strong> your services and available times, for one-to-one sessions such as personal training or music lessons.<\/li>\n<li><strong>Lead form:<\/strong> enquiries go straight to Leads in Junocal.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Add your booking link under Settings \u2192 Junocal Booking.<\/li>\n<li>Add the Junocal Booking block to a page and choose what to show. In the classic editor or a widget area, use the <code>[junocal]<\/code> shortcode.<\/li>\n<\/ol>\n\n<p>The widget follows your Junocal settings, so prices, availability, booking rules and branding stay in one place. Each widget also includes a plain booking link that search engines can read and that works without JavaScript.<\/p>\n\n<p>You can show an \"Online booking by Junocal\" credit link under the widget. It is off until you turn it on.<\/p>\n\n<p>You need a Junocal account. <a href=\"https:\/\/junocal.com\/signup\">Try Studio free for 14 days<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin shows a booking widget provided by Junocal, so it connects to Junocal. Nothing is sent from your WordPress server. Requests come from your visitors' browsers, and only on pages that show the Junocal Booking block or the <code>[junocal]<\/code> shortcode with a booking link set.<\/p>\n\n<p><strong>Junocal (junocal.com)<\/strong> shows your schedule, offerings and booking forms.<\/p>\n\n<ul>\n<li>When a page with a widget loads, the visitor's browser loads the widget script from <code>https:\/\/junocal.com\/widget.js<\/code> and your booking page from junocal.com in a frame. Junocal receives the visitor's IP address, browser details and the page address, as far as the browser's referrer policy allows. For the lead form, it also receives any <code>utm_source<\/code>, <code>utm_medium<\/code> and <code>utm_campaign<\/code> values in the page address. The widget's markup also tells Junocal that it was added by this WordPress plugin.<\/li>\n<li>When a visitor books, buys or sends an enquiry, Junocal receives what they enter, such as their name, email address and booking details, to handle it for you.<\/li>\n<li>So a visitor can return to an unfinished payment, the widget keeps a short-lived order reference in that browser tab's session storage.<\/li>\n<li><a href=\"https:\/\/junocal.com\/terms\">Junocal terms of service<\/a> and <a href=\"https:\/\/junocal.com\/privacy\">privacy policy<\/a>.<\/li>\n<\/ul>\n\n<p><strong>Stripe<\/strong> processes payments on your own Stripe account. When a visitor pays, Junocal shows Stripe's payment form, loaded from js.stripe.com, on junocal.com or on your page, depending on your Junocal settings. Card details go directly to Stripe.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/stripe.com\/legal\/ssa\">Stripe services agreement<\/a> and <a href=\"https:\/\/stripe.com\/privacy\">privacy policy<\/a>.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin from Plugins \u2192 Add New.<\/li>\n<li>Go to Settings \u2192 Junocal Booking and paste the link to your Junocal booking page, for example <code>https:\/\/junocal.com\/your-page<\/code>.<\/li>\n<li>Edit a page, add the Junocal Booking block and publish.<\/li>\n<\/ol>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[junocal] shows your full booking page. Options:\n<\/code><\/pre>\n\n<ul>\n<li><code>studio<\/code>: a booking link, when a widget shows a different Junocal booking page from the default.<\/li>\n<li><code>view<\/code>: booking, schedule, courses, packs, memberships, appointments or enquiry (the lead form).<\/li>\n<li><code>days<\/code>: for the schedule, how many days to show, from 1 to 30. The default is 7.<\/li>\n<li><code>theme<\/code>: light or dark.<\/li>\n<li><code>navigation<\/code>: new-tab (the default) opens checkout in a new tab. same-tab continues in the same tab.<\/li>\n<\/ul>\n\n<p>Example: <code>[junocal view=\"schedule\" days=\"14\" theme=\"dark\"]<\/code><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20a%20class%20booking%20plugin%20for%20yoga%2C%20pilates%20and%20fitness%20studios%3F\"><h3>Is this a class booking plugin for yoga, pilates and fitness studios?<\/h3><\/dt>\n<dd><p>Yes. Junocal Booking shows your class timetable with class capacity, waitlists, class packs, memberships and courses. Pilates and barre studios can let clients pick their reformer or spot. Solo instructors and studios also use it for dance, personal training and music lessons.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20junocal%20account%3F\"><h3>Do I need a Junocal account?<\/h3><\/dt>\n<dd><p>Yes. The plugin shows your booking page from Junocal, where you manage classes, prices and bookings.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20class%20timetable%20on%20my%20site%3F\"><h3>Can I show a class timetable on my site?<\/h3><\/dt>\n<dd><p>Yes. Choose Schedule in the block settings, or use <code>[junocal view=\"schedule\"]<\/code>. It lists upcoming classes from 1 to 30 days ahead (7 by default), and clients book straight from it.<\/p><\/dd>\n<dt id=\"can%20clients%20join%20a%20waitlist%20when%20a%20class%20is%20full%3F\"><h3>Can clients join a waitlist when a class is full?<\/h3><\/dt>\n<dd><p>Yes. The schedule shows live availability, and clients can join the waitlist for a full class.<\/p><\/dd>\n<dt id=\"can%20clients%20buy%20class%20packs%20and%20memberships%3F\"><h3>Can clients buy class packs and memberships?<\/h3><\/dt>\n<dd><p>Yes. Show your full booking page, or just your packs or memberships. Clients buy them and book classes with their credits, and memberships renew through your own Stripe account.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20gyms%2C%20personal%20trainers%20and%20music%20teachers%3F\"><h3>Does it work for gyms, personal trainers and music teachers?<\/h3><\/dt>\n<dd><p>Yes. Members can pick a bike or station for a class. Choose Appointments to show your services and available times, so clients can book one-to-one sessions such as personal training or music lessons.<\/p><\/dd>\n<dt id=\"can%20clients%20sign%20up%20for%20courses%3F\"><h3>Can clients sign up for courses?<\/h3><\/dt>\n<dd><p>Yes. Choose Courses to list the courses and programs open for enrollment. Clients sign up and pay on your Junocal booking page.<\/p><\/dd>\n<dt id=\"can%20parents%20book%20classes%20for%20their%20children%3F\"><h3>Can parents book classes for their children?<\/h3><\/dt>\n<dd><p>Yes. A parent books each child from one account, and every booking names the child.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%3F\"><h3>Does it work with Elementor?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[junocal]<\/code> shortcode in Elementor's Shortcode widget, or the Junocal Booking block in the block editor.<\/p><\/dd>\n<dt id=\"is%20junocal%20booking%20free%3F\"><h3>Is Junocal Booking free?<\/h3><\/dt>\n<dd><p>The plugin is free. You can try Studio free for 14 days without a card. Junocal's paid plans are $15 (Starter), $29 (Studio) and $69 (Growth) a month, month-to-month, with no Junocal transaction fee. The Free plan has no monthly price and a 4% fee on payments. Stripe's processing fees apply on every plan. See <a href=\"https:\/\/junocal.com\/pricing\">junocal.com\/pricing<\/a>.<\/p><\/dd>\n<dt id=\"where%20do%20payments%20go%3F\"><h3>Where do payments go?<\/h3><\/dt>\n<dd><p>To your own Stripe account. Junocal never holds your money.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>The widget script loads asynchronously, and only on pages that show a widget.<\/p><\/dd>\n<dt id=\"my%20speed%20plugin%20delays%20the%20widget.%20what%20can%20i%20do%3F\"><h3>My speed plugin delays the widget. What can I do?<\/h3><\/dt>\n<dd><p>Some speed plugins hold back JavaScript until a visitor scrolls or taps, such as WP Rocket's Delay JavaScript execution or LiteSpeed Cache's JS Delayed. Until then, the widget shows a plain booking link. To show the schedule straight away, add <code>junocal.com\/widget.js<\/code> to that plugin's JavaScript exclusions.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20list%20junocal%20in%20my%20cookie%20banner%3F\"><h3>Do I need to list Junocal in my cookie banner?<\/h3><\/dt>\n<dd><p>The booking widget doesn't load analytics or advertising trackers. If your consent plugin blocks scripts it doesn't recognise, mark junocal.com as necessary or functional so every visitor sees your schedule.<\/p><\/dd>\n<dt id=\"is%20the%20credit%20link%20required%3F\"><h3>Is the credit link required?<\/h3><\/dt>\n<dd><p>No. It is off unless you turn it on under Settings \u2192 Junocal Booking.<\/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, or contact the Junocal team at <a href=\"https:\/\/junocal.com\/contact\">junocal.com\/contact<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The block editor shows Junocal's new logo.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: the Junocal Booking block, the <code>[junocal]<\/code> shortcode and the settings page.<\/li>\n<\/ul>","raw_excerpt":"Class booking for yoga, pilates, dance, fitness and music. Shows your Junocal schedule, courses, packs and memberships. Needs a Junocal account.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390792"}],"author":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/junocal"}],"wp:attachment":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390792"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390792"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390792"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390792"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390792"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}