PluginProbe
Booking Calendar / 11.9
Booking Calendar v11.9
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
← All changes | includes/ui_modal__shortcodes/sh_tpl_booking.php +167 -17 11.5 → 11.9 View file →
@@ -45,23 +45,21 @@
45 45 <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_bookingcalendar', 'bookingcalendar' );" href="javascript:void(0);">
46 46 <span><?php esc_html_e( 'Availability Calendar / Days Not Selectable', 'booking' ); ?></span>
47 47 </a>
48 48 </div>
49 - <?php if ( wpbc_is_11_5_features_enabled() ) : ?>
50 - <div id="wpbc_shortcode_config__nav_tab__booking_appointment" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
51 - <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_booking_appointment', 'booking_appointment' );" href="javascript:void(0);">
52 - <span><?php esc_html_e( 'Appointment Booking', 'booking' ); ?></span>
53 - </a>
54 - </div>
55 - <div id="wpbc_shortcode_config__nav_tab__booking_resource_selector" class="wpbc_settings_navigation_item wpbc_navigation_sub_item">
56 - <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_booking_resource_selector', 'booking_resource_selector' );" href="javascript:void(0);">
57 - <span><?php esc_html_e( 'Booking Resource Selector', 'booking' ); ?></span>
58 - </a>
59 - </div>
60 - <?php endif; ?>
61 - <div id="wpbc_shortcode_config__nav_tab__bookingselect" class="wpbc_settings_navigation_item wpbc_dismiss__booking_select <?php echo ( ! class_exists( 'wpdev_bk_personal' ) ) ? ' wpbc_settings_navigation_item_disabled ' : ''; ?>">
49 + <div id="wpbc_shortcode_config__nav_tab__booking_appointment" class="wpbc_settings_navigation_item wpbc_navigation_top_border">
50 + <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_booking_appointment', 'booking_appointment' );" href="javascript:void(0);">
51 + <span><?php esc_html_e( 'Appointment Booking', 'booking' ); ?></span>
52 + </a>
53 + </div>
54 + <div id="wpbc_shortcode_config__nav_tab__booking_resource_selector" class="wpbc_settings_navigation_item">
55 + <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_booking_resource_selector', 'booking_resource_selector' );" href="javascript:void(0);">
56 + <span><?php esc_html_e( 'Booking Resource Selector', 'booking' ); ?></span>
57 + </a>
58 + </div>
59 + <div id="wpbc_shortcode_config__nav_tab__bookingselect" class="wpbc_settings_navigation_item wpbc_navigation_sub_item wpbc_dismiss__booking_select <?php echo ( ! class_exists( 'wpdev_bk_personal' ) ) ? ' wpbc_settings_navigation_item_disabled ' : ''; ?>">
62 60 <a onclick="javascript:wpbc_shortcode_config_click_show_section(this,'#wpbc_sc_container__shortcode_bookingselect', 'bookingselect' );" href="javascript:void(0);">
63 - <span><?php esc_html_e( 'Resource Selection', 'booking' ); ?></span><?php
61 + <span><?php esc_html_e( 'Booking Resources Dropdown', 'booking' ); ?></span><?php
64 62 echo ( ! class_exists( 'wpdev_bk_personal' ) ) ? '<span class="wpbc_pro_label">Pro</span>' : '';
65 63 ?>
66 64 </a>
67 65 </div>
@@ -1016,9 +1014,9 @@
1016 1014 <?php
1017 1015 /* translators: 1: ... */
1018 1016 echo wp_kses_post( sprintf( __( 'Enable %1$sAggregate only bookings%2$s option to aggregate only bookings without including unavailable dates from the %3$s page.', 'booking' )
1019 1017 , '<strong>', '</strong>'
1020 - , '<strong>Booking > Availability > Days Availability</strong>'
1018 + , '<strong>Booking > Availability > Block Dates</strong>'
1021 1019 ) );
1022 1020 ?>
1023 1021
1024 1022 <?php
@@ -2120,9 +2118,9 @@
2120 2118 */
2121 2119 function wpbc_shortcode_config__booking_appointment_parameters() {
2122 2120 $month_options = array_combine( range( 1, 24 ), range( 1, 24 ) );
2123 2121
2124 - return array(
2122 + $parameters = array(
2125 2123 'service_id' => array(
2126 2124 'section' => 'general', 'title' => __( 'Preselected Service', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2127 2125 'description' => __( 'Preselect and restrict the flow to one positive Service ID.', 'booking' ), 'attr' => array( 'min' => 1, 'step' => 1 ),
2128 2126 ),
@@ -2143,8 +2141,61 @@
2143 2141 'auto_select_provider' => array(
2144 2142 'section' => 'general', 'title' => __( 'Auto-select the only Provider', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => false,
2145 2143 'description' => __( 'Skip Provider selection only when exactly one compatible Provider exists.', 'booking' ),
2146 2144 ),
2145 + 'catalog_layout' => array(
2146 + 'section' => 'catalog', 'title' => __( 'Catalog layout', 'booking' ), 'type' => 'select', 'value_type' => 'text', 'default' => 'grid',
2147 + 'options' => array( 'grid' => __( 'Responsive grid', 'booking' ), 'list' => __( 'List', 'booking' ) ),
2148 + 'description' => __( 'Show Services and Providers as responsive cards or compact list items. Selecting List applies recommended display settings that you can adjust afterward.', 'booking' ),
2149 + ),
2150 + 'show_resource_filters' => array(
2151 + 'section' => 'catalog', 'title' => __( 'Show catalog search', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => false,
2152 + 'description' => __( 'Let visitors search the permitted Services or compatible Providers on the active selection screen.', 'booking' ),
2153 + ),
2154 + 'show_resource_image' => array(
2155 + 'section' => 'catalog', 'title' => __( 'Show images', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2156 + 'description' => __( 'Show configured Service pictures and Provider photos or generated initials.', 'booking' ),
2157 + ),
2158 + 'show_resource_title' => array(
2159 + 'section' => 'catalog', 'title' => __( 'Show titles', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2160 + 'description' => __( 'Show Service and Provider titles. Each title remains available to assistive technology when hidden.', 'booking' ),
2161 + ),
2162 + 'show_resource_description' => array(
2163 + 'section' => 'catalog', 'title' => __( 'Show Service descriptions', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2164 + 'description' => __( 'Show the public Service description when one is configured.', 'booking' ),
2165 + ),
2166 + 'catalog_item_width' => array(
2167 + 'section' => 'catalog', 'title' => __( 'Catalog item width', 'booking' ), 'value_type' => 'css_width', 'default' => '',
2168 + 'placeholder' => __( 'Automatic, 360px, or 50%', 'booking' ),
2169 + 'description' => __( 'Optional explicit card or list-row width. Use px, %, em, rem, or vw. An items-per-row setting takes precedence for its active layout.', 'booking' ),
2170 + ),
2171 + 'catalog_item_max_width' => array(
2172 + 'section' => 'catalog', 'title' => __( 'Maximum catalog item width', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2173 + 'placeholder' => __( 'Automatic', 'booking' ), 'attr' => array( 'min' => 280, 'max' => 1200, 'step' => 1 ),
2174 + 'description' => __( 'Optional maximum card or list-row width in pixels, from 280 through 1200. Leave empty to fill the available layout width.', 'booking' ),
2175 + ),
2176 + 'catalog_grid_items_per_row' => array(
2177 + 'section' => 'catalog', 'title' => __( 'Grid items per row', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2178 + 'placeholder' => __( 'Automatic', 'booking' ), 'attr' => array( 'min' => 1, 'max' => 12, 'step' => 1 ),
2179 + 'description' => __( 'Optional exact number of equal-width items per row in the grid layout, from 1 through 12.', 'booking' ),
2180 + ),
2181 + 'catalog_list_items_per_row' => array(
2182 + 'section' => 'catalog', 'title' => __( 'List items per row', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2183 + 'placeholder' => __( 'One item per row', 'booking' ), 'attr' => array( 'min' => 1, 'max' => 12, 'step' => 1 ),
2184 + 'description' => __( 'Optional number of equal-width items per row in the list layout, from 1 through 12. Empty keeps one item per row.', 'booking' ),
2185 + ),
2186 + 'show_resource_hierarchy' => array(
2187 + 'section' => 'catalog', 'title' => __( 'Show Service relationship', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2188 + 'description' => __( 'Explain that each listed Provider offers the selected Service.', 'booking' ),
2189 + ),
2190 + 'show_availability' => array(
2191 + 'section' => 'catalog', 'title' => __( 'Show availability summary', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2192 + 'description' => __( 'Show when a Provider has no weekly availability configured. Exact availability remains confirmed after dates are selected.', 'booking' ),
2193 + ),
2194 + 'show_starting_price' => array(
2195 + 'section' => 'catalog', 'title' => __( 'Show starting price', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2196 + 'description' => __( 'Show the effective Service or Provider price when pricing is available in this edition.', 'booking' ),
2197 + ),
2147 2198 'nummonths' => array(
2148 2199 'section' => 'calendar', 'title' => __( 'Visible months', 'booking' ), 'type' => 'select', 'value_type' => 'positive_integer', 'default' => 1, 'options' => $month_options,
2149 2200 'description' => __( 'Number of calendar months from 1 through 24.', 'booking' ),
2150 2201 ),
@@ -2217,8 +2268,27 @@
2217 2268 'section' => 'text', 'title' => __( 'Provider screen description', 'booking' ), 'default' => __( 'Select who will provide this Service.', 'booking' ),
2218 2269 'description' => __( 'Description on the Provider selection screen. Clear it to hide the description.', 'booking' ),
2219 2270 ),
2220 2271 );
2272 +
2273 + if ( ! function_exists( 'wpbc_is_11_6_features_enabled' ) || ! wpbc_is_11_6_features_enabled() ) {
2274 + unset(
2275 + $parameters['catalog_layout'],
2276 + $parameters['show_resource_filters'],
2277 + $parameters['show_resource_image'],
2278 + $parameters['show_resource_title'],
2279 + $parameters['show_resource_description'],
2280 + $parameters['catalog_item_width'],
2281 + $parameters['catalog_item_max_width'],
2282 + $parameters['catalog_grid_items_per_row'],
2283 + $parameters['catalog_list_items_per_row'],
2284 + $parameters['show_resource_hierarchy'],
2285 + $parameters['show_availability'],
2286 + $parameters['show_starting_price']
2287 + );
2288 + }
2289 +
2290 + return $parameters;
2221 2291 }
2222 2292
2223 2293 /**
2224 2294 * Get every accepted public Appointment shortcode parameter for the reference tab.
@@ -2249,13 +2319,17 @@
2249 2319 function wpbc_shortcode_config__content__booking_appointment() {
2250 2320 $shortcode_name = 'booking_appointment';
2251 2321 $tabs = array(
2252 2322 'general' => array( 'title' => __( 'Service & Provider', 'booking' ), 'icon' => 'wpbc-bi-person-check', 'default' => true ),
2323 + 'catalog' => array( 'title' => __( 'Catalog', 'booking' ), 'icon' => 'wpbc-bi-grid', 'default' => false ),
2253 2324 'calendar' => array( 'title' => __( 'Calendar & Form', 'booking' ), 'icon' => 'wpbc-bi-calendar3', 'default' => false ),
2254 2325 'progress' => array( 'title' => __( 'Progress', 'booking' ), 'icon' => 'wpbc-bi-list-ol', 'default' => false ),
2255 2326 'text' => array( 'title' => __( 'Screen Text', 'booking' ), 'icon' => 'wpbc-bi-card-text', 'default' => false ),
2256 2327 'reference' => array( 'title' => __( 'Parameters', 'booking' ), 'icon' => 'wpbc-bi-code-square', 'default' => false ),
2257 2328 );
2329 + if ( ! function_exists( 'wpbc_is_11_6_features_enabled' ) || ! wpbc_is_11_6_features_enabled() ) {
2330 + unset( $tabs['catalog'] );
2331 + }
2258 2332 $parameters = wpbc_shortcode_config__booking_appointment_parameters();
2259 2333 ?>
2260 2334 <div id="wpbc_sc_container__shortcode_<?php echo esc_attr( $shortcode_name ); ?>" class="wpbc_sc_container__shortcode wpbc_sc_container__shortcode_<?php echo esc_attr( $shortcode_name ); ?>">
2261 2335 <?php wpbc_shortcode_config__workflow_tabs( $shortcode_name, $tabs ); ?>
@@ -2295,9 +2369,9 @@
2295 2369 */
2296 2370 function wpbc_shortcode_config__booking_resource_selector_parameters() {
2297 2371 $month_options = array_combine( range( 1, 24 ), range( 1, 24 ) );
2298 2372
2299 - return array(
2373 + $parameters = array(
2300 2374 'resource_id' => array(
2301 2375 'section' => 'general', 'title' => __( 'Preselected Booking Resource', 'booking' ), 'type' => 'select', 'value_type' => 'positive_integer', 'default' => '',
2302 2376 'options' => wpbc_shortcode_config__workflow_resource_options( true, __( 'No Booking Resource preselected', 'booking' ) ),
2303 2377 'description' => __( 'Check one Booking Resource by default without skipping the selection stage.', 'booking' ),
@@ -2315,8 +2389,61 @@
2315 2389 'auto_select_resource' => array(
2316 2390 'section' => 'general', 'title' => __( 'Auto-select Booking Resource', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => false,
2317 2391 'description' => __( 'Open the preselected Resource immediately, or skip selection when exactly one Resource is available.', 'booking' ),
2318 2392 ),
2393 + 'catalog_layout' => array(
2394 + 'section' => 'catalog', 'title' => __( 'Resource layout', 'booking' ), 'type' => 'select', 'value_type' => 'text', 'default' => 'grid',
2395 + 'options' => array( 'grid' => __( 'Responsive grid', 'booking' ), 'list' => __( 'List', 'booking' ) ),
2396 + 'description' => __( 'Show Booking Resources as responsive cards or compact list items. Selecting List applies recommended display settings that you can adjust afterward.', 'booking' ),
2397 + ),
2398 + 'show_resource_filters' => array(
2399 + 'section' => 'catalog', 'title' => __( 'Show Resource search', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => false,
2400 + 'description' => __( 'Let visitors search the permitted Resources by title, description, or parent title.', 'booking' ),
2401 + ),
2402 + 'show_resource_image' => array(
2403 + 'section' => 'catalog', 'title' => __( 'Show Resource image', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2404 + 'description' => __( 'Show the Resource photo or its generated initials.', 'booking' ),
2405 + ),
2406 + 'show_resource_title' => array(
2407 + 'section' => 'catalog', 'title' => __( 'Show Resource title', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2408 + 'description' => __( 'Show the public Resource title. The title remains available to assistive technology when hidden.', 'booking' ),
2409 + ),
2410 + 'show_resource_description' => array(
2411 + 'section' => 'catalog', 'title' => __( 'Show Resource description', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2412 + 'description' => __( 'Show the public Resource description when one is configured.', 'booking' ),
2413 + ),
2414 + 'catalog_item_width' => array(
2415 + 'section' => 'catalog', 'title' => __( 'Resource item width', 'booking' ), 'value_type' => 'css_width', 'default' => '',
2416 + 'placeholder' => __( 'Automatic, 360px, or 50%', 'booking' ),
2417 + 'description' => __( 'Optional explicit card or list-row width. Use px, %, em, rem, or vw. An items-per-row setting takes precedence for its active layout.', 'booking' ),
2418 + ),
2419 + 'catalog_item_max_width' => array(
2420 + 'section' => 'catalog', 'title' => __( 'Maximum Resource item width', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2421 + 'placeholder' => __( 'Automatic', 'booking' ), 'attr' => array( 'min' => 280, 'max' => 1200, 'step' => 1 ),
2422 + 'description' => __( 'Optional maximum card or list-row width in pixels, from 280 through 1200. Leave empty to fill the available layout width.', 'booking' ),
2423 + ),
2424 + 'catalog_grid_items_per_row' => array(
2425 + 'section' => 'catalog', 'title' => __( 'Grid items per row', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2426 + 'placeholder' => __( 'Automatic', 'booking' ), 'attr' => array( 'min' => 1, 'max' => 12, 'step' => 1 ),
2427 + 'description' => __( 'Optional exact number of equal-width items per row in the grid layout, from 1 through 12.', 'booking' ),
2428 + ),
2429 + 'catalog_list_items_per_row' => array(
2430 + 'section' => 'catalog', 'title' => __( 'List items per row', 'booking' ), 'type' => 'number', 'value_type' => 'positive_integer', 'default' => '',
2431 + 'placeholder' => __( 'One item per row', 'booking' ), 'attr' => array( 'min' => 1, 'max' => 12, 'step' => 1 ),
2432 + 'description' => __( 'Optional number of equal-width items per row in the list layout, from 1 through 12. Empty keeps one item per row.', 'booking' ),
2433 + ),
2434 + 'show_resource_hierarchy' => array(
2435 + 'section' => 'catalog', 'title' => __( 'Show Resource hierarchy', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2436 + 'description' => __( 'Show parent capacity and child-unit context without exposing administration controls. Independent Resources do not need a hierarchy badge.', 'booking' ),
2437 + ),
2438 + 'show_availability' => array(
2439 + 'section' => 'catalog', 'title' => __( 'Show availability summary', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2440 + 'description' => __( 'Explain that exact availability is confirmed after dates are selected.', 'booking' ),
2441 + ),
2442 + 'show_starting_price' => array(
2443 + 'section' => 'catalog', 'title' => __( 'Show starting price', 'booking' ), 'type' => 'checkbox', 'value_type' => 'boolean', 'default' => true,
2444 + 'description' => __( 'Show the Resource base price and charging period when pricing is available in this edition.', 'booking' ),
2445 + ),
2319 2446 'nummonths' => array(
2320 2447 'section' => 'calendar', 'title' => __( 'Visible months', 'booking' ), 'type' => 'select', 'value_type' => 'positive_integer', 'default' => 1, 'options' => $month_options,
2321 2448 'description' => __( 'Number of calendar months from 1 through 24.', 'booking' ),
2322 2449 ),
@@ -2377,8 +2504,27 @@
2377 2504 'section' => 'text', 'title' => __( 'Resource screen description', 'booking' ), 'default' => __( 'Select what you would like to book.', 'booking' ),
2378 2505 'description' => __( 'Description on the Booking Resource selection screen. Clear it to hide the description.', 'booking' ),
2379 2506 ),
2380 2507 );
2508 +
2509 + if ( ! function_exists( 'wpbc_is_11_6_features_enabled' ) || ! wpbc_is_11_6_features_enabled() ) {
2510 + unset(
2511 + $parameters['catalog_layout'],
2512 + $parameters['show_resource_filters'],
2513 + $parameters['show_resource_image'],
2514 + $parameters['show_resource_title'],
2515 + $parameters['show_resource_description'],
2516 + $parameters['catalog_item_width'],
2517 + $parameters['catalog_item_max_width'],
2518 + $parameters['catalog_grid_items_per_row'],
2519 + $parameters['catalog_list_items_per_row'],
2520 + $parameters['show_resource_hierarchy'],
2521 + $parameters['show_availability'],
2522 + $parameters['show_starting_price']
2523 + );
2524 + }
2525 +
2526 + return $parameters;
2381 2527 }
2382 2528
2383 2529 /**
2384 2530 * Get every accepted public Resource Selector shortcode parameter for the reference tab.
@@ -2408,13 +2554,17 @@
2408 2554 function wpbc_shortcode_config__content__booking_resource_selector() {
2409 2555 $shortcode_name = 'booking_resource_selector';
2410 2556 $tabs = array(
2411 2557 'general' => array( 'title' => __( 'Resource Selection', 'booking' ), 'icon' => 'wpbc-bi-card-checklist', 'default' => true ),
2558 + 'catalog' => array( 'title' => __( 'Catalog', 'booking' ), 'icon' => 'wpbc-bi-grid', 'default' => false ),
2412 2559 'calendar' => array( 'title' => __( 'Calendar & Form', 'booking' ), 'icon' => 'wpbc-bi-calendar3', 'default' => false ),
2413 2560 'progress' => array( 'title' => __( 'Progress', 'booking' ), 'icon' => 'wpbc-bi-list-ol', 'default' => false ),
2414 2561 'text' => array( 'title' => __( 'Screen Text', 'booking' ), 'icon' => 'wpbc-bi-card-text', 'default' => false ),
2415 2562 'reference' => array( 'title' => __( 'Parameters', 'booking' ), 'icon' => 'wpbc-bi-code-square', 'default' => false ),
2416 2563 );
2564 + if ( ! function_exists( 'wpbc_is_11_6_features_enabled' ) || ! wpbc_is_11_6_features_enabled() ) {
2565 + unset( $tabs['catalog'] );
2566 + }
2417 2567 $parameters = wpbc_shortcode_config__booking_resource_selector_parameters();
2418 2568 ?>
2419 2569 <div id="wpbc_sc_container__shortcode_<?php echo esc_attr( $shortcode_name ); ?>" class="wpbc_sc_container__shortcode wpbc_sc_container__shortcode_<?php echo esc_attr( $shortcode_name ); ?>">
2420 2570 <?php wpbc_shortcode_config__workflow_tabs( $shortcode_name, $tabs ); ?>