{"id":65850,"date":"2017-03-14T13:53:17","date_gmt":"2017-03-14T13:53:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/turitop-booking-system\/"},"modified":"2026-08-17T13:59:17","modified_gmt":"2026-08-17T13:59:17","slug":"turitop-booking-system","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/turitop-booking-system\/","author":15350611,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.20","stable_tag":"1.0.20","tested":"7.0.4","requires":"5.9","requires_php":"7.0","requires_plugins":null,"header_name":"TuriTop Booking System","header_author":"TuriTop","header_description":"","assets_banners_color":"c9cdcb","last_updated":"2026-08-17 13:59:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.turitop.com\/","header_author_uri":"https:\/\/www.turitop.com","rating":5,"author_block_rating":0,"active_installs":600,"downloads":7450,"num_ratings":2,"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":"turitop","date":"2018-12-28 11:34:52"},"1.0.1":{"tag":"1.0.1","author":"turitop","date":"2019-01-21 17:30:04"},"1.0.10":{"tag":"1.0.10","author":"turitop","date":"2022-06-02 14:22:09"},"1.0.11":{"tag":"1.0.11","author":"turitop","date":"2025-04-11 11:23:39"},"1.0.12":{"tag":"1.0.12","author":"turitop","date":"2026-06-01 11:38:31"},"1.0.13":{"tag":"1.0.13","author":"turitop","date":"2026-06-01 12:04:47"},"1.0.14":{"tag":"1.0.14","author":"turitop","date":"2026-06-16 12:56:38"},"1.0.15":{"tag":"1.0.15","author":"turitop","date":"2026-07-06 11:35:51"},"1.0.16":{"tag":"1.0.16","author":"turitop","date":"2026-07-20 10:38:02"},"1.0.18":{"tag":"1.0.18","author":"turitop","date":"2026-08-03 11:07:14"},"1.0.19":{"tag":"1.0.19","author":"turitop","date":"2026-08-10 11:13:35"},"1.0.2":{"tag":"1.0.2","author":"turitop","date":"2019-01-31 13:04:24"},"1.0.20":{"tag":"1.0.20","author":"turitop","date":"2026-08-17 13:59:17"},"1.0.3":{"tag":"1.0.3","author":"turitop","date":"2019-05-20 10:05:49"},"1.0.4":{"tag":"1.0.4","author":"turitop","date":"2019-07-02 12:05:04"},"1.0.5":{"tag":"1.0.5","author":"turitop","date":"2019-12-05 11:23:07"},"1.0.6":{"tag":"1.0.6","author":"turitop","date":"2020-02-10 13:34:15"},"1.0.7":{"tag":"1.0.7","author":"turitop","date":"2020-05-07 16:54:26"},"1.0.8":{"tag":"1.0.8","author":"turitop","date":"2021-02-25 16:35:41"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"2"},"assets_icons":{"icon-256-256.png":{"filename":"icon-256-256.png","revision":2888262,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2399611,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":2399616,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"turitop\/turitop-booking-system":{"name":"turitop\/turitop-booking-system","title":"Turitop Booking System"}},"tagged_versions":["1.0.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","1.0.15","1.0.16","1.0.18","1.0.19","1.0.2","1.0.20","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[274,166042,166041],"plugin_category":[],"plugin_contributors":[265325],"plugin_business_model":[],"class_list":["post-65850","plugin","type-plugin","status-publish","hentry","plugin_tags-booking-system","plugin_tags-turitop","plugin_tags-wordpress-booking","plugin_contributors-turitop","plugin_committers-turitop"],"banners":{"banner":"https:\/\/ps.w.org\/turitop-booking-system\/assets\/banner-772x250.png?rev=2399616","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/turitop-booking-system\/assets\/icon-256-256.png?rev=2888262","icon_2x":"https:\/\/ps.w.org\/turitop-booking-system\/assets\/icon-256-256.png?rev=2888262","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>TuriTop Booking System connects your WordPress website to your TuriTop account, allowing visitors to check <strong>real-time availability<\/strong> and book tours, activities, attractions and experiences directly from your site.<\/p>\n\n<p>The plugin adds a responsive booking interface that works on desktop, tablet and mobile. Customers can choose a date and time, enter their details, apply promotional codes and pay online <strong>without leaving your website<\/strong>.<\/p>\n\n<p>Add TuriTop to any page or post using the <strong>Gutenberg block<\/strong> or a shortcode. The booking widget can be placed alongside the images and descriptions already published on your website, helping you turn your existing content into a <strong>direct booking channel<\/strong>.<\/p>\n\n<h3>Plugin features<\/h3>\n\n<ul>\n<li>Real-time availability and online booking.<\/li>\n<li>Gutenberg block and shortcode support.<\/li>\n<li>Responsive booking interface for desktop and mobile devices.<\/li>\n<li>Product and service synchronisation with your TuriTop account.<\/li>\n<li>Support for promotional codes and online payments.<\/li>\n<li>Booking data managed securely through TuriTop and kept separate from your WordPress database.<\/li>\n<\/ul>\n\n<h3>More than a WordPress booking plugin<\/h3>\n\n<p>TuriTop is an online booking and management platform built for tours, activities, attractions, events and other experience-based businesses.<\/p>\n\n<p>Depending on your TuriTop plan and configuration, you can also:<\/p>\n\n<ul>\n<li>Centralise bookings, schedules, availability, capacity and resources.<\/li>\n<li>Accept payments through gateways such as <strong>Stripe, PayPal, Redsys, Bizum<\/strong> and others.<\/li>\n<li>Connect with leading OTAs such as <strong>GetYourGuide, Viator, Civitatis, Tiqets, Musement and Headout<\/strong> through <a href=\"https:\/\/www.turitop.com\/en\/channel-manager-for-tours-and-activities\/\">TuriTop's Channel Manager<\/a>.<\/li>\n<li>Automatically synchronise availability across your website and connected OTAs to reduce manual work and prevent overbookings.<\/li>\n<li>Manage bookings from your website, OTAs and distribution partners from one central platform.<\/li>\n<li>Offer your booking process in multiple languages and currencies.<\/li>\n<li>Personalise customer emails and automate booking reminders.<\/li>\n<li>Connect booking data with <strong>Google Calendar and Google Sheets<\/strong>.<\/li>\n<li>Integrate with tools such as <strong>Google Tag Manager and Meta Pixel<\/strong>.<\/li>\n<li>Validate bookings and tickets using TuriTop's mobile check-in app.<\/li>\n<li>Connect with other tourism businesses through the TuriTop B2B Marketplace.<\/li>\n<\/ul>\n\n<p>A <strong>TuriTop account is required<\/strong> to use this plugin.<\/p>\n\n<p><a href=\"https:\/\/app.turitop.com\/register\/en\">Start your 14-day free trial<\/a> or <a href=\"https:\/\/www.turitop.com\/en\/schedule-your-demo\/\">book a personalised demo<\/a> to discover how TuriTop can help you sell online and manage your bookings from one place.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin relies on the TuriTop booking service (app.turitop.com) to function. TuriTop is the online booking platform that provides the booking widget and manages your products, availability, promotions and bookings. A TuriTop account is required to use this plugin.<\/p>\n\n<p>What the service is used for and what data is sent:<\/p>\n\n<ul>\n<li>Authorization: when you connect or renew the connection, the plugin sends your TuriTop account authorization (API key\/token) to authenticate the site against your TuriTop account.<\/li>\n<li>Product synchronization: when you synchronise services or load the configuration, the plugin sends product\/service identifiers and the requested language to retrieve your products, tours, events and availability.<\/li>\n<li>Promotions: when a visitor enters a promo code, the code is sent to validate it.<\/li>\n<li>Bookings: when a visitor makes or edits a booking through the embedded widget, the booking details are sent to TuriTop to create or update the booking.<\/li>\n<\/ul>\n\n<p>These requests are made to <code>https:\/\/app.turitop.com<\/code> each time the relevant admin synchronization runs or the booking widget is loaded by a site visitor.<\/p>\n\n<p>Service provided by TuriTop S.L.:<\/p>\n\n<ul>\n<li>Terms of Service: <a href=\"https:\/\/www.turitop.com\/en\/terms-conditions\">https:\/\/www.turitop.com\/en\/terms-conditions<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/www.turitop.com\/en\/privacy-policy\">https:\/\/www.turitop.com\/en\/privacy-policy<\/a><\/li>\n<\/ul>\n\n<h3>Source Code and Third-Party Libraries<\/h3>\n\n<p>All of this plugin's own code is shipped human-readable and non-obfuscated. The complete, publicly accessible source is the WordPress.org Subversion repository for this plugin: https:\/\/plugins.svn.wordpress.org\/turitop-booking-system\/ \u2014 every released file (trunk and tags) can be browsed and downloaded there without authentication.<\/p>\n\n<p>Some assets bundle third-party open-source libraries. Their original, non-obfuscated sources are available at the URLs below:<\/p>\n\n<ul>\n<li>iframe-resizer \u2014 by David J. Bradshaw. A minified copy is bundled inside <code>assets\/js\/load-turitop.js<\/code> (used to resize the embedded TuriTop booking widget iframe). Source: https:\/\/github.com\/davidjbradshaw\/iframe-resizer<\/li>\n<li>wp-color-picker-alpha (version 3.0.4) \u2014 located in <code>vendor\/integralwebsite-lib\/js\/alpha\/<\/code> (adds alpha-channel support to the WordPress color picker in the admin settings). Source: https:\/\/github.com\/kallookoo\/wp-color-picker-alpha<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<ul>\n<li>Create your <a href=\"https:\/\/app.turitop.com\/register\/en\"> TuriTop account <\/a>.<\/li>\n<li>Configure your account and services on TuriTop. If you need any help, please do not hesitate to <a href=\"https:\/\/www.turitop.com\/en\/schedule-your-demo\/\">request a live demo<\/a> and we will show you how TuriTop works.<\/li>\n<li>Create a Wordpress Post and embed the TuriTop Booking System by using the gutenberg block \u201cTuriTop Booking System\u201d, our WooCommerce integration or the <a href=\"https:\/\/help.turitop.com\/hc\/en-es\/articles\/360010556060-Wordpress-plugin-installation\">shortcodes<\/a>.<\/li>\n<\/ul>\n\n<h3>Suggestions<\/h3>\n\n<p>If you have suggestions about how to improve TuriTop Booking System, you can <a href=\"mailto:help@turitop.com\" title=\"Turitop\">write us<\/a> so we can bundle them into the next release of the plugin.<\/p>\n\n<!--section=installation-->\n<ul>\n<li>Install the TuriTop Booking plugin in your WordPress admin by going to \u2018Plugins \/ Add New\u2019 and searching for TuriTop, (or) If doing a manual install, download the plugin and unzip into your \/wp-content\/plugins\/ directory<\/li>\n<li>Activate the the plugin through the \u2018Plugins\u2019 menu in WordPress<\/li>\n<\/ul>\n\n<!--section=faq-->\n<ul>\n<li><a href=\"https:\/\/help.turitop.com\/hc\/en-es\/articles\/360010556060-Wordpress-plugin-installation\"> TuriTop Wordpress Tutorial <\/a><\/li>\n<li><a href=\"https:\/\/www.turitop.com\/en\/frequently-asked-questions\/\"> TuriTop FAQ <\/a><\/li>\n<li><a href=\"https:\/\/help.turitop.com\/hc\/en-es\"> TuriTop Help Center <\/a><\/li>\n<\/ul>\n\n<!--section=changelog-->\n<h4>Version 1.0.20 - Released: Aug 12, 2026<\/h4>\n\n<ul>\n<li>Fixed the cart button, which stopped opening the checkout after the front-end loader was bundled with the plugin in 1.0.18. The checkout address the button built was missing two path segments, so the booking server answered \"The item you requested was not found\".<\/li>\n<li>Removed the Google Analytics setting. It relied on Universal Analytics, which Google shut down in 2023. On pages with a booking widget, when the setting was enabled, detecting it delayed the widget by up to three seconds.<\/li>\n<li>Corrected the feature list in the plugin description.<\/li>\n<li>Fixed gift voucher redemption failing when the TuriTop Company ID was saved in lowercase. The company ID is now always sent in uppercase, so redemption works whatever case it was entered in. Existing sites are corrected by the update itself, with no need to re-save the settings.<\/li>\n<\/ul>\n\n<h4>Version 1.0.19 - Released: Aug 07, 2026<\/h4>\n\n<ul>\n<li>Fixed the gift voucher redemption button, which stopped opening after the front-end loader was bundled with the plugin in 1.0.18. The scripts the loader injects now resolve the TuriTop server from the plugin configuration instead of the loader's own URL.<\/li>\n<li>Rewrote the plugin description and the feature list to explain more clearly what the plugin does, how the booking widget is added to a page, and what the TuriTop platform offers beyond WordPress.<\/li>\n<li>Fixed malformed quotes in the link attributes of the description, so its links open in a new tab again.<\/li>\n<li>Updated the plugin description shown in the WordPress plugins screen to match the new wording, and declared the translation folder in the plugin header so that description is shown in the site language again.<\/li>\n<li>Rebuilt the bundled Spanish translation file, which had been compiled before an internal library rename and was therefore no longer applied to the plugin settings screens.<\/li>\n<\/ul>\n\n<h4>Version 1.0.18 - Released: Jul 29, 2026<\/h4>\n\n<ul>\n<li>Security hardening (WordPress.org review follow-up):<\/li>\n<li>Added capability checks (manage_options) to the service synchronization AJAX handlers and validated the target post type, so these admin-only actions require the proper permissions.<\/li>\n<li>Scoped the admin synchronization nonce to the plugin's own settings screens instead of emitting it on every admin page.<\/li>\n<li>Hardened the cart-integration script to validate the real message origin before processing postMessage data and to use safe DOM text assignment.<\/li>\n<li>Bundled the front-end loader script with the plugin instead of loading it from a remote host.<\/li>\n<li>Added capability checks to the vendor settings-form handler, and removed unused vendor cryptography helpers and a dead template-include code path.<\/li>\n<li>Removed unused legacy files that were no longer loaded by the plugin.<\/li>\n<\/ul>\n\n<h4>Version 1.0.17 - Released: Jul 24, 2026<\/h4>\n\n<ul>\n<li>Updated the documentation and support links in the plugin listing and admin settings to the current Help Center articles.<\/li>\n<li>Refreshed the integrations list and the account registration and demo links.<\/li>\n<\/ul>\n\n<h4>Version 1.0.16 - Released: Jul 16, 2026<\/h4>\n\n<ul>\n<li>WordPress.org review compliance (escaping and internationalization):<\/li>\n<li>Escaped the WooCommerce block (render_block) and product-hook widget output with wp_kses against an explicit allowed-HTML list, removing the bare phpcs:ignore annotations.<\/li>\n<li>Sanitized the dynamic inline CSS with wp_strip_all_tags before wp_add_inline_style to prevent style-tag breakout.<\/li>\n<li>Fixed the service list-table row-action strings (Edit, Restore, Trash, Delete) to use the \"turitop-booking-system\" text domain instead of \"default\".<\/li>\n<\/ul>\n\n<h4>Version 1.0.15 - Released: Jun 24, 2026<\/h4>\n\n<ul>\n<li>WordPress.org review compliance: vendor library hardening \u2014 added direct-file-access (ABSPATH) guards.<\/li>\n<li>Sanitized all request input in vendor input-form handlers (wp_unslash + sanitize_*).<\/li>\n<li>Escaped all vendor output by context (esc_html, esc_attr, esc_url).<\/li>\n<li>Updated bundled wp-color-picker-alpha library to version 3.0.4.<\/li>\n<li>Documented third-party library sources (iframe-resizer, wp-color-picker-alpha) in the readme.<\/li>\n<li>Escaped render_block output for the WooCommerce blocks integration.<\/li>\n<li>Plugin Check compliance: added the text domain to the service list-table row-action strings, set the minimum WordPress version to 5.9 (block-theme support), updated \"Tested up to\" to 7.0, and aligned the plugin name with the readme.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Security hardening per WordPress.org review: escape all output (escaping late), sanitize and validate all request input, add nonce and capability checks on service bulk actions, and use $wpdb-&gt;prepare() for database queries.<\/li>\n<li>Internationalization: use the \"turitop-booking-system\" text domain consistently and fix gettext function calls.<\/li>\n<li>Documented the external TuriTop service (app.turitop.com) used by the plugin, including Terms of Service and Privacy Policy links.<\/li>\n<li>Added direct-file-access protection to PHP files and a .distignore for distribution.<\/li>\n<li>Fixed the Plugin URI and other declared URLs.<\/li>\n<\/ul>\n\n<h4>Version 1.0.0 - Released: Dic 29, 2018<\/h4>\n\n<ul>\n<li>First release<\/li>\n<\/ul>\n\n<h4>Version 1.0.1 - Released: Jan 21, 2019<\/h4>\n\n<ul>\n<li>Tweak: New cart options.<\/li>\n<li>Tweak: Gutenberg block functionality<\/li>\n<\/ul>\n\n<h4>Version 1.0.2 - Released: Jan 31, 2019<\/h4>\n\n<ul>\n<li>Fix: Compatibility with WordPress version below 5.0.0: enqueueing TuriTop javascript<\/li>\n<\/ul>\n\n<h4>Version 1.0.3 - Released: May 20, 2019<\/h4>\n\n<p>New: shortcode example default image\nNew: Round Trip Tweak: Custom class for buttons\nNew: Checkbox to activate the VIP features. Update: spanish language\nFix: Error lower PHP version of 7.2\nFix: INTEGRALWEBSITE_FUNCTIONS not a function\nFix: notice dynamic_css\nFix: details_and_button\nFix: Check if page exist when displaying on shop page\nTweak: API get tickets call\nTweak: Additional info field WooCommerce Product\nTweak: New API calls - Tweak: New Woocommerce Product Layout\nTweak: integralwebsite functions upgrade\nTweak: Shortcode improvement\nTweak: WooCommerce features\nTweak: Image for buttons\nTweak: More options to create custom button\nTweak: shortcodes list updated settings page - Fix: CONSTANT SIMPLEDEVEVEL_THEME_VERSION\nTweak: checkbox to create pages on synchronization\nTweak: checkbox activate cart\nTweak: new way of calling integralwebsite functions\nTweak: compatibility with PHP 5.4\nTweak: new filters to display buttons\nTweak: New service options\nTweak: New filters and actions for CPT services\nTweak: add className attribute to the gutenberg block\nTweak: load always TuriTop script for ajax calls\nUpdate: Spanish language\nDev: Modify images url from API\nDev: do_action before displaying services<\/p>\n\n<h4>Version 1.0.4 - Released: Jul 02, 2019<\/h4>\n\n<p>Fix: Shortcode attribute className -&gt; classname<\/p>\n\n<h4>Version 1.0.5 - Released: Dec 05, 2019<\/h4>\n\n<p>New: Tooltips, redeem gift voucher and gift voucher - Update: Texts, admin menu, cart customization, woocommerce align button\nTweak: Display TuriTop Box on gutenberg\nFix: function wp_enqueue_code_editor incompatibility olders WordPress\nFix: Compatibility PHP &lt; 5.6<\/p>\n\n<h4>Version 1.0.6 - Released: Feb 10, 2020<\/h4>\n\n<p>Fix: Shortcode instructions texts All services buttons, All categories buttons and Specific Category<\/p>\n\n<h4>Version 1.0.7 - Released: May 07, 2020<\/h4>\n\n<p>Tweak: Filters for API\nTweak: API filters\nTweak: Improving google lighthouse scores. Tweak: Add the cart to multiples menus. Fix: Cart compatibility with WPML menus\nUpdate: Change vendor library SimpleDevel for IntegralWebSite Library<\/p>\n\n<h4>Version 1.0.8 - Released: Feb 25, 2021<\/h4>\n\n<h4>Version 1.0.9 - Released: Jul 19, 2021<\/h4>\n\n<p>Tested up to: 5.7<\/p>\n\n<h4>Version 1.0.10 - Released: Jun 02, 2022<\/h4>\n\n<p>Tested up to: 6.0<\/p>\n\n<h4>Version 1.0.11 - Released: Apr 11, 2025<\/h4>\n\n<p>Tested up to: 6.7.2<\/p>\n\n<h4>Version 1.0.12 - Released: Jan 02, 2026<\/h4>\n\n<p>Fix: Security vulnerabilities patched\nFix: Various issues resolved\nFix: Compatibility with latest WordPress versions improved<\/p>","raw_excerpt":"TuriTop online booking system for tours, activities and escape rooms. Manage availability, bookings and payments.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/65850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=65850"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/turitop"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=65850"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=65850"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=65850"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=65850"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=65850"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=65850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}