{"id":158604,"date":"2022-06-13T07:12:01","date_gmt":"2022-06-13T07:12:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/reservation-studio-widget\/"},"modified":"2026-03-20T17:30:32","modified_gmt":"2026-03-20T17:30:32","slug":"reservation-studio-widget","status":"publish","type":"plugin","link":"https:\/\/dv.wordpress.org\/plugins\/reservation-studio-widget\/","author":15946318,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.0.2","stable_tag":"3.0.2","tested":"6.9.4","requires":"","requires_php":"","requires_plugins":null,"header_name":"Reservation.Studio widget","header_author":"Reservation.Studio","header_description":"Reservation.Studio WordPress booking widget.","assets_banners_color":"fefefe","last_updated":"2026-03-20 17:30:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/help.reservation.studio","header_author_uri":"https:\/\/reservation.studio","rating":0,"author_block_rating":0,"active_installs":10,"downloads":2011,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.1":{"tag":"0.0.1","author":"veneliniliev","date":"2022-06-13 07:11:38"},"0.0.2":{"tag":"0.0.2","author":"veneliniliev","date":"2022-06-13 07:16:49"},"0.0.3":{"tag":"0.0.3","author":"veneliniliev","date":"2022-06-13 07:32:11"},"0.0.4":{"tag":"0.0.4","author":"veneliniliev","date":"2022-06-13 15:09:31"},"0.0.5":{"tag":"0.0.5","author":"veneliniliev","date":"2022-06-14 08:53:35"},"0.0.6":{"tag":"0.0.6","author":"veneliniliev","date":"2022-06-16 14:22:47"},"1.0.1":{"tag":"1.0.1","author":"veneliniliev","date":"2022-06-21 11:46:22"},"1.0.10":{"tag":"1.0.10","author":"veneliniliev","date":"2023-01-31 07:48:13"},"1.0.11":{"tag":"1.0.11","author":"veneliniliev","date":"2023-07-07 07:40:29"},"1.0.12":{"tag":"1.0.12","author":"veneliniliev","date":"2023-07-27 07:12:29"},"1.0.13":{"tag":"1.0.13","author":"veneliniliev","date":"2023-07-27 07:40:00"},"1.0.2":{"tag":"1.0.2","author":"veneliniliev","date":"2022-06-22 07:14:45"},"1.0.3":{"tag":"1.0.3","author":"veneliniliev","date":"2022-06-22 07:22:14"},"1.0.4":{"tag":"1.0.4","author":"veneliniliev","date":"2022-06-23 07:41:12"},"1.0.5":{"tag":"1.0.5","author":"veneliniliev","date":"2022-08-11 14:27:33"},"1.0.6":{"tag":"1.0.6","author":"veneliniliev","date":"2022-08-24 12:23:07"},"1.0.7":{"tag":"1.0.7","author":"veneliniliev","date":"2023-01-31 07:29:02"},"1.0.8":{"tag":"1.0.8","author":"veneliniliev","date":"2023-01-31 07:38:15"},"1.0.9":{"tag":"1.0.9","author":"veneliniliev","date":"2023-01-31 07:45:30"},"2.0.0":{"tag":"2.0.0","author":"veneliniliev","date":"2024-03-05 13:40:53"},"2.0.1":{"tag":"2.0.1","author":"veneliniliev","date":"2024-03-12 14:01:11"},"2.0.2":{"tag":"2.0.2","author":"veneliniliev","date":"2024-03-12 16:22:32"},"3.0.0":{"tag":"3.0.0","author":"veneliniliev","date":"2026-03-13 10:11:54"},"3.0.1":{"tag":"3.0.1","author":"veneliniliev","date":"2026-03-13 10:23:29"},"3.0.2":{"tag":"3.0.2","author":"veneliniliev","date":"2026-03-20 17:30:32"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2741742,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2741742,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":2741742,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2741742,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2741742,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.1","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","2.0.0","2.0.1","2.0.2","3.0.0","3.0.1","3.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[8132,269,416,1475,268],"plugin_category":[40],"plugin_contributors":[211197,211186],"plugin_business_model":[],"class_list":["post-158604","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-calendar","plugin_tags-reservations","plugin_tags-scheduling","plugin_category-calendar-and-events","plugin_contributors-aevtimov","plugin_contributors-veneliniliev","plugin_committers-veneliniliev"],"banners":{"banner":"https:\/\/ps.w.org\/reservation-studio-widget\/assets\/banner-772x250.png?rev=2741742","banner_2x":"https:\/\/ps.w.org\/reservation-studio-widget\/assets\/banner-1544x500.png?rev=2741742","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/reservation-studio-widget\/assets\/icon.svg?rev=2741742","icon":"https:\/\/ps.w.org\/reservation-studio-widget\/assets\/icon.svg?rev=2741742","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Reservation.Studio is an online booking platform for service-based businesses. The plugin adds a booking widget to your WordPress site and connects your website with your Reservation.Studio \/ Reservation.Business profile.<\/p>\n\n<p>Main capabilities:\n- Enable or disable widget loading from WordPress admin.\n- Configure booking page type and slug.\n- Choose language (<code>Auto detect<\/code>, English, Bulgarian).\n- Configure sticky button text, colors, position and tooltip behavior.\n- Configure modal max width and max height.\n- Optionally bind widget opening to custom CSS selectors.\n- Embed booking triggers with shortcodes <code>[reservation_studio_button]<\/code> and <code>[reservation_studio_anchor]<\/code>.\n- Render booking directly inline with <code>[reservation_studio_embed]<\/code> (iframe, no modal).<\/p>\n\n<p>The admin settings screen validates input and shows field-specific error messages directly on the relevant fields.<\/p>\n\n<h4>Sign up for free<\/h4>\n\n<p>Sign up for a free Reservation.Business account at <a href=\"https:\/\/reservation.business\/\">reservation.business<\/a>, no credit card required. The Free version includes unlimited appointments, clients, employees, locations and the Desktop, iOS and Android app.<\/p>\n\n<p>Please click here for more information on <a href=\"https:\/\/reservation.business\/pricing\/\">Pricing.<\/a><\/p>\n\n<!--section=installation-->\n<p>Follow the instructions below to download, install, and activate the Reservation.Studio plugin for WordPress. If you hit any snags, contact us at <a href=\"https:\/\/reservation.business\/\">reservation.business<\/a> or message support from inside the Reservation.Studio \/ Reservation.Business apps.<\/p>\n\n<p>Before you begin, make sure you already have a Reservation.Business account and activate our premium feature \"<a href=\"https:\/\/reservation.business\/client-application\/\">Online booking<\/a>\".<\/p>\n\n<p>Don\u2019t use Reservation.Studio \/ Reservation.Business? <a href=\"https:\/\/reservation.business\/\">Sign up here<\/a><\/p>\n\n<h4>Auto installation from WP admin panel<\/h4>\n\n<ol>\n<li>Connect to your WordPress admin panel<\/li>\n<li>Click the \u201cPlugins\u201d menu on the left and choose \u201cAdd New\u201d.<\/li>\n<li>Search for \u201cReservation.Studio\u201d and install it.<\/li>\n<li>After the plugin installation has finished, activate the plugin and click on the \u201cRS Widget\u201d menu on the left.<\/li>\n<\/ol>\n\n<h4>FTP Installation<\/h4>\n\n<ol>\n<li>Click the download button on this page, then unzip the file on your computer.<\/li>\n<li>Upload the \u201creservation-studio-widget\u201d folder to the \/wp-content\/plugins directory. Do not change the folder name, otherwise the plugin may not work correctly.<\/li>\n<li>In the WordPress dashboard, navigate to the Plugins menu and activate the Reservation.Studio plugin.<\/li>\n<\/ol>\n\n<h4>Manual Installation from WP admin panel<\/h4>\n\n<ol>\n<li>Click the download button on this page, and download the file on your computer. <\/li>\n<li>Connect to your WordPress admin panel<\/li>\n<li>Click the \u201cPlugins\u201d menu on the left and choose \u201cAdd New\u201d and \"Upload Plugin\"<\/li>\n<li>Upload the \"reservation-studio-widget.zip\" and \"Install Now\"<\/li>\n<li>After the plugin installation has finished, activate the plugin and click on the \u201cRS Widget\u201d menu on the left.<\/li>\n<\/ol>\n\n<h4>Let's get started<\/h4>\n\n<ol>\n<li>Click on the \u201cRS Widget\u201d menu on the left.<\/li>\n<li>Click \"Enable widget\"<\/li>\n<li>Choose a page type and set the matching slug.\nExample: If your booking address is <code>https:\/\/reservation.studio\/location\/yourBestName<\/code>, use slug <code>yourBestName<\/code>.<\/li>\n<\/ol>\n\n<p>Don\u2019t use Reservation.Studio \/ Reservation.Business? <a href=\"https:\/\/reservation.business\/\">Sign up here<\/a>\n4. Choose language settings (including <code>Auto detect<\/code> if preferred).\n5. Set up your scheduling preferences from \"Sticky button settings\"\n6. Save changes. Your clients can now book from your website.<\/p>\n\n<h4>Shortcode usage<\/h4>\n\n<p>Use <code>[reservation_studio_button]<\/code> or <code>[reservation_studio_anchor]<\/code> in page\/post content to render booking triggers.\nUse <code>[reservation_studio_embed]<\/code> to render booking directly as an inline iframe (without modal trigger).\nUse the <code>RS Widget -&gt; Shortcodes<\/code> admin page to generate shortcode variants quickly.\nAll shortcode output depends on the global <code>Enable widget<\/code> setting. When the plugin is disabled shortcodes are shown as plain source text and there is no frontend widget bootstrap.\nThe global widget bootstrap always includes the shortcode trigger selector and appends any saved <code>buttons_selector<\/code> setting to it.<\/p>\n\n<p>Supported attributes:\n- <code>slug<\/code> (optional): Overrides the configured slug.\n- <code>page_type<\/code> (optional): Overrides the configured page type (mapped internally to widget <code>type<\/code>).\n- <code>language<\/code> (optional): Overrides the configured language.\n- <code>utm<\/code> (optional): JSON object for UTM overrides (for example <code>{\"source\":\"email\",\"medium\":\"newsletter\"}<\/code>).\n- <code>label<\/code> (optional): Button label when shortcode content is empty.\n- <code>class<\/code> (optional): Additional CSS class names for the trigger element.\n- <code>width<\/code> (embed only, optional): iframe width, default <code>100%<\/code>.\n- <code>height<\/code> (embed only, optional): iframe height, default <code>900<\/code>.\n- <code>loading<\/code> (embed only, optional): <code>lazy<\/code> (default) or <code>eager<\/code>.\n- <code>title<\/code> (embed only, optional): iframe title, default <code>Reservation.Studio booking<\/code>.<\/p>\n\n<p>Language behavior:\n- For modal shortcodes (<code>[reservation_studio_button]<\/code>, <code>[reservation_studio_anchor]<\/code>), <code>Auto detect<\/code> follows widget\/browser language behavior.\n- For <code>[reservation_studio_embed]<\/code>, omitted\/<code>0<\/code> language is resolved server-side from WordPress site locale with fallback to <code>bg<\/code>.<\/p>\n\n<p>Examples:\n- <code>[reservation_studio_button]<\/code>\n- <code>[reservation_studio_button slug=\"my-location\" page_type=\"location_profile\" language=\"en\" label=\"Book now\"]<\/code>\n- <code>[reservation_studio_button class=\"my-booking-button\"]Book an appointment[\/reservation_studio_button]<\/code>\n- <code>[reservation_studio_anchor slug=\"my-location\" page_type=\"location_services\" class=\"my-booking-link\"]Book via link[\/reservation_studio_anchor]<\/code>\n- <code>[reservation_studio_embed slug=\"my-location\" page_type=\"location_services\" language=\"en\" height=\"760\" class=\"my-booking-iframe\"]<\/code><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20many%20businesses%20can%20i%20manage%20within%20my%20account%3F\"><h3>How many businesses can I manage within my account?<\/h3><\/dt>\n<dd><p>You can manage all your businesses and physical sites without limitation using only one account. Each single business with its own clients, employees, services and resources. Without overlap. You can also give access to your employees via their own accounts.<\/p><\/dd>\n<dt id=\"how%20can%20i%20manage%20the%20different%20locations%20of%20my%20business%3F\"><h3>How can I manage the different locations of my business?<\/h3><\/dt>\n<dd><p>If you run a chain under the same brand you can easily integrate and run the different locations\/sites within this business.<\/p>\n\n<p>If you own several salons\/repair shops\/studios, no matter their location countrywide, you manage them all from a single account. All locations of a given business may share common clients for a more flexible booking management.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20way%20the%20%E2%80%98book%20now%E2%80%99%20button%20looks%3F\"><h3>Can I customize the way the \u2018BOOK NOW\u2019 button looks?<\/h3><\/dt>\n<dd><p>Yes. The RS offers a default visual for your booking button, you can easily edit your button\u2019s settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.2<\/h4>\n\n<ul>\n<li>Simplified shortcode integration so the global widget bootstrap always includes shortcode triggers and appends any saved button selector.<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Improved admin<\/li>\n<li>Added shortcode support: <code>[reservation_studio_button]<\/code> and <code>[reservation_studio_anchor]<\/code><\/li>\n<li>Added inline iframe shortcode: <code>[reservation_studio_embed]<\/code><\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Added new modal max height property<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Added new page type <code>location_classes<\/code><\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>js widget v2<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Readme update<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>XSS protection<\/li>\n<li>CSRF protection<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Added modal width setting<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Small refactoring.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Small refactoring.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Security update.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Readme update.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>update v1 widget<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>readme\/headers update<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>set default slug_type<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>version update<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>first official release<\/li>\n<\/ul>\n\n<h4>0.0.5<\/h4>\n\n<ul>\n<li>Add all available sticky button positions.<\/li>\n<\/ul>\n\n<h4>0.0.4<\/h4>\n\n<ul>\n<li>This is the first iteration of the plugin.<\/li>\n<\/ul>","raw_excerpt":"Reservation.Studio WordPress booking widget","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/158604","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=158604"}],"author":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/veneliniliev"}],"wp:attachment":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=158604"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=158604"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=158604"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=158604"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=158604"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=158604"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}