{"id":387106,"date":"2026-10-17T12:26:52","date_gmt":"2026-10-17T12:26:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/razorbooking\/"},"modified":"2026-10-18T15:35:17","modified_gmt":"2026-10-18T15:35:17","slug":"razorbooking","status":"publish","type":"plugin","link":"https:\/\/su.wordpress.org\/plugins\/razorbooking\/","author":23583610,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1.3","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"RazorBooking \u2013 Appointment Booking & Scheduling for Service Businesses","header_author":"RazorBooking","header_description":"Add your RazorBooking services, team, and booking to your WordPress site, with blocks, shortcodes, Elementor widgets, and a floating button that stay up to date with your RazorBooking account.","assets_banners_color":"f8f7f7","last_updated":"2026-10-18 15:35:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/razorbooking.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":85,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"razorbooking","date":"2026-10-18 15:35:17","revision":3753264}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3753208,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3753208,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3753208,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3753208,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3753208,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3753208,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3753208,"resolution":"3","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Booking form on a WordPress page: customers pick a service, team member and time.","2":"Calendar selection and date\/time picker for appointment.","3":"Booking form and payment provider selection."}},"plugin_section":[],"plugin_tags":[8133,275,8125,270,268],"plugin_category":[40,56],"plugin_contributors":[287261],"plugin_business_model":[],"class_list":["post-387106","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment-booking","plugin_tags-booking-calendar","plugin_tags-booking-form","plugin_tags-online-booking","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_category-social-and-sharing","plugin_contributors-razorbooking","plugin_committers-razorbooking"],"banners":{"banner":"https:\/\/ps.w.org\/razorbooking\/assets\/banner-772x250.png?rev=3753208","banner_2x":"https:\/\/ps.w.org\/razorbooking\/assets\/banner-1544x500.png?rev=3753208","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/razorbooking\/assets\/icon-128x128.png?rev=3753208","icon_2x":"https:\/\/ps.w.org\/razorbooking\/assets\/icon-256x256.png?rev=3753208","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/razorbooking\/assets\/screenshot-1.png?rev=3753208","caption":"Booking form on a WordPress page: customers pick a service, team member and time."},{"src":"https:\/\/ps.w.org\/razorbooking\/assets\/screenshot-2.png?rev=3753208","caption":"Calendar selection and date\/time picker for appointment."},{"src":"https:\/\/ps.w.org\/razorbooking\/assets\/screenshot-3.png?rev=3753208","caption":"Booking form and payment provider selection."}],"raw_content":"<!--section=description-->\n<p><strong>RazorBooking<\/strong> lets customers book appointments on your WordPress site, around the clock. They pick a service, a team member and a free time, and they can pay online. You can show the booking form on the page, in a popup, or behind a floating <strong>Book now<\/strong> button.<\/p>\n\n<p>It's made for service businesses: salons, barbershops, spas, auto repair and tire shops, home services, yoga and fitness studios, clinics and consultants. You manage services, staff, availability, prices and payments in your RazorBooking account. The plugin puts them on your website and keeps them in sync.<\/p>\n\n<h3>Why RazorBooking<\/h3>\n\n<ul>\n<li><strong>No customer data in your WordPress database.<\/strong> Bookings, customer details and payments stay in RazorBooking, so there's less to secure and back up in WordPress.<\/li>\n<li><strong>Local SEO from your own domain.<\/strong> The plugin adds business info for search engines (structured data) to your pages: business, address, hours, services and prices, FAQs and team. Search engines credit it to your site. A pasted embed code can't do that.<\/li>\n<li><strong>Fast pages.<\/strong> Your pages read a saved copy of your business info, so they never wait on RazorBooking to load.<\/li>\n<li><strong>A booking site as well.<\/strong> Every account includes a hosted booking site at yourbusiness.razorbooking.app or your own domain. Share it on Google, Instagram and in messages. It uses the same calendar as your WordPress site.<\/li>\n<li><strong>Your brand.<\/strong> Set your colors, font and corner style with a live preview. Buttons, popups and booking forms on your pages match.<\/li>\n<li><strong>No silent failures.<\/strong> If the connection breaks, visitors never see a fake booking form. The booking area stays empty and administrators see why, so you can fix it the same day.<\/li>\n<\/ul>\n\n<h3>What you can add to your pages<\/h3>\n\n<ul>\n<li><strong>Booking form:<\/strong> all services, one category, or one service (with its variations and quantity), optionally for one team member. Show it on the page, in a popup, as a button linking to your booking site, or as a floating button.<\/li>\n<li><strong>Reviews, Gallery and FAQ:<\/strong> synced from your booking site. Choose how many items to show and which title to use, or open them from a button.<\/li>\n<li><strong>My bookings:<\/strong> your customers' bookings, on your own site.<\/li>\n<li><strong>Thank-you page and Booking confirmation:<\/strong> send customers to your own page after they book, showing their booking reference.<\/li>\n<li><strong>Floating Book now button:<\/strong> with rules for where it appears, including hiding it on pages that already have a booking form.<\/li>\n<\/ul>\n\n<p>It works with the block editor, Elementor (a \"RazorBooking\" section of widgets), widget areas, and shortcodes for classic themes and page builders such as Divi, Beaver Builder and WPBakery.<\/p>\n\n<h3>Included in RazorBooking<\/h3>\n\n<ul>\n<li>Real-time availability for each team member<\/li>\n<li>Services with prices, variations and categories<\/li>\n<li>Online payments with Stripe and PayPal, including deposits and no-show fees<\/li>\n<li>Email and WhatsApp confirmations and reminders<\/li>\n<li>Google Calendar sync<\/li>\n<li>Coupons and discounts<\/li>\n<li>Customer reviews and a photo gallery<\/li>\n<li>Optional AI voice assistant for your booking site and AI phone receptionist<\/li>\n<\/ul>\n\n<h3>Pricing<\/h3>\n\n<p>The plugin is free, with nothing locked or limited. RazorBooking, the service it connects to, is paid. Every account starts with a 7-day free trial, no card needed. There is no free plan. <a href=\"https:\/\/www.razorbooking.com\/pricing\">See plans<\/a>.<\/p>\n\n<h3>Shortcodes<\/h3>\n\n<pre><code>[razorbooking], `[razorbooking_my_bookings]`, `[razorbooking_reviews]`, `[razorbooking_gallery]`, `[razorbooking_faq]` and `[razorbooking_confirmation]`. Click **Embed** on any item in the plugin to build its shortcode, or see every option under RazorBooking \u2192 Support \u2192 Shortcodes.\n<\/code><\/pre>\n\n<h3>External services<\/h3>\n\n<p>This plugin is the WordPress side of RazorBooking, a hosted booking service, and doesn't work without it. Nothing is sent to RazorBooking until you connect your account. After that, it contacts RazorBooking in the ways below.<\/p>\n\n<p><strong>RazorBooking API (from your server).<\/strong> Used to connect your site and to show and edit your RazorBooking business from the plugin's admin screens. Sent: your site's address and name when you connect; your site key and a random ID for this installation (created on activation) with every request; and whatever you create or change on these screens (services, categories, team members, the Design, your thank-you page's address). Received: your business information (services, team, reviews, gallery, FAQs, settings) and, on the Home screen, today's numbers and upcoming bookings. Requests go to app.razorbooking.com only from your WordPress admin: to fetch the saved copy of your business information the first time after you connect, when you click Sync, and after you save a change on these screens; and to show Home's bookings and numbers and the reviews waiting for approval, which are never saved. RazorBooking never contacts your site, and visitors' page views never make a request to it. If you delete the plugin, it sends one request asking RazorBooking to revoke the site key it created when you connected.<\/p>\n\n<p><strong>Your booking site (from your visitors' browsers).<\/strong> The booking form, popup, reviews, gallery and FAQ are pages of your RazorBooking booking site (for example yourbusiness.razorbooking.app, or your own domain) shown inside your pages, and the script that displays them (widget.js) loads from there too. By default, a visitor's browser loads them when it opens a page that shows one, and is told to connect to your booking site early (a \"preconnect\" hint). In Settings \u2192 Privacy you can make booking wait until the visitor accepts cookies in your cookie banner, or until they click a booking button. The browser sends what it sends with any web request (IP address, browser type and language). What a visitor types into the booking form goes to RazorBooking. Fonts come from your booking site, not a font service. If your gallery has YouTube videos, their preview images come from YouTube (i.ytimg.com), and a video plays from youtube-nocookie.com when the visitor starts it. If you take payments online, your payment provider's page or window opens at the payment step.<\/p>\n\n<p>Your booking site may show a small \"Powered by RazorBooking\" line inside the booking form. It comes from RazorBooking, not from this plugin, and you can turn it off in RazorBooking.<\/p>\n\n<p><strong>Your booking site (in the admin screens).<\/strong> The Design and Add to site screens show a preview of your booking site, loaded from it.<\/p>\n\n<p><strong>Images.<\/strong> Service, team and gallery images you uploaded to RazorBooking are shown from RazorBooking's file storage.<\/p>\n\n<p>RazorBooking is provided by RazorBooking: <a href=\"https:\/\/www.razorbooking.com\/terms-of-service\">terms of service<\/a>, <a href=\"https:\/\/www.razorbooking.com\/privacy-and-policy\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to Plugins \u2192 Add New, search for \"RazorBooking\", then install and activate it.<\/li>\n<li>Click <strong>Start setup<\/strong> on the banner on the Plugins screen, or open RazorBooking in the WordPress menu.<\/li>\n<li>Sign in, or create a RazorBooking account (14-day free trial, no card needed). Choose which business this site is for and confirm.<\/li>\n<li>Add the <strong>Booking form<\/strong> block, Elementor widget or <code>[razorbooking]<\/code> shortcode to any page.<\/li>\n<\/ol>\n\n<p>Your browser brings your site key back from RazorBooking to your WordPress admin in a form, never in an address bar. WordPress saves it once you're signed in as the administrator who started connecting.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20razorbooking%20account%3F\"><h3>Do I need a RazorBooking account?<\/h3><\/dt>\n<dd><p>Yes. The plugin shows your RazorBooking account on your site and doesn't store bookings itself. You can create an account from the plugin's setup screen.<\/p><\/dd>\n<dt id=\"is%20razorbooking%20free%3F\"><h3>Is RazorBooking free?<\/h3><\/dt>\n<dd><p>The plugin is free, and nothing in it is locked or limited. RazorBooking, the service it connects to, is paid: every account starts with a 7-day free trial, no card needed, and there is no free plan.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20trial%20or%20subscription%20ends%3F\"><h3>What happens if my trial or subscription ends?<\/h3><\/dt>\n<dd><p>You get 7 more days as usual. After that your account becomes read-only until you subscribe: your site keeps showing your services, team, reviews and other content, but changes made from WordPress are paused. Subscribe and everything works again, with nothing to reconnect.<\/p><\/dd>\n<dt id=\"can%20customers%20pay%20online%20when%20they%20book%3F\"><h3>Can customers pay online when they book?<\/h3><\/dt>\n<dd><p>Yes. Connect Stripe or PayPal or Razorpay in RazorBooking to take full payments or deposits. The payment step opens your payment provider's page or window.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20elementor%2C%20divi%20and%20other%20page%20builders%3F\"><h3>Does it work with Elementor, Divi and other page builders?<\/h3><\/dt>\n<dd><p>Yes. Every block is also an Elementor widget. For Divi, Beaver Builder, WPBakery and classic themes, use the shortcodes. Click <strong>Embed<\/strong> on any item to build one.<\/p><\/dd>\n<dt id=\"can%20i%20put%20it%20in%20a%20sidebar%20or%20footer%20widget%3F\"><h3>Can I put it in a sidebar or footer widget?<\/h3><\/dt>\n<dd><p>Yes. All five blocks (Booking form, Reviews, Gallery, FAQ and My bookings) are available in Appearance \u2192 Widgets. With the Classic Widgets plugin, add a Shortcode widget instead.<\/p><\/dd>\n<dt id=\"i%20changed%20something%20in%20razorbooking.%20why%20doesn%27t%20my%20site%20show%20it%3F\"><h3>I changed something in RazorBooking. Why doesn't my site show it?<\/h3><\/dt>\n<dd><p>The booking form, gallery, reviews and FAQ load from your booking site, so they're always current. Everything else (the plugin's screens, choices in the page editors, button colors, your booking site's address and the business info for search engines) comes from a copy saved on your site. After a change in RazorBooking, open RazorBooking in your WordPress menu and click <strong>Sync<\/strong>. Changes made in the plugin are picked up automatically. If you change your booking site's address, sync right away.<\/p><\/dd>\n<dt id=\"where%20do%20customers%20go%20after%20they%20book%3F\"><h3>Where do customers go after they book?<\/h3><\/dt>\n<dd><p>To the booking confirmation, unless you choose a thank-you page under RazorBooking \u2192 Add to site \u2192 Thank-you page. Customers then go there wherever they booked, including after paying by card. Add the Booking confirmation block or <code>[razorbooking_confirmation]<\/code> to show their booking reference. You can change or hide its title, its label and its \"View your booking\" button, for example <code>[razorbooking_confirmation title=\"Thanks!\" link=\"no\"]<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20%22book%20now%22%20link%20to%20my%20menu%3F\"><h3>How do I add a \"Book now\" link to my menu?<\/h3><\/dt>\n<dd><p>Add the page with your booking form to your menu the usual way (Appearance \u2192 Menus, or the Navigation block). To link to your booking site instead, add a custom link to its address, shown in the account menu at the top right of the RazorBooking screens.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20and%20speed%20plugins%3F\"><h3>Does it work with caching and speed plugins?<\/h3><\/dt>\n<dd><p>Yes. If your speed plugin, host or Cloudflare Rocket Loader delays, defers or combines JavaScript, exclude <code>\/embed\/widget.js<\/code>, <code>razorbooking-public<\/code> and <code>razorbookingEmbed<\/code>. When cached information changes, the plugin shows an admin notice telling you to clear your page cache. It never clears another plugin's cache itself.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20my%20cookie%20banner%3F\"><h3>Does it work with my cookie banner?<\/h3><\/dt>\n<dd><p>Yes. Under RazorBooking \u2192 Settings \u2192 Privacy \u2192 \"When booking loads\", choose \"After visitors accept cookies\" (your cookie plugin decides) or \"When visitors click a booking button\". If your cookie plugin doesn't detect RazorBooking, add it as a service using the details on the Privacy screen. The booking form sets two cookies it needs to work, <code>customer_session<\/code> and <code>XSRF-TOKEN<\/code>, both lasting 2 hours.<\/p><\/dd>\n<dt id=\"what%20data%20leaves%20my%20site%2C%20and%20what%20does%20it%20keep%3F\"><h3>What data leaves my site, and what does it keep?<\/h3><\/dt>\n<dd><p>Your server sends RazorBooking your site's address and name when you connect, and what you create or change on the plugin's screens. It sends nothing about your visitors. Your site keeps a copy of your business information so pages don't wait on RazorBooking. <strong>No customer or visitor data is stored in WordPress.<\/strong> Handle requests to see or erase a customer's data in RazorBooking. See External services for details, and Settings \u2192 Privacy \u2192 Policy Guide for suggested privacy policy text.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20on%20a%20local%20or%20staging%20site%3F\"><h3>Can I use it on a local or staging site?<\/h3><\/dt>\n<dd><p>Yes. Your browser brings the site key back, so RazorBooking doesn't need to reach the site. If WordPress is in its own folder, use \"Paste a key instead\". If you copy a connected site to staging, the plugin notices the address change and asks you to disconnect, so staging bookings don't reach your live account.<\/p><\/dd>\n<dt id=\"is%20it%20accessible%3F\"><h3>Is it accessible?<\/h3><\/dt>\n<dd><p>The buttons, cards and popup follow WCAG 2.1 AA: full keyboard use, focus stays in an open popup, Escape closes it, and every control has a screen reader name. The booking form, gallery, reviews and FAQ are built to the same standard.<\/p><\/dd>\n<dt id=\"i%20already%20use%20yoast%20or%20rank%20math.%20will%20the%20seo%20feature%20conflict%3F\"><h3>I already use Yoast or Rank Math. Will the SEO feature conflict?<\/h3><\/dt>\n<dd><p>No. The plugin detects them and keeps its business info for search engines off by default. If you turn ours on, turn off the business schema in the other plugin first.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%2C%20and%20does%20deleting%20the%20plugin%20delete%20anything%3F\"><h3>How do I disconnect, and does deleting the plugin delete anything?<\/h3><\/dt>\n<dd><p>Disconnect from the account menu at the top right of any RazorBooking screen. Your blocks stay on your pages but are hidden until you reconnect. Deleting the plugin removes the site key, and revokes it if this site created it. Other saved data is deleted only if you turn on RazorBooking \u2192 Settings \u2192 Data on uninstall. Your bookings, customers and services in RazorBooking are never touched.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20plugin%27s%20admin%20screens%3F\"><h3>Can I edit the plugin's admin screens?<\/h3><\/dt>\n<dd><p>Yes. The TypeScript source is included in <code>src\/<\/code>. Install Node 22 and run <code>npm ci<\/code> and <code>npm run build<\/code> in the plugin folder to rebuild <code>admin\/js\/<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Removed: the Custom CSS field on the Design screen. Custom CSS is still available in RazorBooking under Settings \u2192 Appearance.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: every block is also an Elementor widget.<\/li>\n<li>New: Gallery and FAQ blocks, and shortcodes for reviews, gallery, FAQ, My bookings and booking confirmation.<\/li>\n<li>New: one Booking form for everything, on the page, in a popup, as a link button or as a floating button.<\/li>\n<li>New: Design screen with live preview, thank-you page, and a privacy setting for when booking loads.<\/li>\n<li>Privacy: the plugin no longer stores customer data.<\/li>\n<\/ul>\n\n<p>The full changelog is in <code>changelog.txt<\/code>.<\/p>","raw_excerpt":"Let customers book appointments on your site with a booking form, popup or Book Now button. Synced with your RazorBooking services, staff and hours.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/387106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=387106"}],"author":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/razorbooking"}],"wp:attachment":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=387106"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=387106"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=387106"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=387106"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=387106"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=387106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}