{"id":324016,"date":"2026-06-19T19:02:19","date_gmt":"2026-06-19T19:02:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/hostnsync-booking-engine-reservations-calendar-sync\/"},"modified":"2026-08-23T22:10:36","modified_gmt":"2026-08-23T22:10:36","slug":"host-domination-booking-engine","status":"publish","type":"plugin","link":"https:\/\/fr.wordpress.org\/plugins\/host-domination-booking-engine\/","author":11558429,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.19","stable_tag":"1.4.19","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Host Domination Booking Engine: Calendar Sync & Reservation System","header_author":"Host Domination","header_description":"Lightweight Booking Engine with Calendar Sync and Reservation Requests for Vacation Rentals, Apartments, B&Bs and Hosts.","assets_banners_color":"bec8d4","last_updated":"2026-08-23 22:10:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/hostdomination.com\/booking-engine\/","header_author_uri":"https:\/\/hostdomination.com\/","rating":5,"author_block_rating":0,"active_installs":60,"downloads":2023,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"ilithio","date":"2026-08-16 18:05:19"},"1.3.2":{"tag":"1.3.2","author":"ilithio","date":"2026-08-18 08:11:13"},"1.3.3":{"tag":"1.3.3","author":"ilithio","date":"2026-08-17 18:46:02"},"1.3.4":{"tag":"1.3.4","author":"ilithio","date":"2026-08-18 08:11:13"},"1.3.5":{"tag":"1.3.5","author":"ilithio","date":"2026-08-18 17:36:11"},"1.3.6":{"tag":"1.3.6","author":"ilithio","date":"2026-08-18 18:41:10"},"1.3.62":{"tag":"1.3.62","author":"ilithio","date":"2026-08-19 18:03:43"},"1.4.0":{"tag":"1.4.0","author":"ilithio","date":"2026-08-21 08:44:50"},"1.4.1":{"tag":"1.4.1","author":"ilithio","date":"2026-08-22 17:23:12"},"1.4.11":{"tag":"1.4.11","author":"ilithio","date":"2026-08-22 18:22:25"},"1.4.12":{"tag":"1.4.12","author":"ilithio","date":"2026-08-22 20:37:58"},"1.4.18":{"tag":"1.4.18","author":"ilithio","date":"2026-08-23 19:01:20"},"1.4.19":{"tag":"1.4.19","author":"ilithio","date":"2026-08-23 22:10:36"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":3},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580790,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580790,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580086,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580086,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3662360,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"Host Domination Booking Engine Live Demo\",\"description\":\"Installs and activates Host Domination Booking Engine, creates three demo calendars connected to the local assets\\\/demo.ics feed bundled with the plugin, adds more than 60 fictional booking requests across the current and previous two months, and opens the populated Booking Engine dashboard.\",\"author\":\"Host Domination\",\"categories\":[\"booking\",\"calendar\",\"reservations\",\"plugin-demo\"]},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=hdbe\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"host-domination-booking-engine\"},\"options\":{\"activate\":true}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\n\\nglobal $wpdb;\\n\\n$privacy_page = get_page_by_path('privacy-policy');\\nif (!$privacy_page) {\\n    $privacy_page_id = wp_insert_post([\\n        'post_title'   => 'Privacy Policy',\\n        'post_name'    => 'privacy-policy',\\n        'post_content' => '<h2>Privacy Policy<\\\/h2><p>This temporary demo collects only the information entered in the booking request form. The WordPress Playground environment is temporary and is deleted when the preview session ends.<\\\/p>',\\n        'post_status'  => 'publish',\\n        'post_type'    => 'page',\\n        'post_author'  => 1,\\n    ]);\\n} else {\\n    $privacy_page_id = (int) $privacy_page->ID;\\n}\\n\\n$settings = (array) get_option('hdbe_settings', []);\\n$settings['hold_minutes'] = 20;\\n$settings['sync_interval'] = 'hdbe_30min';\\n$settings['privacy_policy_url'] = get_permalink($privacy_page_id);\\nupdate_option('hdbe_settings', $settings);\\n\\n$calendar_table = $wpdb->prefix . 'hdbe_calendars';\\n$feeds_table    = $wpdb->prefix . 'hdbe_external_feeds';\\n$bookings_table = $wpdb->prefix . 'hdbe_bookings';\\n\\n$ical_url = plugins_url(\\n    'assets\\\/demo.ics',\\n    WP_PLUGIN_DIR . '\\\/host-domination-booking-engine\\\/host-domination-booking-engine.php'\\n);\\n\\n$demo_calendars = [\\n    [\\n        'name'       => 'Sea View Apartment',\\n        'slug'       => 'sea-view-apartment',\\n        'base_price' => 89.00,\\n        'max_guests' => 4,\\n    ],\\n    [\\n        'name'       => 'Sunset Loft',\\n        'slug'       => 'sunset-loft',\\n        'base_price' => 109.00,\\n        'max_guests' => 3,\\n    ],\\n    [\\n        'name'       => 'Garden Suite',\\n        'slug'       => 'garden-suite',\\n        'base_price' => 129.00,\\n        'max_guests' => 5,\\n    ],\\n];\\n\\n$calendar_ids = [];\\n\\nforeach ($demo_calendars as $index => $demo_calendar) {\\n    $calendar_id = (int) $wpdb->get_var(\\n        $wpdb->prepare(\\n            \\\"SELECT id FROM {$calendar_table} WHERE slug = %s LIMIT 1\\\",\\n            $demo_calendar['slug']\\n        )\\n    );\\n\\n    $calendar_data = [\\n        'name'                      => $demo_calendar['name'],\\n        'slug'                      => $demo_calendar['slug'],\\n        'base_price'                => $demo_calendar['base_price'],\\n        'cleaning_fee'              => 0,\\n        'currency'                  => 'eur',\\n        'show_prices_frontend'      => 1,\\n        'deposit_percent'           => 100,\\n        'max_guests'                => $demo_calendar['max_guests'],\\n        'max_child_age'             => 10,\\n        'min_nights'                => 2,\\n        'active'                    => 1,\\n        'sort_order'                => $index,\\n        'layout_mode'               => 'auto',\\n        'whatsapp_requests_enabled' => 0,\\n        'whatsapp_number'           => '',\\n    ];\\n\\n    if (!$calendar_id) {\\n        $calendar_data['feed_token'] = wp_generate_password(48, false, false);\\n        $calendar_data['created_at'] = current_time('mysql');\\n\\n        $wpdb->insert($calendar_table, $calendar_data);\\n        $calendar_id = (int) $wpdb->insert_id;\\n    } else {\\n        $wpdb->update($calendar_table, $calendar_data, ['id' => $calendar_id]);\\n    }\\n\\n    if (!$calendar_id) {\\n        continue;\\n    }\\n\\n    $calendar_ids[] = $calendar_id;\\n\\n    \\\/\\\/ Each demo calendar uses the same public iCal feed requested for the Live Preview.\\n    $wpdb->delete($feeds_table, ['calendar_id' => $calendar_id]);\\n    $wpdb->insert(\\n        $feeds_table,\\n        [\\n            'calendar_id' => $calendar_id,\\n            'name'        => 'Other',\\n            'url'         => $ical_url,\\n            'created_at'  => current_time('mysql'),\\n        ]\\n    );\\n}\\n\\n\\\/\\\/ Import the real demo.ics feed into all three calendars.\\nif (class_exists('HDBE_Plugin') && method_exists('HDBE_Plugin', 'import_all_external_feeds')) {\\n    HDBE_Plugin::import_all_external_feeds();\\n}\\n\\n\\\/\\\/ Remove older Playground fake requests from previous blueprint revisions.\\n$wpdb->query(\\n    \\\"DELETE FROM {$bookings_table}\\n     WHERE source = 'request'\\n       AND external_uid LIKE 'playground-demo-%'\\\"\\n);\\n\\n\\\/\\\/ Populate the three-month dashboard chart with 60 fictional website requests:\\n\\\/\\\/ 20 in the current month, 20 in the previous month and 20 two months ago.\\n$guest_names = [\\n    'Emma Carter', 'Daniel Brooks', 'Olivia Martin', 'James Wilson', 'Sophia Turner',\\n    'Liam Anderson', 'Mia Thompson', 'Noah Bennett', 'Charlotte Evans', 'Lucas Moore',\\n    'Amelia Harris', 'Ethan Clark', 'Isabella Lewis', 'Oliver Walker', 'Ava Hall',\\n    'Leo Young', 'Emily King', 'Arthur Wright', 'Grace Scott', 'Henry Green',\\n    'Sophie Adams', 'Oscar Baker', 'Lily Nelson', 'Jack Hill', 'Ella Roberts',\\n    'William Carter', 'Chloe Mitchell', 'George Cooper', 'Lucy Parker', 'Thomas Reed',\\n];\\n\\n$notes_pool = [\\n    'Could you please confirm the check-in time?',\\n    'We would appreciate a quiet room if available.',\\n    'Please let us know if early check-in is possible.',\\n    'Could you confirm whether parking is available?',\\n    'We are travelling with children and may need extra towels.',\\n    'Is luggage storage available before check-in?',\\n    'Please confirm whether late check-in is available.',\\n    'We are looking forward to our stay. Thank you!',\\n];\\n\\n$tz = wp_timezone();\\n$now = new DateTimeImmutable('now', $tz);\\n$today = new DateTimeImmutable('today', $tz);\\n$month_anchor = new DateTimeImmutable('first day of this month 00:00:00', $tz);\\n\\nfor ($i = 0; $i < 60; $i++) {\\n    $group = intdiv($i, 20); \\\/\\\/ 0 = current month, 1 = previous, 2 = two months ago\\n    $month_date = $month_anchor->modify('-' . $group . ' months');\\n\\n    $days_in_month = (int) $month_date->format('t');\\n    if ($group === 0) {\\n        $days_in_month = max(1, min($days_in_month, (int) $now->format('j')));\\n    }\\n\\n    $day = 1 + (($i * 7 + $group * 3) % $days_in_month);\\n    $hour = 8 + (($i * 5) % 11);\\n    $minute = ($i * 13) % 60;\\n\\n    $created_at = $month_date\\n        ->setDate((int) $month_date->format('Y'), (int) $month_date->format('m'), $day)\\n        ->setTime($hour, $minute, 0);\\n\\n    $calendar_index = $i % max(1, count($calendar_ids));\\n    $calendar_id = $calendar_ids[$calendar_index] ?? 0;\\n    if (!$calendar_id) {\\n        continue;\\n    }\\n\\n    \\\/\\\/ Roughly 40% confirmed, the rest pending, so both chart series are visible.\\n    $is_confirmed = in_array($i % 5, [0, 2], true);\\n    $status = $is_confirmed ? 'confirmed' : 'pending';\\n\\n    \\\/\\\/ Keep stays in the future so Upcoming stays and the availability calendar are populated too.\\n    $start_offset = 2 + (($i * 2 + $calendar_index * 5) % 100);\\n    $nights = 2 + ($i % 4);\\n    $start_date = $today->modify('+' . $start_offset . ' days');\\n    $end_date = $start_date->modify('+' . $nights . ' days');\\n\\n    $adults = 1 + ($i % 3);\\n    $children = ($i % 4 === 0) ? 1 : 0;\\n    $base_price = (float) $demo_calendars[$calendar_index]['base_price'];\\n    $amount = $base_price * $nights;\\n\\n    $guest_name = $guest_names[$i % count($guest_names)];\\n    $guest_slug = sanitize_title($guest_name);\\n    $guest_email = $guest_slug . '+' . ($i + 1) . '@example.com';\\n    $phone = '+39 320 555 ' . str_pad((string) (1000 + $i), 4, '0', STR_PAD_LEFT);\\n    $notes = \\\"Phone: {$phone}\\\\nNotes: \\\" . $notes_pool[$i % count($notes_pool)];\\n\\n    $wpdb->insert(\\n        $bookings_table,\\n        [\\n            'calendar_id'     => $calendar_id,\\n            'start_date'      => $start_date->format('Y-m-d'),\\n            'end_date'        => $end_date->format('Y-m-d'),\\n            'guest_name'      => $guest_name,\\n            'guest_email'     => $guest_email,\\n            'adults'          => $adults,\\n            'children'        => $children,\\n            'child_ages'      => $children ? wp_json_encode([8]) : null,\\n            'amount'          => $amount,\\n            'extras_total'    => 0,\\n            'discount_total'  => 0,\\n            'deposit_amount'  => 0,\\n            'currency'        => 'eur',\\n            'status'          => $status,\\n            'source'          => 'request',\\n            'notes'           => $notes,\\n            'external_uid'    => 'playground-demo-request-' . str_pad((string) ($i + 1), 3, '0', STR_PAD_LEFT),\\n            'hold_expires_at' => null,\\n            'created_at'      => $created_at->format('Y-m-d H:i:s'),\\n            'updated_at'      => current_time('mysql'),\\n        ]\\n    );\\n}\\n\\n\\\/\\\/ Make the first upcoming confirmed stays especially clear and spread them across all 3 calendars.\\nfor ($i = 0; $i < min(3, count($calendar_ids)); $i++) {\\n    $uid = 'playground-demo-featured-upcoming-' . ($i + 1);\\n    $wpdb->delete($bookings_table, ['external_uid' => $uid]);\\n\\n    $start_date = $today->modify('+' . (3 + $i * 4) . ' days');\\n    $end_date = $start_date->modify('+3 days');\\n    $created_at = $now->modify('-' . (15 + $i * 9) . ' minutes');\\n    $guest_name = ['Maya Collins', 'Alexander Stone', 'Sofia Romano'][$i];\\n\\n    $wpdb->insert(\\n        $bookings_table,\\n        [\\n            'calendar_id'     => $calendar_ids[$i],\\n            'start_date'      => $start_date->format('Y-m-d'),\\n            'end_date'        => $end_date->format('Y-m-d'),\\n            'guest_name'      => $guest_name,\\n            'guest_email'     => sanitize_title($guest_name) . '@example.com',\\n            'adults'          => 2,\\n            'children'        => $i === 2 ? 1 : 0,\\n            'child_ages'      => $i === 2 ? wp_json_encode([7]) : null,\\n            'amount'          => (float) $demo_calendars[$i]['base_price'] * 3,\\n            'extras_total'    => 0,\\n            'discount_total'  => 0,\\n            'deposit_amount'  => 0,\\n            'currency'        => 'eur',\\n            'status'          => 'confirmed',\\n            'source'          => 'request',\\n            'notes'           => \\\"Phone: +39 320 555 20{$i}\\\\nNotes: Confirmed demo stay.\\\",\\n            'external_uid'    => $uid,\\n            'hold_expires_at' => null,\\n            'created_at'      => $created_at->format('Y-m-d H:i:s'),\\n            'updated_at'      => current_time('mysql'),\\n        ]\\n    );\\n}\\n\\n$demo_page = get_page_by_path('booking-engine-demo');\\n$demo_content =\\n    '<!-- wp:paragraph --><p>Select a property, choose your dates and test the direct booking request form. This WordPress Playground website is temporary.<\\\/p><!-- \\\/wp:paragraph -->'\\n    . '[hdbe_booking_calendars]';\\n\\nif (!$demo_page) {\\n    $demo_page_id = wp_insert_post([\\n        'post_title'   => 'Booking Engine Live Demo',\\n        'post_name'    => 'booking-engine-demo',\\n        'post_content' => $demo_content,\\n        'post_status'  => 'publish',\\n        'post_type'    => 'page',\\n        'post_author'  => 1,\\n    ]);\\n} else {\\n    $demo_page_id = (int) $demo_page->ID;\\n    wp_update_post([\\n        'ID'           => $demo_page_id,\\n        'post_content' => $demo_content,\\n        'post_status'  => 'publish',\\n    ]);\\n}\\n\\n\\\/\\\/ Hide front-end navigation menus while keeping the site header and page title.\\n$demo_css = '\\n    header nav,\\n    .wp-block-navigation,\\n    #site-navigation,\\n    .main-navigation,\\n    .primary-navigation,\\n    .menu-primary-container,\\n    .site-header .menu {\\n        display: none !important;\\n    }\\n';\\n\\nif (function_exists('wp_update_custom_css_post')) {\\n    wp_update_custom_css_post($demo_css);\\n}\\n\\n\\\/\\\/ Create a temporary must-use plugin for the Playground administration area.\\n\\\/\\\/ It keeps only the Host Domination Booking Engine menu and redirects the\\n\\\/\\\/ standard WordPress Dashboard to the Booking Engine dashboard.\\n$mu_plugins_dir = WP_CONTENT_DIR . '\\\/mu-plugins';\\nif (!is_dir($mu_plugins_dir)) {\\n    wp_mkdir_p($mu_plugins_dir);\\n}\\n\\n$demo_admin_plugin = <<<'PHP'\\n<?php\\n\\\/**\\n * Plugin Name: Host Domination Playground Admin\\n * Description: Simplifies the WordPress admin menu for the temporary Live Preview.\\n *\\\/\\n\\ndefined('ABSPATH') || exit;\\n\\nadd_action('admin_menu', static function () {\\n    global $menu;\\n\\n    if (!is_array($menu)) {\\n        return;\\n    }\\n\\n    foreach ($menu as $item) {\\n        $slug = isset($item[2]) ? (string) $item[2] : '';\\n\\n        if ($slug === 'hdbe' || strpos($slug, 'separator') === 0) {\\n            continue;\\n        }\\n\\n        remove_menu_page($slug);\\n    }\\n}, 999);\\n\\nadd_action('admin_bar_menu', static function ($admin_bar) {\\n    foreach ([\\n        'wp-logo',\\n        'site-name',\\n        'updates',\\n        'comments',\\n        'new-content',\\n        'search',\\n    ] as $node_id) {\\n        $admin_bar->remove_node($node_id);\\n    }\\n}, 999);\\n\\nadd_action('admin_init', static function () {\\n    global $pagenow;\\n\\n    if ($pagenow === 'index.php') {\\n        wp_safe_redirect(admin_url('admin.php?page=hdbe'));\\n        exit;\\n    }\\n});\\nPHP;\\n\\nfile_put_contents(\\n    $mu_plugins_dir . '\\\/host-domination-playground-admin.php',\\n    $demo_admin_plugin\\n);\\n\\nupdate_option('blogname', 'Host Domination Booking Engine Demo');\\nupdate_option('blogdescription', 'Direct booking requests and calendar synchronization for WordPress');\\nupdate_option('show_on_front', 'page');\\nupdate_option('page_on_front', $demo_page_id);\\nupdate_option('permalink_structure', '\\\/%postname%\\\/');\\nflush_rewrite_rules(false);\\n\"},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":[],"tagged_versions":["1.3.0","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.62","1.4.0","1.4.1","1.4.11","1.4.12","1.4.18","1.4.19"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3661100,"resolution":"1","location":"assets","locale":"","width":1920,"height":1080},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3661100,"resolution":"2","location":"assets","locale":"","width":1920,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3661100,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3661100,"resolution":"4","location":"assets","locale":"","width":1920,"height":1080},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3662217,"resolution":"5","location":"assets","locale":"","width":1920,"height":1080},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3662217,"resolution":"6","location":"assets","locale":"","width":1920,"height":1080},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3662217,"resolution":"7","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"Booking Dashboard \u2013 View synchronized calendars, booking statistics, and recent activity at a glance.","2":"Public Booking Form with Pricing \u2013 Let guests select dates, view nightly prices, and submit booking requests.","3":"Public Booking Form without Pricing \u2013 Let guests select dates, min nightly and submit booking requests.","4":"Booking Management \u2013 Review recent requests, manage reservations, and organize booking details.","5":"Calendar Settings and iCal Sync \u2013 Configure calendars and synchronize availability through external iCal links.","6":"Add-on Section - Extend your booking system with powerful Add-ons"}},"plugin_section":[],"plugin_tags":[4487,274,243354,4486,1475],"plugin_category":[40],"plugin_contributors":[267978],"plugin_business_model":[],"class_list":["post-324016","plugin","type-plugin","status-publish","hentry","plugin_tags-booking-engine","plugin_tags-booking-system","plugin_tags-calendar-sync","plugin_tags-hotel-booking","plugin_tags-reservations","plugin_category-calendar-and-events","plugin_contributors-ilithio","plugin_committers-ilithio"],"banners":{"banner":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/banner-772x250.png?rev=3580086","banner_2x":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/banner-1544x500.png?rev=3580086","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/icon-128x128.png?rev=3580790","icon_2x":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/icon-256x256.png?rev=3580790","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-1.png?rev=3661100","caption":"Booking Dashboard \u2013 View synchronized calendars, booking statistics, and recent activity at a glance."},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-2.png?rev=3661100","caption":"Public Booking Form with Pricing \u2013 Let guests select dates, view nightly prices, and submit booking requests."},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-3.png?rev=3661100","caption":"Public Booking Form without Pricing \u2013 Let guests select dates, min nightly and submit booking requests."},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-4.png?rev=3661100","caption":"Booking Management \u2013 Review recent requests, manage reservations, and organize booking details."},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-5.png?rev=3662217","caption":"Calendar Settings and iCal Sync \u2013 Configure calendars and synchronize availability through external iCal links."},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-6.png?rev=3662217","caption":"Add-on Section - Extend your booking system with powerful Add-ons"},{"src":"https:\/\/ps.w.org\/host-domination-booking-engine\/assets\/screenshot-7.png?rev=3662217","caption":""}],"raw_content":"<!--section=description-->\n<h4>Transform your WordPress website into a powerful direct booking channel with calendar synchronization for Airbnb, Booking.com and other OTAs!<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> is a <strong>WordPress booking engine<\/strong>, <strong>reservation request system<\/strong> and <strong>iCal calendar synchronization plugin<\/strong> with new <strong>Whatsapp Integration<\/strong>, designed for vacation rentals, holiday homes, apartments, villas, bed and breakfasts, guest houses, small hotels and other accommodation businesses.<\/p>\n\n<p>Take a look at the live demo website and see for yourself what you can build and manage with Host Domination Booking Engine, including the option to show or hide prices in the calendar.<\/p>\n\n<h3>Demo<\/h3>\n\n<ul>\n<li><a href=\"https:\/\/hostdomination.com\/demo-free-booking-engine\/\">Front-end Booking Engine Free Demo<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/host-domination-booking-engine\/?preview=1\">Back-end Booking Engine Free Demo<\/a><\/li>\n<li><a href=\"https:\/\/hostdomination.com\/demo-booking-engine-pro\/\">Booking Engine Pro Demo + Add-ons<\/a><\/li>\n<li><a href=\"https:\/\/hostdomination.com\/booking-engine-addons\/\">Add-ons Store<\/a> <\/li>\n<li><a href=\"https:\/\/hostdomination.com\/support\/\">Ticket Support for Free &amp; Pro version<\/a><\/li>\n<\/ul>\n\n<h3>Free Plugin Video Demo<\/h3>\n\n<p><a href=\"https:\/\/youtu.be\/_5j8VgnoN0U\/\">Free Plugin Video Demo - Youtube link<\/a><\/p>\n\n<p>https:\/\/youtu.be\/_5j8VgnoN0U<\/p>\n\n<h3>Pro Plugin Video Demo<\/h3>\n\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=ixK5AvIIQFc\">Pro + Add-ons Plugin Video Demo - Youtube link<\/a><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=ixK5AvIIQFc<\/p>\n\n<p>The plugin is <strong>open source<\/strong>, <strong>self-hosted<\/strong> and <strong>compatible with any WordPress theme<\/strong>. It works directly inside your WordPress website without requiring a mandatory Host Domination cloud account or a subscription to a proprietary booking platform. The <strong>Free version<\/strong> does not expire.<\/p>\n\n<p>Hosts and property managers can display an <strong>availability calendar<\/strong>, receive <strong>direct booking requests<\/strong>, review guest details in WordPress and synchronize unavailable dates through standard <strong>iCal and ICS calendar feeds<\/strong>.<\/p>\n\n<p>Each calendar can also enable an optional <strong>WhatsApp request channel<\/strong>. Email delivery remains active and mandatory; after the request is saved and emailed, WhatsApp opens with the submitted booking details already filled in for the guest to review and send.<\/p>\n\n<p>The <strong>Free version<\/strong> automatically checks one connected external iCal feed <strong>once a day<\/strong> and also provides a manual <strong>Refresh Calendars<\/strong> option. <strong>PRO<\/strong> provides automatic calendar synchronization <strong>every 30 minutes<\/strong> for up to three external feeds per accommodation calendar.<\/p>\n\n<p><strong>Host Domination Booking Engine<\/strong> can be used alongside <strong>Airbnb<\/strong>, <strong>Booking.com<\/strong>, <strong>Vrbo<\/strong> and other OTA or reservation platforms that provide a compatible iCal or ICS URL. You can continue using the booking channels you already work with while adding a direct booking form to your own website.<\/p>\n\n<h4>Direct booking requests from your WordPress website<\/h4>\n\n<p>Turn your WordPress website into an additional <strong>direct booking channel<\/strong>.<\/p>\n\n<p>Guests can select and submit:<\/p>\n\n<ul>\n<li>Check-in and check-out dates<\/li>\n<li>Number of adults<\/li>\n<li>Number of children up to the maximum age configured for the selected calendar<\/li>\n<li>Full name<\/li>\n<li>Email address<\/li>\n<li>Contact phone number<\/li>\n<li>Additional notes<\/li>\n<li>Mandatory Privacy Policy consent before submission<\/li>\n<li>Optional acceptance of linked Terms and Conditions when configured by the website administrator<\/li>\n<li>Optional WhatsApp opening with a prefilled copy of the submitted request<\/li>\n<\/ul>\n\n<p>New requests appear in the WordPress administration area. Administrators can review, confirm, reject or delete them.<\/p>\n\n<p><strong>Pending requests<\/strong> do not become <strong>confirmed reservations<\/strong> automatically. Once a request is confirmed, its dates are included in the internal <strong>availability calendar<\/strong> and in the website iCal export feed.<\/p>\n\n<p>The booking engine can be added to Gutenberg, Elementor or another WordPress page builder that supports shortcodes.<\/p>\n\n<p>Each calendar generates its own shortcode. For example:<\/p>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<p>Replace <code>123<\/code> with the ID shown in the <strong>Created Calendars<\/strong> table after saving your calendar.<\/p>\n\n<h4>Front-end availability calendar<\/h4>\n\n<p>Display a responsive booking calendar that allows guests to select arrival and departure dates directly from your website.<\/p>\n\n<p>The calendar shows:<\/p>\n\n<ul>\n<li>Available dates<\/li>\n<li>Unavailable dates<\/li>\n<li>Confirmed website reservations<\/li>\n<li>Reservations imported from external iCal feeds<\/li>\n<li>Selectable check-in and check-out boundaries<\/li>\n<li>The <strong>minimum stay<\/strong> required<\/li>\n<li>An optional <strong>base price per night<\/strong><\/li>\n<\/ul>\n\n<p>Today can be selected when it is available. Guests can select dates up to 13 months in advance.<\/p>\n\n<p>The calendar is suitable for:<\/p>\n\n<ul>\n<li>Vacation rentals<\/li>\n<li>Holiday apartments<\/li>\n<li>Villas<\/li>\n<li>Guest houses<\/li>\n<li>Bed and breakfasts<\/li>\n<li>Small hotels<\/li>\n<li>Rooms<\/li>\n<li>Campsites<\/li>\n<li>Short-term rentals<\/li>\n<li>Property rental businesses<\/li>\n<\/ul>\n\n<h4>Calendar and accommodation settings<\/h4>\n\n<p>Create a calendar for your room, apartment or accommodation and configure:<\/p>\n\n<ul>\n<li>Calendar or accommodation name<\/li>\n<li>Maximum number of guests<\/li>\n<li>Minimum number of nights<\/li>\n<li>Optional <strong>base price per night<\/strong><\/li>\n<li>EUR or USD currency<\/li>\n<li>Whether the nightly price is displayed in the public calendar<\/li>\n<li>External iCal or ICS calendar URL<\/li>\n<li>Required <strong>Privacy Policy URL<\/strong> for GDPR and personal-data information<\/li>\n<li>Optional <strong>Terms and Conditions URL<\/strong> covering booking, cancellation, refund and reservation rules<\/li>\n<li><strong>Receive requests<\/strong> channels, with mandatory Email and optional WhatsApp per calendar<\/li>\n<li>International WhatsApp destination number when the optional channel is enabled<\/li>\n<li><strong>Website iCal export URL<\/strong><\/li>\n<\/ul>\n\n<p>The <strong>Free version<\/strong> supports <strong>up to three accommodation calendars<\/strong>.<\/p>\n\n<p><strong>Host Domination Booking Engine PRO<\/strong> adds online payments, advanced pricing, premium add-ons and capacity options that can scale beyond the three calendars included in Free.<\/p>\n\n<h4>Minimum stay validation<\/h4>\n\n<p>Set the minimum number of nights required for the accommodation.<\/p>\n\n<p>If a guest selects a shorter stay, the booking form displays a validation message and prevents the request from being submitted until a valid date range is selected.<\/p>\n\n<h4>Optional nightly price display<\/h4>\n\n<p>The <strong>Free version<\/strong> allows you to configure a <strong>base price per night<\/strong> and display it on available dates in the public calendar.<\/p>\n\n<p><strong>Host Domination Booking Engine<\/strong> <strong>PRO<\/strong> adds advanced pricing tools for day, month and yearly pricing rules, including different prices for selected dates and periods.<\/p>\n\n<h4>iCal and ICS calendar synchronization<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> supports standard <strong>iCal and ICS calendar feeds<\/strong>.<\/p>\n\n<p>You can:<\/p>\n\n<ul>\n<li>Import unavailable dates from an external calendar<\/li>\n<li>Import reservations from a compatible OTA calendar<\/li>\n<li>Check the connected external calendar automatically <strong>approximately every 24 hours<\/strong> in the Free version<\/li>\n<li>Run an immediate manual import through <strong>Refresh Calendars<\/strong><\/li>\n<li>Generate a <strong>website iCal export URL<\/strong><\/li>\n<li>Export confirmed website reservations<\/li>\n<li>Export imported and blocked periods through the website calendar feed<\/li>\n<li>Connect the website calendar to other compatible reservation systems<\/li>\n<\/ul>\n\n<p>Compatible sources may include:<\/p>\n\n<ul>\n<li><strong>Airbnb<\/strong><\/li>\n<li><strong>Booking.com<\/strong><\/li>\n<li><strong>Vrbo<\/strong><\/li>\n<li>Google Calendar<\/li>\n<li>Apple Calendar<\/li>\n<li>Tripadvisor<\/li>\n<li>Other vacation rental platforms<\/li>\n<li>Property management systems that provide an iCal or ICS URL<\/li>\n<li>Agoda or Expedia-connected properties when the platform, account or connected property management system provides a compatible iCal feed<\/li>\n<\/ul>\n\n<p>Compatibility depends on the availability and format of the calendar feed supplied by each external service.<\/p>\n\n<h4>Automatic calendar synchronization in the Free version<\/h4>\n\n<p>The <strong>Free version<\/strong> supports:<\/p>\n\n<ul>\n<li>One external iCal or ICS URL<\/li>\n<li>An immediate calendar import when the external URL is saved<\/li>\n<li><strong>Automatic checks<\/strong> <strong>approximately every 24 hours<\/strong> through WordPress scheduled tasks<\/li>\n<li><strong>Manual updates<\/strong> at any time through the <strong>Refresh Calendars<\/strong> button<\/li>\n<li>One <strong>website iCal export URL<\/strong> for the accommodation calendar<\/li>\n<\/ul>\n\n<p>The automatic interval is approximate. WordPress scheduled tasks are normally triggered when the website receives traffic, and their execution may also depend on the hosting environment and server configuration.<\/p>\n\n<p>The external OTA or booking platform independently controls how frequently it publishes calendar changes and how often it reads the Website iCal Feed URL generated by the plugin. Some platforms refresh imported calendars automatically at their own intervals, while others may provide or require a manual refresh option.<\/p>\n\n<p>For this reason, iCal synchronization is not guaranteed to be instantaneous or <strong>real time<\/strong>. You can force an immediate import from the connected external feed at any time by clicking the <strong>Refresh Calendars<\/strong> button.<\/p>\n\n<h4>Two-way iCal calendar workflow<\/h4>\n\n<p>A typical synchronization workflow is:<\/p>\n\n<ol>\n<li>Export the iCal or ICS URL from <strong>Airbnb<\/strong>, <strong>Booking.com<\/strong>, <strong>Vrbo<\/strong> or another compatible platform.<\/li>\n<li>Paste the external URL into <strong>Host Domination Booking Engine<\/strong>.<\/li>\n<li>Save the calendar. The plugin performs the initial import immediately.<\/li>\n<li>Copy the Website iCal Feed URL generated by the plugin.<\/li>\n<li>Import the generated URL into the external booking platform.<\/li>\n<li>Confirm <strong>direct booking requests<\/strong> received from your website so that their dates are included in the exported feed.<\/li>\n<li>The Free plugin checks the connected external calendar <strong>once a day<\/strong>. You can also use <strong>Refresh Calendars<\/strong> at any time to run an immediate manual import. PRO provides automatic calendar synchronization <strong>every 30 minutes<\/strong>.<\/li>\n<\/ol>\n\n<p>The plugin imports and exports availability through standard calendar feeds. It does not use the private APIs of the listed booking platforms.<\/p>\n\n<h4>Reduce the risk of double bookings<\/h4>\n\n<p>Calendar synchronization helps keep availability consistent between your WordPress website and compatible external booking channels.<\/p>\n\n<p>Imported reservations are displayed as unavailable dates in the booking calendar. Confirmed direct reservations are included in the website iCal feed and can be imported by compatible OTA platforms.<\/p>\n\n<p>Because iCal updates are periodic rather than instantaneous, no iCal-based system can guarantee real-time synchronization or completely eliminate the possibility of overlapping reservations.<\/p>\n\n<p>Always verify the calendar refresh settings used by every connected OTA or reservation platform.<\/p>\n\n<h4>Reservation management in WordPress<\/h4>\n\n<p>Manage direct requests from the WordPress dashboard.<\/p>\n\n<p>The booking area displays information such as:<\/p>\n\n<ul>\n<li>Guest name<\/li>\n<li>Guest email<\/li>\n<li>Contact phone number<\/li>\n<li>Check-in date<\/li>\n<li>Check-out date<\/li>\n<li>Number of guests<\/li>\n<li>Selected calendar or accommodation<\/li>\n<li>Guest notes<\/li>\n<li>Request status<\/li>\n<\/ul>\n\n<p>Administrators can:<\/p>\n\n<ul>\n<li>Confirm a request<\/li>\n<li>Reject a request<\/li>\n<li>Delete a booking or request<\/li>\n<li>Review synchronized external reservations<\/li>\n<li>View a monthly availability overview<\/li>\n<\/ul>\n\n<h4>Responsive and mobile-friendly booking form<\/h4>\n\n<p>The front-end booking calendar is designed for desktop computers, tablets and smartphones.<\/p>\n\n<p>Guests can browse availability, choose their dates and submit the direct booking request without leaving the accommodation website.<\/p>\n\n<h4>Built for hosts and property managers<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> can be used by:<\/p>\n\n<ul>\n<li>Individual hosts<\/li>\n<li>Vacation rental owners<\/li>\n<li><strong>Airbnb<\/strong> hosts<\/li>\n<li>Property managers<\/li>\n<li>Bed and breakfast owners<\/li>\n<li>Apartment managers<\/li>\n<li>Villa rental businesses<\/li>\n<li>Small hotels<\/li>\n<li>Guest houses<\/li>\n<li>Short-term rental agencies<\/li>\n<li>WordPress developers<\/li>\n<li>Web agencies creating accommodation websites<\/li>\n<\/ul>\n\n<p>The plugin is not limited to Host Domination customers and can be installed on any compatible WordPress website.<\/p>\n\n<h4>Free version features<\/h4>\n\n<p>The <strong>Free version<\/strong> includes:<\/p>\n\n<ul>\n<li>Up to three accommodation calendars<\/li>\n<li>Direct booking request form<\/li>\n<li>Responsive front-end <strong>availability calendar<\/strong><\/li>\n<li>Check-in and check-out selection<\/li>\n<li>Guest number selection<\/li>\n<li>Guest contact details and notes<\/li>\n<li>Request confirmation, rejection and deletion<\/li>\n<li>Minimum-stay validation<\/li>\n<li>Optional base nightly price displayed in the calendar<\/li>\n<li>One external iCal or ICS URL<\/li>\n<li>Immediate import when the external calendar is saved<\/li>\n<li>Automatic iCal checks <strong>approximately every 24 hours<\/strong> through WordPress scheduled tasks<\/li>\n<li>Manual iCal updates at any time through <strong>Refresh Calendars<\/strong><\/li>\n<li>One <strong>website iCal export URL<\/strong><\/li>\n<li>Import of external reservations and unavailable dates<\/li>\n<li>Export of confirmed website reservations<\/li>\n<li>WordPress administration dashboard<\/li>\n<li>Monthly availability overview<\/li>\n<li>Gutenberg and Elementor shortcode compatibility<\/li>\n<li><strong>No time-limited trial<\/strong><\/li>\n<li><strong>No mandatory Host Domination cloud subscription<\/strong><\/li>\n<\/ul>\n\n<h4>Interested in Host Domination Booking Engine PRO?<\/h4>\n\n<p>Curious about the <strong>PRO version<\/strong>?<\/p>\n\n<p>Take a look at the live demo website and see for yourself what you can build and manage with <strong>Host Domination Booking Engine PRO<\/strong>.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/hostdomination.com\/demo-booking-engine-pro\/\">Front-end Demo Website<\/a><\/li>\n<\/ul>\n\n<h4>Host Domination Booking Engine PRO<\/h4>\n\n<p><strong>Host Domination Booking Engine PRO<\/strong> extends the booking system with online payments, multiple calendar sources, flexible prices, advanced availability controls and premium add-ons.<\/p>\n\n<p><strong>PRO<\/strong> features include:<\/p>\n\n<ul>\n<li>Three or more accommodation, room or property calendars with compatible expansion options<\/li>\n<li>Multiple-room or property selector on the front end<\/li>\n<li>Up to three external iCal or ICS URLs for each calendar<\/li>\n<li>Automatic synchronization of up to three external iCal or ICS feeds for each accommodation calendar<\/li>\n<li><strong>Unified iCal calendar<\/strong> generation<\/li>\n<li>iCal <strong>calendar merger<\/strong> and <strong>calendar unifier<\/strong><\/li>\n<li>One consolidated website iCal URL generated from multiple connected feeds for the same accommodation calendar<\/li>\n<li>Advanced day, month and yearly pricing<\/li>\n<li>Different prices for specific dates and periods<\/li>\n<li>Advanced date availability controls<\/li>\n<li>Blocking of selected dates or entire months<\/li>\n<li><strong>Stripe online payments<\/strong><\/li>\n<li>Payment status management<\/li>\n<li>Expanded reservation management<\/li>\n<li>Technical support<\/li>\n<\/ul>\n\n<h4>Multiple external calendars with PRO<\/h4>\n\n<p>The <strong>PRO<\/strong> version allows up to three external iCal or ICS feeds to be connected to each accommodation calendar.<\/p>\n\n<p>For example, the same property calendar can import unavailable dates from:<\/p>\n\n<ul>\n<li><strong>Airbnb<\/strong><\/li>\n<li><strong>Booking.com<\/strong><\/li>\n<li><strong>Vrbo<\/strong><\/li>\n<\/ul>\n\n<p>The plugin combines the imported events in the WordPress <strong>availability calendar<\/strong> so that dates already occupied through one connected channel are unavailable on the direct booking website.<\/p>\n\n<h4>Unified iCal calendar and calendar merger<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> <strong>PRO<\/strong> can work as an iCal <strong>calendar unifier<\/strong> for each accommodation calendar.<\/p>\n\n<p>Multiple connected iCal or ICS feeds are imported into one property calendar. The plugin then generates one Website iCal Feed URL containing the combined confirmed and unavailable periods.<\/p>\n\n<p>This unified URL can be imported into another compatible:<\/p>\n\n<ul>\n<li>OTA or booking platform<\/li>\n<li>Property management system<\/li>\n<li>Calendar application<\/li>\n<li>Reservation tool<\/li>\n<li>WordPress website<\/li>\n<li>Availability system that accepts only one iCal URL<\/li>\n<\/ul>\n\n<p>This feature is useful for:<\/p>\n\n<ul>\n<li>Combining several booking-channel calendars<\/li>\n<li>Creating one master availability feed for an accommodation<\/li>\n<li>Merging unavailable dates from different sources<\/li>\n<li>Generating one iCal link from multiple connected feeds<\/li>\n<li>Sharing consolidated availability with another system<\/li>\n<li>Simplifying multi-channel calendar management<\/li>\n<\/ul>\n\n<p>Each accommodation calendar has its own website iCal feed. The unified feed consolidates the sources connected to that specific calendar.<\/p>\n\n<h4>Accommodation calendar capacity<\/h4>\n\n<p><strong>Free<\/strong> includes up to three calendars for rooms, apartments, units or properties. <strong>PRO<\/strong> starts from three calendars and can scale further with compatible calendar expansion options.<\/p>\n\n<p>The following shortcode displays all active calendars and allows the guest to switch between them:<\/p>\n\n<p>[hdbe_booking_calendars]<\/p>\n\n<p>A specific calendar can still be displayed with its generated shortcode:<\/p>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<h4>Advanced pricing<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> <strong>PRO<\/strong> provides additional pricing controls, including:<\/p>\n\n<ul>\n<li>Standard nightly price<\/li>\n<li>Prices for individual dates<\/li>\n<li>Daily pricing rules<\/li>\n<li>Monthly pricing rules<\/li>\n<li>Yearly or seasonal pricing rules<\/li>\n<li>Different prices for selected periods<\/li>\n<\/ul>\n\n<h4>Block dates and months<\/h4>\n\n<p><strong>PRO<\/strong> availability controls can be used to block selected dates or entire months for:<\/p>\n\n<ul>\n<li>Maintenance periods<\/li>\n<li>Owner stays<\/li>\n<li>Seasonal closures<\/li>\n<li>Private events<\/li>\n<li>Temporary unavailability<\/li>\n<li>Dates managed outside the website<\/li>\n<\/ul>\n\n<h4>Stripe online payments<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> <strong>PRO<\/strong> supports online payments through Stripe.<\/p>\n\n<p>A Stripe account is required. Stripe may apply its own transaction fees, account requirements and service terms independently of <strong>Host Domination Booking Engine<\/strong>.<\/p>\n\n<h4>Extend your booking system with powerful Add-ons<\/h4>\n\n<p>The new Add-ons section allows you to extend Host Domination Booking Engine PRO with optional features designed for different accommodation and booking workflows.<\/p>\n\n<p>Available add-ons include:\n* Coupon Codes, Create percentage or fixed-value promotional codes.\n* Service Extras, Add cleaning fees, pet fees, tourist taxes and optional services.\n* Deposit Payments\n* Email automation<\/p>\n\n<h4>Why use Host Domination Booking Engine?<\/h4>\n\n<p><strong>Host Domination Booking Engine<\/strong> combines:<\/p>\n\n<ul>\n<li>Direct booking request system<\/li>\n<li>WordPress reservation dashboard<\/li>\n<li><strong>Availability calendar<\/strong><\/li>\n<li>iCal and ICS calendar synchronization<\/li>\n<li>External calendar import<\/li>\n<li>Website calendar export<\/li>\n<li>Minimum-stay controls<\/li>\n<li>Optional base nightly price<\/li>\n<\/ul>\n\n<p>It's not a channel manager\/PSM.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download, install and activate Host Domination Booking Engine from your WordPress dashboard.<\/li>\n<li>Open the Host Domination Booking Engine menu and create your first booking calendar.<\/li>\n<li>Enter the calendar or accommodation name, maximum number of guests and minimum number of nights.<\/li>\n<li>Optionally, set the base price per night, choose EUR or USD and enable the option to display the price in the public calendar.<\/li>\n<li>To import unavailable dates, paste the iCal or ICS URL provided by Airbnb, Booking.com, Vrbo or another compatible OTA into the External iCal Link field.<\/li>\n<li>Save the calendar. If a valid external iCal URL was entered, the plugin performs the initial import immediately.<\/li>\n<li>In the Created Calendars table, copy the shortcode generated for your calendar. It will use this format:<\/li>\n<\/ol>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<ol>\n<li>Replace <code>123<\/code> only when writing the shortcode manually. The safest option is to copy the exact shortcode generated by the plugin.<\/li>\n<li>Create or edit the WordPress page where you want to display the booking engine and paste the generated shortcode.<\/li>\n<li>Publish or update the page, then verify the calendar, minimum-stay rule, availability and booking request form from the front end.<\/li>\n<li>To export confirmed website reservations, copy the Website iCal Feed URL generated by the plugin and import it into the compatible external booking platform.<\/li>\n<li>The Free plugin checks the connected external calendar once a day. Use the Refresh Calendars button whenever you want to run an immediate manual import. PRO provides automatic calendar synchronization every 30 minutes.<\/li>\n<\/ol>\n\n<h4>Using the shortcode with Gutenberg<\/h4>\n\n<p>Create or edit a WordPress page, add a Shortcode block and paste the exact shortcode generated in the Created Calendars table.<\/p>\n\n<p>Example:<\/p>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<p>Publish or update the page and verify the booking engine from the front end.<\/p>\n\n<h4>Using the shortcode with Elementor<\/h4>\n\n<p>Create or edit a page with Elementor, add the Shortcode widget and paste the exact shortcode generated by Host Domination Booking Engine.<\/p>\n\n<p>Example:<\/p>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<p>Publish or update the page and verify the booking calendar and reservation request form from the front end.<\/p>\n\n<h4>Displaying multiple calendars<\/h4>\n\n<p>When multiple accommodation calendars have been created, you can display all active calendars with a property selector by using:<\/p>\n\n<p>[hdbe_booking_calendars]<\/p>\n\n<p>Use the individual generated shortcode when you want to display only one specific accommodation calendar.<\/p>\n\n<h4>Calendar synchronization<\/h4>\n\n<p>To configure two-way iCal calendar synchronization:<\/p>\n\n<ol>\n<li>Copy the external iCal or ICS URL from Airbnb, Booking.com, Vrbo or another compatible OTA or booking platform.<\/li>\n<li>Paste the URL into the External iCal Link field in Host Domination Booking Engine.<\/li>\n<li>Save the calendar. The first import is performed immediately.<\/li>\n<li>Copy the Website iCal Feed URL generated by the plugin.<\/li>\n<li>Import the generated URL into the external booking platform.<\/li>\n<li>Confirm website booking requests before expecting them to appear in the exported iCal feed.<\/li>\n<li>The Free plugin automatically checks the connected external feed approximately every 24 hours.<\/li>\n<li>Select Refresh Calendars whenever you want to run an immediate manual import.<\/li>\n<\/ol>\n\n<p>The 24-hour interval is approximate because WordPress scheduled tasks are normally triggered by website traffic and can be affected by the hosting environment or server configuration.<\/p>\n\n<p>The external OTA controls how frequently it publishes, reads and updates imported calendars. Some booking platforms refresh iCal feeds automatically at their own intervals, while others may offer or require a manual refresh.<\/p>\n\n<p>New reservations, cancellations, blocked dates or availability changes may therefore not appear immediately on every connected platform.<\/p>\n\n<p>Always check the calendar synchronization settings and refresh policy provided by each connected OTA.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20host%20domination%20booking%20engine%20a%20complete%20wordpress%20reservation%20system%3F\"><h3>Is Host Domination Booking Engine a complete WordPress reservation system?<\/h3><\/dt>\n<dd><p>It provides a direct booking request form, availability calendar, request management, external iCal import and a website iCal export feed.<\/p>\n\n<p>It is not a complete OTA channel manager\/PMS and does not synchronize listing content, messages, reviews or platform pricing through private APIs.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20open%20source%20and%20self-hosted%3F\"><h3>Is the plugin open source and self-hosted?<\/h3><\/dt>\n<dd><p>Yes. Host Domination Booking Engine is licensed under GPLv2 or later and runs directly inside your WordPress website.<\/p>\n\n<p>The Free version does not require a mandatory Host Domination cloud account or subscription and does not expire.<\/p><\/dd>\n<dt id=\"what%20is%20the%20correct%20shortcode%3F\"><h3>What is the correct shortcode?<\/h3><\/dt>\n<dd><p>Each calendar generates a shortcode in this format:<\/p>\n\n<p>[hdbe_booking_calendar id=\"123\"]<\/p>\n\n<p>Copy the exact shortcode from the Created Calendars table because the ID is different for each calendar.<\/p><\/dd>\n<dt id=\"platform%2Fota%20compatibility%20list\"><h3>Platform\/OTA compatibility list<\/h3><\/dt>\n<dd><p><strong>Airbnb<\/strong>, <strong>Booking.com<\/strong>, <strong>Vrbo<\/strong>, Agoda, Expedia, Tripadvisor, Stripe, Google and Apple are trademarks of their respective owners.\n<strong>Host Domination Booking Engine<\/strong> is an independent WordPress plugin and is not affiliated with, endorsed by or sponsored by these companies.\nCompatibility depends on the availability and format of the iCal or ICS feed supplied by each external service.<\/p><\/dd>\n<dt id=\"can%20i%20display%20multiple%20accommodation%20calendars%3F\"><h3>Can I display multiple accommodation calendars?<\/h3><\/dt>\n<dd><p>The Free version supports up to three accommodation calendars. PRO starts from three calendars and can scale further with compatible expansion options. To display all active calendars with a selector, use:<\/p>\n\n<p>[hdbe_booking_calendars]<\/p><\/dd>\n<dt id=\"can%20i%20synchronize%20the%20calendar%20with%20airbnb%3F\"><h3>Can I synchronize the calendar with Airbnb?<\/h3><\/dt>\n<dd><p>Yes. Copy the compatible Airbnb iCal export URL into the External iCal Link field. You can also import the Website iCal Feed URL generated by the plugin into Airbnb.<\/p><\/dd>\n<dt id=\"can%20i%20synchronize%20the%20calendar%20with%20booking.com%3F\"><h3>Can I synchronize the calendar with Booking.com?<\/h3><\/dt>\n<dd><p>Yes, when the property account provides compatible iCal import and export functions.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20vrbo%3F\"><h3>Does the plugin work with Vrbo?<\/h3><\/dt>\n<dd><p>Yes, when a compatible Vrbo iCal or ICS URL is available.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20agoda%20or%20expedia%3F\"><h3>Does it work with Agoda or Expedia?<\/h3><\/dt>\n<dd><p>The plugin can process standard iCal and ICS URLs. Compatibility depends on whether the platform, property account, connectivity provider or connected property management system provides a compatible calendar feed.<\/p><\/dd>\n<dt id=\"is%20this%20a%20direct%20api%20integration%20with%20booking%20platforms%3F\"><h3>Is this a direct API integration with booking platforms?<\/h3><\/dt>\n<dd><p>No. The plugin uses standard iCal and ICS calendar feeds and does not connect through the private APIs of Airbnb, Booking.com, Vrbo, Agoda or Expedia.<\/p><\/dd>\n<dt id=\"is%20host%20domination%20booking%20engine%20a%20channel%20manager%2Fpms%3F\"><h3>Is Host Domination Booking Engine a channel manager\/PMS?<\/h3><\/dt>\n<dd><p>No. It is a WordPress booking engine and reservation request system with iCal availability synchronization.<\/p><\/dd>\n<dt id=\"does%20calendar%20synchronization%20happen%20automatically%3F\"><h3>Does calendar synchronization happen automatically?<\/h3><\/dt>\n<dd><p>Yes. When a valid external iCal URL is saved, the plugin performs the initial import immediately. The Free version then checks the connected feed once a day through WordPress scheduled tasks, while PRO provides automatic calendar synchronization every 30 minutes.<\/p>\n\n<p>The interval is approximate because WordPress cron execution normally depends on website traffic, hosting conditions and server configuration.<\/p>\n\n<p>You can also click Refresh Calendars at any time to run an immediate manual import.<\/p>\n\n<p>The connected OTA independently controls how frequently it publishes calendar changes and reads the Website iCal Feed URL generated by the plugin. Its refresh may be automatic, periodic or manually triggered depending on the platform.<\/p><\/dd>\n<dt id=\"does%20synchronization%20happen%20in%20real%20time%3F\"><h3>Does synchronization happen in real time?<\/h3><\/dt>\n<dd><p>No. iCal synchronization is not a real-time system. Updates depend on WordPress cron, website traffic, server configuration and the refresh policy of each external platform.<\/p><\/dd>\n<dt id=\"can%20ical%20synchronization%20prevent%20double%20bookings%3F\"><h3>Can iCal synchronization prevent double bookings?<\/h3><\/dt>\n<dd><p>It can reduce the risk by importing unavailable dates and exporting confirmed website reservations. It cannot guarantee instant synchronization or completely eliminate overlapping reservations.<\/p><\/dd>\n<dt id=\"how%20many%20external%20ical%20calendars%20can%20i%20connect%3F\"><h3>How many external iCal calendars can I connect?<\/h3><\/dt>\n<dd><p>The Free version supports one external iCal or ICS URL per accommodation calendar.<\/p>\n\n<p>Host Domination Booking Engine PRO supports up to three external iCal or ICS URLs for each accommodation calendar.<\/p><\/dd>\n<dt id=\"can%20i%20combine%20multiple%20ical%20calendars%20into%20one%20link%3F\"><h3>Can I combine multiple iCal calendars into one link?<\/h3><\/dt>\n<dd><p>Yes, with Host Domination Booking Engine PRO.<\/p>\n\n<p>Multiple feeds connected to the same accommodation calendar are imported and consolidated into one Website iCal Feed URL containing the combined confirmed and unavailable periods.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20unified%20ical%20link%20in%20another%20system%3F\"><h3>Can I use the unified iCal link in another system?<\/h3><\/dt>\n<dd><p>Yes, provided that the destination OTA, calendar application, property management system or reservation tool supports standard iCal or ICS imports.<\/p><\/dd>\n<dt id=\"does%20a%20pending%20website%20request%20block%20the%20dates%3F\"><h3>Does a pending website request block the dates?<\/h3><\/dt>\n<dd><p>No. A new website request remains pending until an administrator confirms it. Confirmed requests are included in the unavailable dates and in the website iCal export feed.<\/p><\/dd>\n<dt id=\"can%20i%20set%20a%20minimum%20number%20of%20nights%3F\"><h3>Can I set a minimum number of nights?<\/h3><\/dt>\n<dd><p>Yes. The minimum stay can be configured for the calendar and is validated in both the front-end form and the server-side booking request process.<\/p><\/dd>\n<dt id=\"can%20i%20display%20a%20nightly%20price%20in%20the%20free%20version%3F\"><h3>Can I display a nightly price in the Free version?<\/h3><\/dt>\n<dd><p>Yes. You can configure an optional base price per night and display it on available dates in the front-end calendar.<\/p><\/dd>\n<dt id=\"can%20i%20set%20different%20prices%20for%20individual%20dates%3F\"><h3>Can I set different prices for individual dates?<\/h3><\/dt>\n<dd><p>Advanced day, month and yearly pricing features are available with Host Domination Booking Engine PRO.<\/p><\/dd>\n<dt id=\"can%20i%20block%20specific%20dates%20or%20complete%20months%3F\"><h3>Can I block specific dates or complete months?<\/h3><\/dt>\n<dd><p>Advanced date and month blocking is available with Host Domination Booking Engine PRO.<\/p><\/dd>\n<dt id=\"can%20guests%20pay%20online%3F\"><h3>Can guests pay online?<\/h3><\/dt>\n<dd><p>Stripe online payments are available with Host Domination Booking Engine PRO.<\/p><\/dd>\n<dt id=\"does%20stripe%20charge%20transaction%20fees%3F\"><h3>Does Stripe charge transaction fees?<\/h3><\/dt>\n<dd><p>Stripe may apply its own processing fees and service terms. These are independent of Host Domination Booking Engine.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20plugin%20with%20elementor%3F\"><h3>Can I use the plugin with Elementor?<\/h3><\/dt>\n<dd><p>Yes. Add an Elementor Shortcode widget and paste the exact shortcode generated for the calendar.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20plugin%20with%20gutenberg%3F\"><h3>Can I use the plugin with Gutenberg?<\/h3><\/dt>\n<dd><p>Yes. Add a WordPress Shortcode block and paste the exact shortcode generated for the calendar.<\/p><\/dd>\n<dt id=\"does%20the%20free%20version%20expire%3F\"><h3>Does the Free version expire?<\/h3><\/dt>\n<dd><p>No. The Free version is not a time-limited trial.<\/p><\/dd>\n<dt id=\"does%20the%20booking%20form%20require%20privacy%20consent%3F\"><h3>Does the booking form require privacy consent?<\/h3><\/dt>\n<dd><p>Yes. The website administrator must configure a valid Privacy Policy URL in Calendar Settings. Guests must confirm that they have read and accept the linked Privacy Policy before a FREE or PRO booking request can be submitted.<\/p>\n\n<p>The administrator can also enter an optional Terms and Conditions URL. When it is configured, the same required consent confirms acceptance of both the linked Privacy Policy and the linked Terms and Conditions.<\/p>\n\n<p>Personal data is stored in the website database. The website owner is responsible for providing an appropriate Privacy Policy and complying with applicable privacy and data-protection requirements, including the GDPR where applicable.<\/p><\/dd>\n<dt id=\"can%20booking%20requests%20also%20be%20received%20through%20whatsapp%3F\"><h3>Can booking requests also be received through WhatsApp?<\/h3><\/dt>\n<dd><p>Yes. In Calendar Settings, Email is always enabled and mandatory. You can optionally enable WhatsApp for the selected calendar and enter the destination number in international format, including the country code.<\/p>\n\n<p>When the guest submits a valid request, the plugin first saves the request in WordPress and sends the normal notification email. It then opens WhatsApp with the property, dates, guest counts and contact details already filled in. The guest must review the message and tap Send. This workflow uses a standard WhatsApp link and does not require the WhatsApp Business API.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.19<\/h4>\n\n<ul>\n<li>New Calendar Tab Layout<\/li>\n<li>New Latest Bookings\/Requests Tab Layout<\/li>\n<\/ul>\n\n<h4>1.4.18<\/h4>\n\n<ul>\n<li>Increased spacing and typography in the final setup-complete screen for better readability while keeping the full panel visible on standard desktop viewports.<\/li>\n<li>Limited automatic scaling to genuinely short desktop screens only.<\/li>\n<\/ul>\n\n<h4>1.4.17<\/h4>\n\n<ul>\n<li>Compacted the setup completion screen so the final Dashboard and Edit calendar actions remain visible on standard desktop viewports.<\/li>\n<li>Removed the inner scrollbar from the desktop setup-complete dialog and tightened spacing without changing functionality.<\/li>\n<li>Added responsive scaling only for shorter desktop screens to keep the full completion panel accessible.<\/li>\n<\/ul>\n\n<h4>1.4.16<\/h4>\n\n<ul>\n<li>Removed the remaining iCal feed row bottom spacing that could cause visual misalignment.<\/li>\n<li>Expanded Calendar-tab cards and calendar setup containers to the full available admin width.<\/li>\n<li>Kept the Calendar settings, Created calendars and related Calendar-tab boxes aligned consistently.<\/li>\n<\/ul>\n\n<h4>1.4.15<\/h4>\n\n<ul>\n<li>Fixed visual alignment issues in the Calendar settings panel.<\/li>\n<li>Improved currency selector rendering in the Price per night field.<\/li>\n<li>Improved alignment of External iCal provider\/link fields for a cleaner premium layout.<\/li>\n<\/ul>\n\n<h4>1.4.14<\/h4>\n\n<ul>\n<li>Added the generated website iCal feed to the setup completion screen with a one-click Copy action for OTA synchronization.<\/li>\n<li>Refined booking contact cards with the requested light blue Email background and light green Phone background.<\/li>\n<\/ul>\n\n<h4>1.4.13<\/h4>\n\n<ul>\n<li>Removed the calendar usage limit badge from the Dashboard while keeping calendar capacity controls in the Calendar section.<\/li>\n<li>Improved mobile action buttons in Latest requests\/bookings with automatic 2-column, 3-column and 2x2 responsive layouts.<\/li>\n<li>Redesigned the per-calendar settings form with a cleaner premium two-panel layout, clearer field grouping, refined inputs and a more structured save area without changing calendar functionality.<\/li>\n<\/ul>\n\n<h4>1.4.12<\/h4>\n\n<ul>\n<li>Internationalized the Booking Engine administration area so Dashboard, Bookings, Calendar settings, setup wizard and PRO screens can be translated through standard WordPress language packs.<\/li>\n<li>Added translatable admin booking statuses, contact actions, confirmation messages, calendar controls, synchronization labels and setup guidance.<\/li>\n<li>Localized administration JavaScript messages used for calendar ordering, setup validation and shortcode copy feedback.<\/li>\n<li>Internationalized the built-in Add-ons catalog interface and its local action\/status labels while leaving remote product content unchanged.<\/li>\n<\/ul>\n\n<h4>1.4.11<\/h4>\n\n<ul>\n<li>Highlighted confirmed and paid booking cards with a soft green background and a stronger green 2px border for faster visual recognition.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Redesigned the Bookings and Latest requests\/bookings cards for faster scanning and clearer booking information.<\/li>\n<li>Added quick guest contact actions for Send email, Call and WhatsApp; WhatsApp now opens the guest number directly without a pre-filled message.<\/li>\n<li>Added dedicated Stay, Guests, Nights and Received summary fields to each booking card.<\/li>\n<li>Kept Email and Phone side by side on desktop, with subtle light-blue and light-green contact panels for easier visual recognition.<\/li>\n<li>Refined the customer Note panel to match the visual language of the other booking information fields.<\/li>\n<li>Expanded frontend internationalization so key booking-form labels, validation messages and guest-facing strings use the WordPress translation system.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Made the booking form frontend fully compatible with WordPress language packs by internationalizing guest-facing labels, validation messages, privacy text and contact fields.<\/li>\n<li><p>Updated frontend JavaScript to receive translated strings and locale-aware currency formatting from WordPress.<\/p><\/li>\n<li><p>New Dashboard with a cleaner, more professional layout, KPI cards, Upcoming stays, Properties and Calendars, Direct booking activity, Latest requests\/bookings and a full Availability calendar.<\/p><\/li>\n<li>Added customizable Dashboard sections that can be reordered to better match each user's preferred workflow.<\/li>\n<li>Introduced a new guided first-calendar setup with property details, guest limits, Minimum nights, Children settings, pricing, external iCal synchronization, WhatsApp requests and legal pages.<\/li>\n<li>Added a redesigned setup completion screen with shortcode copy, optional one-click booking page creation and a clearer Free vs PRO comparison.<\/li>\n<li>Added a persistent Support &amp; Tickets action across the Booking Engine administration area.<\/li>\n<li>Increased the Free version capacity to 3 accommodation calendars and updated all related calendar-limit indicators and upgrade messaging.<\/li>\n<li>Added one-click Create\/View booking page actions directly to each calendar, automatically inserting the correct booking shortcode.<\/li>\n<li>Improved the Properties and Calendars and Upcoming stays dashboard panels with faster access to calendars, bookings and synchronization actions.<\/li>\n<li>Added improved external iCal setup, including provider selection and iCal URL configuration in a more compact layout.<\/li>\n<li>Improved WhatsApp booking-request configuration and styling, including guided setup support and clearer visual controls.<\/li>\n<li>Set \u201cMaximum age for Children category\u201d to 10 by default for both standard calendar creation and guided setup.<\/li>\n<li>Added multiple administration UI refinements, responsive improvements, cache-busting for updated assets and general visual polish throughout the plugin.<\/li>\n<\/ul>\n\n<h4>1.3.62<\/h4>\n\n<ul>\n<li>Adds support for promotional coupon codes supplied by the Host Domination Add-ons catalog.<\/li>\n<li>Shows the optional coupon directly below each add-on short description with a one-click Copy button.<\/li>\n<li>Coupon UI is rendered only when a code is configured on the Monitor.<\/li>\n<\/ul>\n\n<h4>1.3.61<\/h4>\n\n<ul>\n<li>Removed the optional Calendar image feature and its frontend thumbnail to keep calendar settings simpler and more reliable.<\/li>\n<li>Renamed Maximum child age to \"Maximum age for Children category\" for clearer configuration.<\/li>\n<li>Matched the Maximum guests field width to the Children category age field for a cleaner settings layout.<\/li>\n<\/ul>\n\n<h4>1.3.8<\/h4>\n\n<ul>\n<li>Added a per-calendar Booking form layout selector with Automatic, Fixed two columns and Single column modes.<\/li>\n<li>Automatic keeps the responsive two-column desktop \/ single-column mobile behavior.<\/li>\n<li>Fixed two columns keeps the availability calendar on the left and booking fields on the right at every screen size.<\/li>\n<li>Single column places the availability calendar first and booking fields below at every screen size.<\/li>\n<li>Multi-calendar booking forms always use the Automatic responsive layout, regardless of individual calendar preferences.<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>Added an optional image to each calendar\/property, selectable from the WordPress Media Library.<\/li>\n<li>Added a small calendar\/property thumbnail to the left of the accommodation name in the public booking header when an image is configured.<\/li>\n<li>Kept the booking header unchanged when no calendar image is selected.<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>Added drag-and-drop calendar ordering in the Calendar tab. The chosen order is saved automatically and used by the public multi-calendar\/property selector.<\/li>\n<li>Fixed order persistence by storing the administrator-defined calendar sequence as the canonical frontend order and mirroring it to the database sort_order field.<\/li>\n<li>Improved drag-and-drop saving with WordPress jQuery UI Sortable so the order is persisted immediately after a row is moved.<\/li>\n<li>Added a stable calendar sort order so frontend calendar lists no longer depend on alphabetical or database-return order.<\/li>\n<li>On mobile, the property\/calendar selector is now shown above the availability calendar, while the desktop layout remains unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Displayed Adults and Children side by side in two equal columns.<\/li>\n<li>Shortened the child selector label to the clearer \u201cChildren (0-X)\u201d format based on the configured maximum child age.<\/li>\n<li>Removed the duplicated Children ages line from the visible Note box in Dashboard and Bookings while keeping child ages stored and available to integrations.<\/li>\n<li>Standardized booking stay dates in Dashboard and Bookings to the day \/ month \/ year format.<\/li>\n<li>Fixed the mobile Adults\/Children selector alignment by enforcing identical field heights.<\/li>\n<li>Added dynamic age selectors for every child selected in the public booking form.<\/li>\n<li>Limited each child age selector from 0 to the per-calendar Maximum child age value.<\/li>\n<li>Added server-side child-age validation and structured child_ages storage for bookings.<\/li>\n<li>Added child ages to booking administration summaries, request notes, email notifications and WhatsApp request details.<\/li>\n<li>Added PHP helpers\/hooks and the hdbe:child-ages-changed JavaScript event so PRO and add-ons can reuse child ages in pricing and eligibility rules.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Moved the PRO additional-guest-price notice outside the Adults\/Children columns so it displays on its own full-width row.<\/li>\n<li>Improved responsive layout handling for the updated guest and date controls.<\/li>\n<li>Restored the native Total row in the base booking form when prices are enabled, including installations using PRO without any add-ons.<\/li>\n<li>Fixed the base front-end total calculation so PRO Additional Guest Pricing is included even when no pricing-summary add-on is installed.<\/li>\n<li>Kept the Privacy Policy and Terms and Conditions consent positioning unchanged.<\/li>\n<li>Updated the Unlock PRO demo buttons to use the dedicated PRO demo page.<\/li>\n<li>Renamed the Unlock PRO demo call-to-action to \u201cWatch PRO demo\u201d.<\/li>\n<li>Redesigned the public date selector as a clean two-column Check-in \/ Check-out row without adding an extra outer box.<\/li>\n<li>Centered the selected dates and changed the public display format to day - month - year.<\/li>\n<li>Kept the availability calendar outside the date-selector grid so it always uses the full booking-form width.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Kept the required Privacy Policy and Terms and Conditions consent immediately above the final Pay or Send Request button.<\/li>\n<li>Prevented PRO and add-on summaries from appearing between the legal consent and the submission button.<\/li>\n<li>Preserved the correct consent position when extensions update the booking form dynamically.<\/li>\n<li>Added dedicated Extension Pack cards to the Add-ons catalog.<\/li>\n<li>Added Extension Pack and Discount labels with previews of every included product.<\/li>\n<li>Ordered Featured products first, Extension Packs second and individual add-ons last.<\/li>\n<li>Added cumulative pack status when every included product is unlocked.<\/li>\n<li>Preserved all existing PRO and individual extension licenses.<\/li>\n<li>Clarified that WhatsApp request opening is available only in Manual Booking Request mode and not in online payment mode.<\/li>\n<li>Explicitly limited the front-end WhatsApp flow to the manual booking request handler.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added per-calendar Receive requests settings.<\/li>\n<li>Kept Email checked and mandatory for every booking request.<\/li>\n<li>Added an optional WhatsApp channel with a validated international destination number.<\/li>\n<li>Opened WhatsApp after a successful request with property, dates, guest and contact details already filled in.<\/li>\n<li>Added an Open WhatsApp fallback button when the browser blocks the automatic window.<\/li>\n<li>Preserved the normal WordPress request record and email notification before opening WhatsApp.<\/li>\n<\/ul>\n\n<h4>1.2.9<\/h4>\n\n<ul>\n<li>Rebuilt the Unlock PRO feature cards with large centered icons, vertical content and distinct premium color treatments.<\/li>\n<li>Updated the Free\/PRO synchronization comparison and retained the Free manual refresh control.<\/li>\n<li>Renamed the promotional navigation item to Unlock PRO and placed it after Add-ons.<\/li>\n<li>Updated the PRO landing page, video and Free demo links.<\/li>\n<li>Increased the plugin version to refresh cached administration styles automatically.<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Added an optional Terms and Conditions URL next to the required Privacy Policy setting.<\/li>\n<li>Updated the public booking consent to link both legal documents when Terms and Conditions are configured.<\/li>\n<li>Kept the legal consent immediately above the final request or payment button, including PRO payment mode.<\/li>\n<li>Redesigned the Unlock PRO page with a video preview, PRO feature cards, Free\/PRO comparison, add-on link and sticky demo\/purchase actions.<\/li>\n<li>Added a starred Unlock PRO item after Add-ons in both the WordPress submenu and plugin tab navigation.<\/li>\n<li>Changed Free automatic iCal imports to approximately once every 24 hours while retaining immediate manual refreshes and automatic PRO synchronization approximately every 30 minutes.<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Added a per-calendar Maximum child age setting with an optional \"Children up to X years old\" selector in the booking form.<\/li>\n<li>Added separate adult and child counts to booking administration and request emails.<\/li>\n<li>Added client-side and server-side maximum guest validation for adults and children.<\/li>\n<li>Added the hdbe_after_guest_fields action for add-on field compatibility.<\/li>\n<li>Fixed booking request insertion error handling by checking the actual database insert result.<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Added support for hiding the latest and installed version labels on selected add-on cards while keeping update detection active.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Added a gold premium style to featured\/pinned add-on cards while leaving standard add-on cards unchanged.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Prevented Add-ons catalog entries from overriding the Free plugin update data.<\/li>\n<li>Added a one-time plugin information and update cache reset after upgrading.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added customer booking notes to the latest requests\/bookings dashboard.<\/li>\n<li>Added customer booking notes to the full Bookings tab.<\/li>\n<li>Added a clear note box while keeping internal phone data separate.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Added canceled and expired Stripe payment attempts to the latest requests\/bookings dashboard.<\/li>\n<li>Added clear status labels for pending requests, pending payments, confirmed bookings, canceled payments and expired checkouts.<\/li>\n<li>Prevented temporary Stripe payment attempts from showing manual Confirm and Reject actions.<\/li>\n<li>Added all payment statuses to the Website Requests &amp; Bookings list.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Improved featured add-on cards with a stronger highlighted border.<\/li>\n<li>Added a green highlighted border when Host Domination Booking Engine PRO is purchased and activated.<\/li>\n<li>Removed the unwanted WordPress installed-status icon from add-on card descriptions.<\/li>\n<li>Added AJAX submission for Send Request mode, avoiding a full-page refresh.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New Add-on Section<\/li>\n<li>Added an inline English confirmation message after a successful booking request.<\/li>\n<li>Kept the existing redirect-and-scroll confirmation as a fallback when JavaScript is unavailable.<\/li>\n<li>Moved add-on compatibility requirements directly above the Get it button.<\/li>\n<li>Hidden compatibility requirements on featured\/pinned catalog items.<\/li>\n<li>Added add-on activation and enhancement to the PRO feature list.<\/li>\n<\/ul>\n\n<h4>1.1.30<\/h4>\n\n<ul>\n<li>Changed the Privacy Policy consent wording from \u201cunderstood\u201d to \u201caccept\u201d.<\/li>\n<\/ul>\n\n<h4>1.1.29<\/h4>\n\n<ul>\n<li>Removed the PRO requirement notice from the Free add-ons catalog.<\/li>\n<\/ul>\n\n<h4>1.1.26<\/h4>\n\n<ul>\n<li>Added a required Privacy Policy URL setting for all booking forms.<\/li>\n<li>Added mandatory Privacy Policy acknowledgement for FREE and PRO booking submissions, including PRO payment flows.<\/li>\n<li>Prevented booking requests when the Privacy Policy URL is missing or the required acknowledgement has not been provided.<\/li>\n<li>Added a synchronization liability notice for delays, unavailable feeds and third-party calendar refresh times.<\/li>\n<li>Returned visitors directly to the booking confirmation notice after form submission.<\/li>\n<\/ul>","raw_excerpt":"Free Booking Engine for Vacation Rentals, B&amp;Bs and Hotels with Direct Bookings, Automatic iCal Calendar Sync with OTAs, payments, coupon and more.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324016"}],"author":[{"embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ilithio"}],"wp:attachment":[{"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324016"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324016"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324016"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324016"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324016"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}