PluginProbe
Booking Calendar / 11.9.1
Booking Calendar v11.9.1
11.9.1 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 All 206 releases
← All changes | core/class/welcome_current.php +1251 -1734 10.10 → 11.9.1 View file →
@@ -1,1911 +1,1665 @@
1 1 <?php
2 2
3 3 // Exit if accessed directly
4 -if ( !defined( 'ABSPATH' ) ) exit;
4 +if ( !defined( 'ABSPATH' ) ) exit;
5 +
6 +/**
7 + * Render the Booking Calendar 12.0 Timeline introduction.
8 + *
9 + * Phases 1 through 4 provide the isolated page, bounded read data, complete
10 + * zoom axis, bounded adjacent date loading, local range selection, canonical
11 + * booking handoff, and independently authorized Availability blocking.
12 + *
13 + * @param object $obj Welcome-page renderer and image loader.
14 + *
15 + * @return void
16 + */
17 +function wpbc_welcome_section_12_0( $obj ) {
18 +
19 + $section_parameters = array( 'version_num' => '12.0', 'show_expand' => false );
20 + $obj->expand_section_start( $section_parameters );
21 + ?>
22 + <div class="wpbc_wn_container">
23 + <div class="wpbc_wn_section" style="gap: 10px 32px;">
24 + <h2><?php esc_html_e( 'A New Zoomable and Selectable Timeline', 'booking' ); ?></h2>
25 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
26 + <img
27 + src="<?php echo esc_attr( $obj->section_img_url( '12.0/wp_booking_calendar__timeline_phase_4_selection_placeholder.png' ) ); ?>"
28 + width="1600"
29 + height="900"
30 + loading="lazy"
31 + alt="<?php esc_attr_e( 'Booking Calendar Timeline with Resource rows, zoom controls, booking cards, and an empty range selection preview', 'booking' ); ?>"
32 + style="margin:10px 0;width:98%;height:auto;"
33 + />
34 + </div>
35 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
36 + <ul>
37 + <li><strong><?php esc_html_e( 'Open a dedicated Timeline page.', 'booking' ); ?></strong> <?php esc_html_e( 'Bookings, Timeline, and the mode-appropriate Add Booking or Add Appointment action share a clear navigation bar, the minimized side menu remains available from the top bar, and the Resource and date header remains visible as you scroll.', 'booking' ); ?></li>
38 + <li><strong><?php esc_html_e( 'Choose a focused Timeline range and scale.', 'booking' ); ?></strong> <?php esc_html_e( 'Use one direct dropdown for 10 focused date-range and cell-scale combinations within the 25,000-bucket budget at the 50-Resource maximum. The default is 1 month — 1 day; clear separators and familiar scale icons keep the choices scannable. The combined date navigation opens the correct Start or End calendar, and the browser-only 30% to 300% Density slider remains beside the dropdown without changing booking precision.', 'booking' ); ?></li>
39 + <li><strong><?php esc_html_e( 'See when Timeline is loading.', 'booking' ); ?></strong> <?php esc_html_e( 'Date-range, cell-scale, navigation, Today, and reload requests now use the standard administration notice and Booking Resources spinner on a readable status surface in a lighter contained overlay, then restore the initiating control when the newest request completes.', 'booking' ); ?></li>
40 + <li><strong><?php esc_html_e( 'Keep scrolling through bounded dates.', 'booking' ); ?></strong> <?php esc_html_e( 'Timeline opens at the current date or time with one previous period already loaded. Use the split Today control to return to the current instant or choose any date from the standard calendar; cached dates move immediately, while other dates safely load with the active range and scale. Approaching either outer edge then loads one authorized adjacent period while localized row placeholders, a persistent loading card with its date range and Cancel action, stable anchoring, retry controls, and a three-window memory limit keep the view predictable.', 'booking' ); ?></li>
41 + <li><strong><?php esc_html_e( 'Review Resources and bookings together.', 'booking' ); ?></strong> <?php esc_html_e( 'The fixed white Resource pane shows authorized Resources, overflow-aware full-title tooltips, Catalog-aligned parent and child hierarchy, labelled blue Capacity badges, and base rates beside compact collision-aware cards for full-day, timed, overnight, recurrent, and clipped bookings.', 'booking' ); ?></li>
42 + <li><strong><?php esc_html_e( 'Select and adjust an empty range.', 'booking' ); ?></strong> <?php esc_html_e( 'Use pointer, scroll-safe touch, or keyboard controls to draft a snapped range, adjust either boundary with draggable and keyboard-accessible handles, then review current Availability, capacity, overlaps, service and form context, and a clearly labelled Resource-only quote before choosing an authorized action.', 'booking' ); ?></li>
43 + <li><strong><?php esc_html_e( 'Continue with canonical workflows.', 'booking' ); ?></strong> <?php esc_html_e( 'Open Add Booking or Add Appointment with the exact Resource, dates, times, and return position preserved, or apply a separately authorized full-day or timed Availability block without cancelling or hiding an existing booking.', 'booking' ); ?></li>
44 + </ul>
45 + </div>
46 + </div>
47 + <div class="wpbc_wn_section" style="gap: 10px 32px;">
48 + <h2><?php esc_html_e( 'Reliable Changeover Date Ranges', 'booking' ); ?></h2>
49 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
50 + <img
51 + src="<?php echo esc_attr( $obj->section_img_url( '12.0/wp_booking_calendar__changeover_range_validation_placeholder.gif' ) ); ?>"
52 + width="1600"
53 + height="900"
54 + loading="lazy"
55 + alt="<?php esc_attr_e( 'Booking calendar rejecting a range across an occupied one-night changeover booking and accepting a legal checkout-date start', 'booking' ); ?>"
56 + style="margin:10px 0;width:98%;height:auto;"
57 + />
58 + </div>
59 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
60 + <ul>
61 + <li><strong><?php esc_html_e( 'Stop ranges at occupied stays.', 'booking' ); ?></strong> <?php esc_html_e( 'Fixed and Dynamic range selection now rejects a period that crosses an existing changeover booking before visitors continue to their details.', 'booking' ); ?></li>
62 + <li><strong><?php esc_html_e( 'Keep legal turnover dates available.', 'booking' ); ?></strong> <?php esc_html_e( 'A new stay can still end on an existing check-in date or start on an existing checkout date when the boundary is available.', 'booking' ); ?></li>
63 + <li><strong><?php esc_html_e( 'Recover immediately after rejection.', 'booking' ); ?></strong> <?php esc_html_e( 'An invalid second click clears the complete range and closes the open selection phase so the next available date starts a fresh range.', 'booking' ); ?></li>
64 + </ul>
65 + </div>
66 + </div>
67 + </div>
68 + <?php
69 + $obj->expand_section_end( $section_parameters );
70 +}
71 +
72 +/**
73 + * Render Booking Calendar 11.9 What's New content.
74 + *
75 + * @param object $obj Welcome-page renderer and image loader.
76 + *
77 + * @return void
78 + */
79 +function wpbc_welcome_section_11_9( $obj ) {
5 80
6 -
7 -function wpbc_welcome_section_10_10( $obj ){
8 -
9 - $section_param_arr = array( 'version_num' => '10.10', 'show_expand' => false );
10 -
11 - $obj->expand_section_start( $section_param_arr );
12 -
13 -
14 - // $obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
15 -
16 -
17 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
18 - // -----------------------------------------------------------------------------------------------------------------
19 - // = F R E E =
20 - // -----------------------------------------------------------------------------------------------------------------
81 + $section_parameters = array( 'version_num' => '11.9', 'show_expand' => false );
82 + $obj->expand_section_start( $section_parameters );
83 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
21 84 ?>
22 85 <div class="wpbc_wn_container">
23 - <div class="wpbc_wn_section">
24 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
25 - <div class="wpbc_wn_col" >
26 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: **Improved Booking Form & Display**' ) ); ?></h3>
86 + <div class="wpbc_wn_section" style="gap: 10px 32px;">
87 + <h2><?php echo ( 'A Simpler Setup Wizard for Every Booking Journey' ); ?></h2>
88 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
89 + <img
90 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__setup_wizard_customer_journeys_placeholder_2.png' ) ); ?>"
91 + alt="<?php echo esc_attr( 'Booking Calendar Setup Wizard showing customer journey choices and the guided setup steps' ); ?>"
92 + style="margin:10px 0;width:98%;"
93 + />
94 + </div>
95 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
96 + <p><?php echo ( 'The redesigned Setup Wizard starts with one practical question: how should customers book? After you choose the answer, it presents only the settings needed for that booking flow instead of asking you to configure every Booking Calendar option.' ); ?></p>
27 97 <ul>
28 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New Form Template:** - "**Appointments Based on Service Duration**" <br>Ideal for scheduling services with fixed durations (Pro Versions).' ) ); ?></li>
29 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Flexible Form Fields** - Save and display custom "Option Titles" and "Values" in select boxes, checkboxes, and radio buttons, providing flexibility for configuring services based on time and more...' ) ); ?></li>
30 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Shortcode Example for Booking Form**: <br><code>[selectbox durationtime "Service A (20 min)@@00:20" "Service B (30 min)@@00:30"]</code>. <br>**Shortcodes for Displaying Booking Field Data**:<br> - To display the selected title, e.g., "**Service A (20 min)**", use shortcode: <code>[durationtime_val]</code> <em>(e.g. field name + "_val" sufix)</em>. <br> - To show the value, e.g., "**00:20**", use the standard shortcode: <code>[durationtime]</code> <em>(e.g. field name)</em>.' ) ); ?></li>
98 + <li><strong><?php echo ( 'Begin with the right next step.' ); ?></strong> <?php echo ( 'A first activation from Plugins opens Setup Wizard directly, while a manual update opens What\'s New after the update without interrupting automatic, command-line, or managed live-demo maintenance.' ); ?></li>
99 + <li><strong><?php echo ( 'Follow a focused path.' ); ?></strong> <?php echo ( 'The wizard guides you through the matching Date Selection, Booking Resources or Services, time choices, availability, Booking Form, appearance, publishing, and review steps.' ); ?></li>
100 + <li><strong><?php echo ( 'Start from the right defaults.' ); ?></strong> <?php echo ( 'Journey-aware recommendations select compatible date behavior and Booking Form templates. Multi-date time journeys also configure their Start and End Times, with Working Hours available only when you want that extra restriction.' ); ?></li>
101 + <li><strong><?php echo ( 'Publish and test the result clearly.' ); ?></strong> <?php echo ( 'Non-guided journeys start with a direct Booking Form page, Review links to the published page, and the testing window places your configured page before separate starter examples.' ); ?></li>
102 + <li><strong><?php echo ( 'Save as you go.' ); ?></strong> <?php echo ( 'Each step saves its settings, unfinished setup can resume later, and the final Setup overview provides clear links for testing, publishing, and future changes.' ); ?></li>
31 103 </ul>
104 + <h3><?php echo ( 'Choose the customer journey that matches your business' ); ?></h3>
105 + <div style="display:flex;flex-wrap:wrap;gap:18px;">
106 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
107 + <img
108 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_single_full_day_placeholder.png' ) ); ?>"
109 + width="420"
110 + height="236"
111 + loading="lazy"
112 + alt="<?php echo esc_attr( 'Calendar with one complete date selected for a Single full day booking' ); ?>"
113 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
114 + />
115 + <h4><?php echo ( 'Single full day' ); ?></h4>
116 + <p><?php echo ( 'Customers reserve one complete date without choosing a time.' ); ?></p>
117 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'One-day rentals, events and daily reservations.' ); ?></p>
118 + </div>
119 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
120 + <img
121 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_multiple_independent_full_days_placeholder.png' ) ); ?>"
122 + width="420"
123 + height="236"
124 + loading="lazy"
125 + alt="<?php echo esc_attr( 'Calendar with several separate dates selected for a Multiple independent full days booking' ); ?>"
126 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
127 + />
128 + <h4><?php echo ( 'Multiple independent full days' ); ?></h4>
129 + <p><?php echo ( 'Customers select several separate full dates in one booking.' ); ?></p>
130 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Bookings that cover several non-consecutive days.' ); ?></p>
131 + </div>
132 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
133 + <img
134 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_flexible_date_range_placeholder.png' ) ); ?>"
135 + width="420"
136 + height="236"
137 + loading="lazy"
138 + alt="<?php echo esc_attr( 'Calendar with the first and last date selected for a Flexible date range booking' ); ?>"
139 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
140 + />
141 + <h4><?php echo ( 'Flexible date range' ); ?></h4>
142 + <p><?php echo ( 'Customers choose the first and last date of a variable-length booking.' ); ?></p>
143 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Stays and rentals whose length varies by booking.' ); ?></p>
144 + </div>
145 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
146 + <img
147 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_fixed_length_date_range_placeholder.png' ) ); ?>"
148 + width="420"
149 + height="236"
150 + loading="lazy"
151 + alt="<?php echo esc_attr( 'Calendar with an automatically selected Fixed-length date range' ); ?>"
152 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
153 + />
154 + <h4><?php echo ( 'Fixed-length date range' ); ?></h4>
155 + <p><?php echo ( 'Customers choose a start date and the configured range is selected automatically.' ); ?></p>
156 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Weekend, multi-day and weekly packages.' ); ?></p>
157 + </div>
158 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
159 + <img
160 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_check_in_out_changeover_placeholder.png' ) ); ?>"
161 + width="420"
162 + height="236"
163 + loading="lazy"
164 + alt="<?php echo esc_attr( 'Calendar showing arrival and departure boundaries for a Check-in and check-out changeover booking' ); ?>"
165 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
166 + />
167 + <h4><?php echo ( 'Check-in & check-out changeover' ); ?></h4>
168 + <p><?php echo ( 'Customers choose arrival and departure dates with changeover boundaries.' ); ?></p>
169 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Accommodation and rentals with arrival and departure times.' ); ?></p>
170 + </div>
171 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
172 + <img
173 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_fixed_time_slots_placeholder.png' ) ); ?>"
174 + width="420"
175 + height="236"
176 + loading="lazy"
177 + alt="<?php echo esc_attr( 'Calendar and predefined appointment choices for a Fixed time slots booking' ); ?>"
178 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
179 + />
180 + <h4><?php echo ( 'Fixed time slots' ); ?></h4>
181 + <p><?php echo ( 'Customers select one predefined available time slot.' ); ?></p>
182 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Classes, consultations and fixed timetables.' ); ?></p>
183 + </div>
184 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
185 + <img
186 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_start_end_time_placeholder.png' ) ); ?>"
187 + width="420"
188 + height="236"
189 + loading="lazy"
190 + alt="<?php echo esc_attr( 'Calendar with separate start and end choices for a Start and end time booking' ); ?>"
191 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
192 + />
193 + <h4><?php echo ( 'Start & end time' ); ?></h4>
194 + <p><?php echo ( 'Customers choose both ends of a flexible appointment time range.' ); ?></p>
195 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Flexible appointments, equipment use and variable-duration work.' ); ?></p>
196 + </div>
197 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
198 + <img
199 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_start_time_duration_placeholder.png' ) ); ?>"
200 + width="420"
201 + height="236"
202 + loading="lazy"
203 + alt="<?php echo esc_attr( 'Calendar with start-time and duration choices for a Start time and duration booking' ); ?>"
204 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
205 + />
206 + <h4><?php echo ( 'Start time + duration' ); ?></h4>
207 + <p><?php echo ( 'Customers choose a start time and one of the available durations.' ); ?></p>
208 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Appointments offered in standard duration choices.' ); ?></p>
209 + </div>
210 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
211 + <img
212 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_repeated_time_multiple_dates_placeholder.png' ) ); ?>"
213 + width="420"
214 + height="236"
215 + loading="lazy"
216 + alt="<?php echo esc_attr( 'Calendar with multiple dates sharing one selected time for a repeated-time booking' ); ?>"
217 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
218 + />
219 + <h4><?php echo ( 'Repeat one time on multiple dates' ); ?></h4>
220 + <p><?php echo ( 'Customers select several dates and use the same time on every selected date.' ); ?></p>
221 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Recurring sessions submitted together for the same daily time.' ); ?></p>
222 + </div>
223 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
224 + <img
225 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_first_date_start_last_date_end_placeholder.png' ) ); ?>"
226 + width="420"
227 + height="236"
228 + loading="lazy"
229 + alt="<?php echo esc_attr( 'Multi-day calendar with a start time on the first date and an end time on the last date' ); ?>"
230 + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;"
231 + />
232 + <h4><?php echo ( 'First-date start & last-date end' ); ?></h4>
233 + <p><?php echo ( 'Customers choose a start on the first date and an end on the last date.' ); ?></p>
234 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Multi-day bookings with different arrival and departure times.' ); ?></p>
235 + </div>
236 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;">
237 + <img
238 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_guided_appointment_flow_placeholder.png' ) ); ?>"
239 + width="420"
240 + height="236"
241 + loading="lazy"
242 + alt="<?php echo esc_attr( 'Guided appointment sequence showing Service, Provider, Date, Time, and Details steps' ); ?>"
243 + style="display:block;margin:0 0 12px;width:100%;max-width:300px;height:auto;"
244 + />
245 + <h4><?php echo ( 'Guided appointment flow' ); ?></h4>
246 + <p><?php echo ( 'Customers choose a Service, Provider and available start time step by step.' ); ?></p>
247 + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Businesses with several Services or Providers.' ); ?></p>
248 + </div>
249 + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"></div>
250 + </div>
32 251 </div>
33 - <div class="wpbc_wn_col" style="flex: 1 1 45%;margin: 10px 0;">
34 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
35 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/wp_booking_calendar_wizard_form_steps_03.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
36 - <span><span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></span>
252 + </div>
253 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
254 + <h2><?php echo( 'Select the Date Range You Point To' ); ?></h2>
255 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
256 + <img
257 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__range_selection_pointer_period_placeholder.gif' ) ); ?>"
258 + width="1600"
259 + height="900"
260 + loading="lazy"
261 + alt="<?php echo esc_attr( 'Booking calendar highlighting the valid date range that contains the pointed date' ); ?>"
262 + style="margin:10px 0;width:98%;height:auto;"
263 + />
37 264 </div>
38 - </div>
39 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
40 - <div class="wpbc_wn_section">
41 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
42 - <div class="wpbc_wn_col" >
43 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: **Steps Timeline Progress Indicator**' ) ); ?></h3>
265 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
44 266 <ul>
45 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Easily show a progress indicator for multi-step booking forms.' ) ); ?></li>
46 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Shortcode:** <code>[steps_timline steps_count="3" active_step="1"]</code>' ) ); ?></li>
47 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Parameters:**' ) ); ?></li>
48 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **steps_count="3"** - Defines total number of steps' ) ); ?></li>
49 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **active_step="1"** - Highlights the current step' ) ); ?></li>
50 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **color="#619d40"** - Optional parameter to customize step color ' ) ); ?></li>
267 + <li><strong><?php echo( 'Keep hover and click together.' ); ?></strong> <?php echo( 'Fixed and Dynamic range selection now previews and selects the same valid period containing the date a visitor points to.' ); ?></li>
268 + <li><strong><?php echo( 'Recover from an invalid range.' ); ?></strong> <?php echo( 'Invalid end dates clear the open Dynamic range so the next click starts again, while conditional Season, weekday, and exact-date rules use the actual range start.' ); ?></li>
269 + <li><span><?php echo( 'Available in the Booking Calendar Business Medium or igher versions' ); ?></span> <?php ?></li>
51 270 </ul>
52 271 </div>
53 - <div class="wpbc_wn_col" style="flex: 1 1 45%;margin: 10px 0;">
54 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
55 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/wp_booking_calendar_wizard_form_steps_chnage_over_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
56 - <span><span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></span>
57 - </div>
58 272 </div>
59 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
60 - </div>
61 - <div class="wpbc_wn_container">
62 - <div class="wpbc_wn_section">
63 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Availability & Time Management' ) ); ?></h2>
64 - </div>
65 -
66 - <div class="wpbc_wn_section">
67 - <div class="wpbc_wn_col">
68 - <ul>
69 - <?php // Free. ?>
70 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Unavailable Past Times**: Automatically hides/locks past time slots when selecting today’s date.' ) ); ?></li>
71 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Timezone-Based Availability**: The "Unavailable time from current time" option now follows your WordPress timezone, ensuring accurate availability settings.' ) ); ?></li>
72 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Customizable Labels**: Removed default colons (:) from field labels. You can now manually add them while editing forms in Simple Mode.' ) ); ?></li>
73 - </ul>
273 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
274 + <h2><?php echo ( 'Prevent Unbookable Date Gaps' ); ?></h2>
275 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
276 + <p><strong><?php echo ( 'Before' ); ?></strong></p>
277 + <img
278 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__unbookable_date_gaps_before_placeholder.png' ) ); ?>"
279 + alt="<?php echo esc_attr( 'Booking calendar before enabling Unbookable date gaps, with a short bounded opening still shown as selectable' ); ?>"
280 + style="margin:10px 0;width:98%;"
281 + />
74 282 </div>
75 - <div class="wpbc_wn_col" style="flex: 1 1 45%;margin: 10px 0;">
76 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
77 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/availability_from_today.png' ) ); ?>" style="margin:10px 0;width:98%;" />
78 - <span><span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Medium or higher versions' ) ); ?></span></span>
283 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
284 + <p><strong><?php echo ( 'After' ); ?></strong></p>
285 + <img
286 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__unbookable_date_gaps_after_placeholder.png' ) ); ?>"
287 + alt="<?php echo esc_attr( 'Booking calendar after enabling Unbookable date gaps, with the same impossible opening shown as unavailable' ); ?>"
288 + style="margin:10px 0;width:98%;"
289 + />
79 290 </div>
80 - </div>
81 - <div class="wpbc_wn_section">
82 - <div class="wpbc_wn_col">
83 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements & Fixes' ) ); ?></h3>
291 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
84 292 <ul>
85 - <?php // Pro. ?>
86 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; New JS Event Hook: \'wpbc_before_booking_create\' - Allows developers to trigger actions before a booking is created.' ) ); ?></li>
87 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Booking Hash Updates: If enabled, booking hashes now change when moving bookings to Pending or Trash, ensuring better security & tracking.' ) ); ?></li>
88 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed CSS Conflicts: Resolved calendar cell width issues affecting certain WordPress themes.' ) ); ?></li>
293 + <li><strong><?php echo ( 'Stop visitors at impossible openings.' ); ?></strong> <?php echo ( 'Business Small and higher editions can optionally show a bounded opening as unavailable when no configured fixed or dynamic date range can fit.' ); ?></li>
294 + <li><strong><?php echo ( 'Follow the active booking rules.' ); ?></strong> <?php echo ( 'The calendar respects permitted range lengths, start weekdays, conditional date and Season rules, changeovers, pending dates, and Resource capacity before marking the opening unavailable.' ); ?></li>
89 295 </ul>
90 296 </div>
91 297 </div>
92 - </div>
93 - <div class="wpbc_wn_container">
94 - <div class="wpbc_wn_section">
95 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
96 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Calendar Color Themes' ) ); ?></h3>
298 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
299 + <h2><?php echo ( 'Manage Split Working Time' ); ?></h2>
300 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
301 + <img
302 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__schedule_rules_multi_interval_placeholder.png' ) ); ?>"
303 + alt="<?php echo esc_attr( 'Schedule and Rules Working Time editor showing two non-overlapping intervals for one weekday with Add interval and remove actions' ); ?>"
304 + style="margin:10px 0;width:98%;"
305 + />
306 + </div>
307 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
97 308 <ul>
98 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added 1 dark and 4 light Calendar Skins' ) ); ?></li>
309 + <li><strong><?php echo ( 'Keep breaks in the normal week.' ); ?></strong> <?php echo ( 'Add several non-overlapping Working Time intervals to a weekday so gaps such as lunch remain unavailable.' ); ?></li>
310 + <li><strong><?php echo ( 'Use the same schedule everywhere.' ); ?></strong> <?php echo ( 'Schedule & Rules reads and saves default and Resource-specific intervals used by the Setup Wizard and appointment availability.' ); ?></li>
99 311 </ul>
100 312 </div>
101 313 </div>
102 - <div class="wpbc_wn_section" style="margin-top: -3em;">
103 - <div class="wpbc_wn_col">
104 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
105 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/24_9_dark_3_availability_page.png' ) ); ?>" style="margin:10px 0;width:98%;" />
106 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
107 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/24_9_green_3_availability_page.png' ) ); ?>" style="margin:10px 0;width:98%;" />
314 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
315 + <h2><?php echo ( 'New Appointment Services Booking Flow' ); ?></h2>
316 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
317 + <img
318 + src="<?php echo esc_attr( $obj->section_img_url( '11.9/appointments_services_flow_02.png' ) ); ?>"
319 + alt="<?php echo esc_attr( 'Appointment Services booking form with a live selection summary, calendar, duration, and start-time choices' ); ?>"
320 + style="margin:10px 0;width:98%;"
321 + />
108 322 </div>
109 - <div class="wpbc_wn_col">
110 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
111 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/24_9_green_2_availability_page.png' ) ); ?>" style="margin:10px 0;width:98%;" />
112 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
113 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.10/24_9_green_4_availability_page.png' ) ); ?>" style="margin:10px 0;width:98%;" />
323 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
324 + <ul>
325 + <li><strong><?php echo ( 'See the appointment before continuing.' ); ?></strong> <?php echo ( 'Visitors choose a Service duration, date, and start time while a live summary shows the selected date, start, and end time.' ); ?></li>
326 + <li><strong><?php echo ( 'Finish in a focused second step.' ); ?></strong> <?php echo ( 'Customer details, Terms agreement, Back, and Book appointment actions stay together on one responsive page.' ); ?></li>
327 + <li><strong><?php echo ( 'Keep existing forms unchanged.' ); ?></strong> <?php echo ( 'The new flow is used for newly created Appointment Services forms without replacing existing forms or their templates.' ); ?></li>
328 + </ul>
114 329 </div>
115 330 </div>
116 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
117 - </div>
118 - <?php
119 331
120 332
121 - // </editor-fold>
122 333
123 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
124 - // -----------------------------------------------------------------------------------------------------------------
125 - // = M I X E D =
126 - // -----------------------------------------------------------------------------------------------------------------
127 - /*
128 - ?>
129 - <div class="wpbc_wn_container">
130 - <div class="wpbc_wn_section">
131 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
132 - </div>
133 334
134 - <div class="wpbc_wn_section">
135 - <div class="wpbc_wn_col">
136 - <ul>
137 - <?php // Free. ?>
138 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: You can ...' ) ); ?></li>
139 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement** ...' ) ); ?></li>
140 - </ul>
141 335
142 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
143 - <ul>
144 - <?php // Pro. ?>
145 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We\'ve addressed ...' ) ); ?></li>
146 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed a ....' ) ); ?></li>
147 - </ul>
148 336
337 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
338 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
339 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
340 + <h2><?php echo ( 'Add a Country List Visually' ); ?></h2>
341 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
342 + <ul>
343 + <li><strong><?php echo ( 'Add a ready-made country selector.' ); ?></strong> <?php echo ( 'Drag the Country List field into a visual booking form, then configure its label, help text, and validated default country.' ); ?></li>
344 + <li><strong><?php echo ( 'Keep form output synchronized.' ); ?></strong> <?php echo ( 'Saving generates the supported Country shortcode in Advanced Mode and its matching Booking Data token.' ); ?></li>
345 + </ul>
346 + </div>
347 + </div>
149 348 </div>
150 -
349 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
350 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
351 + <h2><?php echo ( 'Add Discount Coupons Visually' ); ?></h2>
352 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
353 + <ul>
354 + <li><strong><?php echo ( 'Add the coupon input without editing code.' ); ?></strong> <?php echo ( 'Business Large and higher editions can drag one Discount Coupon field into a visual booking form and configure its content and appearance.' ); ?></li>
355 + <li><strong><?php echo ( 'See edition requirements clearly.' ); ?></strong> <?php echo ( 'Lower editions show an upgrade badge and explanation without publishing an unsupported coupon input.' ); ?></li>
356 + <li><strong><?php echo ( 'Keep form output synchronized.' ); ?></strong> <?php echo ( 'Saving generates the Coupon shortcode in Advanced Mode and its matching Booking Data token.' ); ?></li>
357 + </ul>
358 + </div>
359 + </div>
360 + </div>
151 361 </div>
152 - </div><?php
153 - */
154 - // </editor-fold>
155 362
156 -
157 - $obj->expand_section_end( $section_param_arr );
363 + </div>
364 + <?php
365 + $obj->expand_section_end( $section_parameters );
158 366 }
159 367
160 -function wpbc_welcome_section_10_9( $obj ){
368 +/**
369 + * Render Booking Calendar 11.8.1 What's New content.
370 + *
371 + * @param object $obj Welcome-page renderer and image loader.
372 + *
373 + * @return void
374 + */
375 +function wpbc_welcome_section_11_8_1( $obj ) {
161 376
162 - $section_param_arr = array( 'version_num' => '10.9', 'show_expand' => !false );
377 + $section_parameters = array( 'version_num' => '11.8.1', 'show_expand' => true );
378 + $obj->expand_section_start( $section_parameters );
379 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
380 + ?>
163 381
164 - $obj->expand_section_start( $section_param_arr );
165 382
383 + <div class="wpbc_wn_container">
166 384
167 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
168 -
169 -
170 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
171 - // -----------------------------------------------------------------------------------------------------------------
172 - // = F R E E =
173 - // -----------------------------------------------------------------------------------------------------------------
174 - ?><div class="wpbc_wn_container">
175 - <div class="wpbc_wn_section">
176 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
177 - <!--h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Multi-Step Wizard for Booking Forms (Free Version)!' ) ); ?></h3-->
178 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
179 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Set Unavailable Time Intervals!' ) ); ?></h3>
180 - <ul>
181 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; You can now define unavailable intervals for specific hours and minutes starting from the current time. This feature complements the ability to set unavailable dates starting from today\'s date, offering more flexibility in managing availability.' ) ); ?></li>
182 - </ul>
385 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
386 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
387 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
388 + <h2><?php echo( 'Clearer First-Run Setup' ); ?></h2>
389 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
390 + <img
391 + src="<?php echo esc_attr( $obj->section_img_url( '11.8.1/wp_booking_calendar__first_run_starter_pages_prompt_placeholder.png' ) ); ?>"
392 + alt="<?php echo esc_attr( 'First-run starter booking pages invitation with public-page links' ); ?>"
393 + style="margin:10px 0;width:98%;"
394 + />
395 + </div>
396 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
397 + <ul>
398 + <li><strong><?php echo( 'Choose Setup when you are ready.' ); ?></strong> <?php echo( 'New installations show one focused invitation on Booking Listing. Start guided Setup immediately or postpone it; either choice is remembered.' ); ?></li>
399 + <li><strong><?php echo( 'Test the visitor experience immediately.' ); ?></strong> <?php echo( 'A second one-time window shows complete previews and links to valid published starter pages, including the resource-first Resource Selection workflow. Automatic dismissal is remembered for that administrator and site, while manual reopening remains available from the Booking Listing welcome panel. Live demos also show the welcome section without saving a shared dismissal. The top Booking Calendar menu keeps the public links in a predictable workflow order and places the Home page last.' ); ?></li>
400 + </ul>
401 + </div>
402 + </div>
183 403 </div>
184 - <div class="wpbc_wn_col">
185 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
186 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.9/wp-booking-calendar__set_unavailable_time_from_current_time.png' ) ); ?>" style="margin:10px 0;width:98%;" />
404 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
405 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
406 + <h2><?php echo( 'Time-Slot Booking Flow' ); ?></h2>
407 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
408 + <img
409 + src="<?php echo esc_attr( $obj->section_img_url( '11.8.1/wp_booking_calendar__time-slots-booking-form-2-columns.png' ) ); ?>"
410 + alt="<?php echo esc_attr( 'Two-column time-slot booking form with a calendar and live date and time summary' ); ?>"
411 + style="margin:10px 0;width:98%;"
412 + />
413 + </div>
414 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
415 + <ul>
416 + <li><strong><?php echo( 'Choose date and time together.' ); ?></strong> <?php echo( 'The calendar, time choices, and live Date, Start Time, and End Time summary share one clear first step.' ); ?></li>
417 + <li><strong><?php echo( 'Finish details on a focused second step.' ); ?></strong> <?php echo( 'Visitors continue to contact, guest, and Terms fields before sending the booking.' ); ?></li>
418 + <li><strong><?php echo( 'Ready to find and reuse.' ); ?></strong> <?php echo( 'When initially added, the Time-Slots template appears first overall and, within Full Days, Two Columns appears before Vertical. Clean installations use the Time-Slots template on their starter page. Updates preserve existing forms, pages, custom URLs, and installed template copies.' ); ?></li>
419 + </ul>
420 + </div>
421 + </div>
187 422 </div>
188 423 </div>
189 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
424 +
425 +
190 426 </div>
191 - <div class="wpbc_wn_container">
192 - <div class="wpbc_wn_section">
193 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
194 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
195 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: **Redsys Payment Gateway** Support!' ) ); ?></h3>
196 - <ul>
197 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added integration with the **Redsys payment gateway** using the **Redsys Redirection** method. This feature is ideal for Spanish users, enabling them to seamlessly receive payments for bookings.' ) ); ?></li>
198 - <li><span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></li>
199 - </ul>
200 - </div>
201 - <div class="wpbc_wn_col">
202 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
203 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.9/wp-booking-calendar__redsys_settings.png' ) ); ?>" style="margin:10px 0;width:98%;" />
204 - </div>
205 - </div>
206 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
207 - </div>
208 427 <?php
428 + $obj->expand_section_end( $section_parameters );
429 +}
209 430
431 +/**
432 + * Render Booking Calendar 11.8 What's New content.
433 + *
434 + * Booking Modes and the Full-Day Form Builder template are available in every
435 + * edition. Seasonal Availability and the Business Large Searchable Resources
436 + * catalog remain protected by their existing feature, edition, and current-user
437 + * gates. Image placeholders must be replaced by verified, edition-appropriate
438 + * captures before release.
439 + *
440 + * @param object $obj Welcome-page renderer and image loader.
441 + *
442 + * @return void
443 + */
444 +function wpbc_welcome_section_11_8( $obj ) {
210 445
211 - // </editor-fold>
212 -
213 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
214 - // -----------------------------------------------------------------------------------------------------------------
215 - // = M I X E D =
216 - // -----------------------------------------------------------------------------------------------------------------
446 + $section_parameters = array( 'version_num' => '11.8', 'show_expand' => true );
447 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
448 + $obj->expand_section_start( $section_parameters );
217 449 ?>
218 450 <div class="wpbc_wn_container">
219 - <div class="wpbc_wn_section">
220 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
221 - </div>
451 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
452 + <h2><?php echo( '2 New Full-Day Booking Form Templates' ); ?></h2>
222 453
223 - <div class="wpbc_wn_section">
224 - <div class="wpbc_wn_col">
454 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
455 + <img
456 + src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__form_2_columns_hints_full_days.png' ) ); ?>"
457 + alt="<?php echo esc_attr( 'Two-column full-day booking form with a calendar, date summary, and customer details' ); ?>"
458 + style="margin:10px 0;width:98%;"
459 + />
460 + </div>
461 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
225 462 <ul>
226 - <?php // Free ?>
227 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: You can now select the "Number of months in a row" value from the Options toolbar on the WP Booking Calendar > Availability > Days Availability page. This feature improves the clarity of calendar day displays in certain calendar skins. The default value is set to 3 months.' ) ); ?></li>
228 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved**: Setup Wizard Troubleshooting for Wordfence Users! A warning message now appears at the 4th and 5th steps of the Setup Wizard if the Wordfence plugin is installed, along with a link to troubleshoot the issue. This ensures smoother configuration and guides users in resolving potential conflicts.' ) ); ?></li>
229 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement** Now, when approving a booking that was previously in the Trash, the system will automatically restore it, streamlining the approval process.' ) ); ?></li>
230 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement** The email fields now use the HTML input type email, ensuring better validation and user experience when entering email addresses.' ) ); ?></li>
463 + <li><strong><?php echo( 'Start with a clear two-column layout.' ); ?></strong> <?php echo( 'Customers select dates in the calendar, then review their Check-in, Check-out, and Days beside the customer details.' ); ?></li>
464 + <li><strong><?php echo( 'Vertical full-day layout.' ); ?></strong> <?php echo( 'Vertical full-day booking form with a ability to use a two-month calendar and date summary' ); ?></li>
465 + <li><strong><?php echo( 'Designed for full-day bookings.' ); ?></strong> <?php echo( 'Use the live date summary with your saved full-day or changeover settings to make each selection easier to understand.' ); ?></li>
466 + <li><strong><?php echo( 'Apply it when you need it.' ); ?></strong> <?php echo( 'The templates are available in Form Builder without replacing existing forms or changing first-install defaults. Confirm its starter Terms links before publishing.' ); ?></li>
231 467 </ul>
468 + </div>
469 + </div>
232 470
233 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
234 - <ul>
235 - <?php // Pro ?>
236 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We\'ve addressed an issue where the "real-time" cost wasn\'t displayed correctly based on selected days and other options. This occurred occasionally due to multiple requests causing server response delays. (10.8.1.3)' ) ); ?></li>
237 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed a warning issue that occurred on the WP Booking Calendar > Availability > Season Availability page.' ) ); ?></li>
238 - </ul>
239 -
471 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
472 + <h2><?php echo( 'New Seasonal Availability Catalog' ); ?></h2>
473 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
474 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__season_availability_review_placeholder_3.png' ) ); ?>" alt="<?php echo esc_attr( 'Availability listing with Resource names, default-status labels, search and view controls' ); ?>" style="margin:5px 0;width:100%;" />
475 + <p style="text-align:center;font-style: italic;font-size:0.8em;"><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Business Medium or higher.'; ?></p>
240 476 </div>
477 + <div class="wpbc_wn_col" style="flex: 1 1 20%;margin: 0;padding: 0;">
241 478
242 - </div>
243 - <?php /* ?>
244 - <div class="wpbc_wn_section">
245 - <div class="wpbc_wn_col">
246 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
247 479 <ul>
248 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Calendar Behavior**: We’ve removed the highlighting of days in the calendar when the mouse cursor moves outside the calendar container for a smoother user experience. (10.5.2.4)' ) ); ?></li>
249 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Timeline Navigation**: We’ve fixed an issue where the dropdown list would auto-close after selecting the start date in the navigation panel on the Timeline view. (10.5.2.1)' ) ); ?></li>
250 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Page Workflow**: Notice messages from other plugins are now hidden in the header on Booking Calendar pages. This prevents interruptions to the normal workflow caused by messages from other plugins. (10.5.2.2)' ) ); ?></li>
251 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Start Time Validation**: We’ve added a fix to check the start time and prevent the selection of times that have already passed for today. (10.5.2.3)' ) ); ?></li>
252 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
253 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Submit Button Color Issue Resolved**: We’ve fixed an issue where the color of the "Send" button wasn’t saving correctly after a second click on dates, when the range dates selection mode was enabled. (10.5.2.3)' ) ); ?></li>
254 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Date/Time Hints Display**: Resolved an issue where date/time hints were not showing in the booking form if no date was selected. Previously, a "0" would display if only the time was selected. (10.5.2.7)' ) ); ?></li>
480 + <li data-wpbc-availability-feature="overview"><strong><?php echo( 'Availability at a glance.' ); ?></strong> <?php echo( 'Find your Resources in a clear list or Card view. See each Resource’s default availability below its name, search for the one you need, and choose the columns you want to see.' ); ?></li>
481 + <li data-wpbc-availability-feature="preview"><strong><?php echo( 'See your seasonal dates clearly.' ); ?></strong> <?php echo( 'Green dates are available and gray dates are unavailable according to your seasonal settings. Hover over a Resource or focus a control in its row to see which Season applies. The preview shows seasonal settings, not existing bookings or remaining capacity.' ); ?></li>
255 482 </ul>
256 483 </div>
257 484 </div>
258 - <?php */ ?>
259 - </div><?php
260 - // </editor-fold>
261 -
262 -
263 - $obj->expand_section_end( $section_param_arr );
264 -}
265 -
266 -function wpbc_welcome_section_10_8( $obj ){
267 -
268 - $section_param_arr = array( 'version_num' => '10.8', 'show_expand' => !false );
269 -
270 - $obj->expand_section_start( $section_param_arr );
271 -
272 -
273 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
274 -
275 -
276 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
277 - // -----------------------------------------------------------------------------------------------------------------
278 - // = F R E E =
279 - // -----------------------------------------------------------------------------------------------------------------
280 - ?><div class="wpbc_wn_container">
281 - <div class="wpbc_wn_section">
282 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
283 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Multi-Step Wizard for Booking Forms (Free Version)!' ) ); ?></h3>
284 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
285 - <!--<h3>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Booking Form Setup as the Wizard (several steps)' ) ); ?><!--</h3>-->
485 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
486 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;">
286 487 <ul>
287 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now you can set up your booking form as a multi-step wizard in the Booking Calendar Free version. This feature allows you to **guide users through the booking process step-by-step**, enhancing the booking experience.' ) ); ?></li>
488 + <li data-wpbc-availability-feature="bulk"><strong><?php echo( 'Update selected Resources together.' ); ?></strong> <?php echo( 'Select Resources and choose Edit selected to set their default availability, add one Season exception, or remove one Season exception. Other assignments are kept. Review every proposed change before applying; updated Resources are highlighted after a successful save.' ); ?></li>
288 489 </ul>
289 - <!--/div>
290 - <div class="wpbc_wn_col"-->
291 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
292 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.8/wp_booking_calendar_booking_form_several_steps_wizard_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
293 490 </div>
294 491 </div>
295 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
296 - </div>
297 - <div class="wpbc_wn_container">
298 - <div class="wpbc_wn_section">
299 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
300 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Multi-Column Layout for Booking Forms (Free Version)!' ) ); ?></h3>
301 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
492 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
493 + <div class="wpbc_wn_col" style="flex: 1 1 20%;margin: 0;padding: 0;">
302 494 <ul>
303 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; You can now set the number of columns in your booking form in the Booking Calendar Free version. Easily adjust the column layout in the "Form Layout" section at WP Booking Calendar > Settings > Booking Form page for a more organized and customizable form appearance.' ) ); ?></li>
304 -
495 + <li data-wpbc-availability-feature="inspector"><strong><?php echo( 'Edit availability without leaving the list.' ); ?></strong> <?php echo( 'Open a Resource in the new sidebar editor. Choose its default, add Season exceptions, turn them on or off, and preview their dates. A plain-language overview explains the result before you review and apply your changes.' ); ?></li>
496 + <li data-wpbc-availability-feature="inline"><strong><?php echo( 'Change defaults directly in the list.' ); ?></strong> <?php echo( 'Choose Edit rows to change default availability for several Resources without opening each one. Changed rows are marked so you can check your work, then review the effect on existing Seasons before applying.' ); ?></li>
305 497 </ul>
306 498 </div>
307 - <div class="wpbc_wn_col">
308 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
309 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.8/wp_booking_calendar_booking_form_setup_in_several_columns_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
499 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
500 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__season_availability__inspector_edit_season_availability_3.png' ) ); ?>" alt="<?php echo esc_attr( 'Seasonal Availability inspector showing default availability, ordered Season exceptions and a selected Season date preview' ); ?>" style="margin:5px 0;width:100%;" />
501 + <p style="text-align:center;font-style: italic;font-size:0.8em;"><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Business Medium or higher.'; ?></p>
310 502 </div>
311 503 </div>
312 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
313 - </div>
314 - <?php
315 504
316 505
317 - // </editor-fold>
318 -
319 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
320 - // -----------------------------------------------------------------------------------------------------------------
321 - // = M I X E D =
322 - // -----------------------------------------------------------------------------------------------------------------
323 - ?>
324 - <div class="wpbc_wn_container">
325 - <div class="wpbc_wn_section">
326 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
506 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
507 + <h2><?php echo( 'New Searchable Resources Catalog' ); ?></h2>
508 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
509 + <?php // Replace this placeholder with the final 11.8 Searchable Resources Catalog screenshot before release. ?>
510 + <img
511 + src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__searchable_resources_catalog_placeholder.png' ) ); ?>"
512 + alt="<?php echo esc_attr( 'Searchable Resources Catalog with status filters, presentation columns, and Resource editing controls' ); ?>"
513 + style="margin:10px 0;width:98%;"
514 + />
515 + <p style="text-align:center;font-style: italic;font-size:0.8em;"><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Business Large or higher.'; ?></p>
516 + </div>
517 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
518 + <ul>
519 + <li><strong><?php echo( 'Control each search result in one place.' ); ?></strong> <?php echo( 'Open the direct Search Availability > Searchable Resources link, then edit Search visibility, result title, description, image, landing page, and supported criteria from the Inspector or directly in catalog rows. Search form, results, and options each have their own neighboring link.' ); ?></li>
520 + <li><strong><?php echo( 'Find the right Resources quickly.' ); ?></strong> <?php echo( 'Switch between All, Searchable, and Not searchable Resources, then use focused table views, compact rows, or image-led Cards.' ); ?></li>
521 + <li><strong><?php echo( 'Review changes before saving.' ); ?></strong> <?php echo( 'Stage direct, inline, and selected-Resource updates, review the affected fields, and apply only the changes you approve.' ); ?></li>
522 + </ul>
523 + </div>
327 524 </div>
328 525
329 - <div class="wpbc_wn_section">
330 - <div class="wpbc_wn_col">
331 - <ul>
332 - <?php // Free ?>
333 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We\'ve added a 20-minute time-slot interval option when editing time slots on the WP Booking Calendar > Settings > Booking Form page. This allows for quick and easy configuration of time slots with a 20-minute duration.' ) ); ?></li>
334 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Enhanced** Added new skins: "Black-2", "Green-01", "Light-01", and "Traditional-times" to the legacy calendar skin group. (10.7.1.5)' ) ); ?></li>
335 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Enhanced** Disabled auto-selection of legacy calendar skins. (10.7.1.5.1)' ) ); ?></li>
336 - </ul>
526 + <div class="wpbc_wn_section" style="gap: 10px 50px;">
527 + <h2><?php echo( 'More Reliable Administration Modes' ); ?></h2>
337 528
338 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
529 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
339 530 <ul>
340 - <?php // Pro ?>
341 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We\'ve introduced a new "**Time-Based Appointments**" form template in a multi-step wizard format. To use this template, reset your booking form by selecting it from the dropdown list in the toolbar on the Settings > Booking Form page. (10.7.1.4)' ) ); ?></li>
342 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added new shortcodes: [search_days_number] and [search_nights_number] to enhance search results customization. Configure these on the WP Booking Calendar > Settings > Search page. (10.7.1.1) *(Business Large, MultiUser)*' ) ); ?></li>
531 + <li><strong><?php echo( 'Choose the view that fits your work.' ); ?></strong> <?php echo( 'Switch between Classic, Appointments, and Rentals while continuing to use the familiar Booking Calendar pages and saved configuration.' ); ?></li>
532 + <li><strong><?php echo( 'See the pages available to you.' ); ?></strong> <?php echo( 'Each mode shows the pages provided by your installed edition and add-ons while safely omitting unavailable features.' ); ?></li>
343 533 </ul>
344 - <div style="clear:both;height:20px;"></div>
345 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under hood' ) ); ?></h3>
346 - <ul>
347 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; You can now use the \'allow_past\' parameter in the URL (e.g., https://yourserver.com/wp-admin/admin.php?page=wpbc-new&allow_past) to display past bookings and enable scrolling to previous months on the Booking > Add Booking page in the admin panel.' ) ); ?></li>
348 - </ul>
349 -
350 534 </div>
351 -
352 - </div>
353 - <?php /* ?>
354 - <div class="wpbc_wn_section">
355 - <div class="wpbc_wn_col">
356 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
535 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;">
357 536 <ul>
358 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Calendar Behavior**: We’ve removed the highlighting of days in the calendar when the mouse cursor moves outside the calendar container for a smoother user experience. (10.5.2.4)' ) ); ?></li>
359 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Timeline Navigation**: We’ve fixed an issue where the dropdown list would auto-close after selecting the start date in the navigation panel on the Timeline view. (10.5.2.1)' ) ); ?></li>
360 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Page Workflow**: Notice messages from other plugins are now hidden in the header on Booking Calendar pages. This prevents interruptions to the normal workflow caused by messages from other plugins. (10.5.2.2)' ) ); ?></li>
361 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Start Time Validation**: We’ve added a fix to check the start time and prevent the selection of times that have already passed for today. (10.5.2.3)' ) ); ?></li>
362 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
363 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Submit Button Color Issue Resolved**: We’ve fixed an issue where the color of the "Send" button wasn’t saving correctly after a second click on dates, when the range dates selection mode was enabled. (10.5.2.3)' ) ); ?></li>
364 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Date/Time Hints Display**: Resolved an issue where date/time hints were not showing in the booking form if no date was selected. Previously, a "0" would display if only the time was selected. (10.5.2.7)' ) ); ?></li>
537 + <li><strong><?php echo( 'Continue where you were working.' ); ?></strong> <?php echo( 'When possible, switching modes keeps the current Booking Calendar page and section, with a safe destination used when the equivalent page is unavailable.' ); ?></li>
538 + <li><strong><?php echo( 'Complete Setup in five steps.' ); ?></strong> <?php echo( 'The streamlined Setup flow now finishes in Form Builder, and the overlapping floating Setup Bar is disabled by default.' ); ?></li>
365 539 </ul>
366 540 </div>
367 541 </div>
368 - <?php */ ?>
369 - </div><?php
370 - // </editor-fold>
371 542
372 -
373 - $obj->expand_section_end( $section_param_arr );
543 + </div>
544 + <?php
545 + $obj->expand_section_end( $section_parameters );
374 546 }
375 547
376 -function wpbc_welcome_section_10_7( $obj ){
548 +/**
549 + * What's New section for Booking Calendar 11.7.
550 + *
551 + * @param object $obj Welcome-page renderer.
552 + *
553 + * @return void
554 + */
555 +function wpbc_welcome_section_11_7( $obj ) {
377 556
378 - $section_param_arr = array( 'version_num' => '10.7', 'show_expand' => !false );
557 + $section_param_arr = array( 'version_num' => '11.7', 'show_expand' => true );
558 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
559 + $prices_inspector_sections = array(
560 + array(
561 + 'title' => 'Base Cost',
562 + 'image' => '11.7/wp_booking_calendar__prices_catalog_base_cost_placeholder.png',
563 + 'alt' => 'Prices inspector showing the Base Cost editor with a decimal amount and synchronized slider',
564 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
565 + 'purpose' => 'Use Base Cost to define the normal starting price for this Resource before date, duration, deposit, and booking-time adjustments are applied.',
566 + 'description' => 'Enter an exact Resource price, including decimals, or use the synchronized slider. The inspector also shows the owner currency and charging period that control how the value is understood.',
567 + ),
568 + array(
569 + 'title' => 'Seasonal Rates',
570 + 'image' => '11.7/wp_booking_calendar__prices_catalog_seasonal_rates_placeholder.png',
571 + 'alt' => 'Prices inspector showing ordered Seasonal Rates with On and Off controls',
572 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
573 + 'purpose' => 'Use Seasonal Rates when the same Resource should cost more or less on holidays, weekends, high seasons, or other reusable date periods.',
574 + 'description' => 'Add fixed or percentage Seasonal Rates, switch saved rates On or Off without losing their settings, search authorized Seasons, and control evaluation order with drag or keyboard actions.',
575 + ),
576 + array(
577 + 'title' => 'Duration-Based Costs',
578 + 'image' => '11.7/wp_booking_calendar__prices_catalog_duration_costs_placeholder.png',
579 + 'alt' => 'Prices inspector showing ordered Duration-Based Cost rules and a separate LAST-day value',
580 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
581 + 'purpose' => 'Use Duration-Based Costs when the price should change according to how many days a customer books.',
582 + 'description' => 'Build ordered From, For, Together, and LAST rules with fixed, percentage, or added amounts. Optional Season conditions, synchronized controls, and separate LAST-day previews make each rule easier to understand.',
583 + ),
584 + array(
585 + 'title' => 'Partial Payment',
586 + 'image' => '11.7/wp_booking_calendar__prices_catalog_partial_payment_placeholder.png',
587 + 'alt' => 'Prices inspector showing a Partial Payment preview with due-now and balance amounts',
588 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
589 + 'purpose' => 'Use Partial Payment when customers should pay a deposit at booking and the remaining balance later instead of paying the full total immediately.',
590 + 'description' => 'Configure a percentage or fixed deposit with optional lead-time and Season conditions. The live preview separates the configured value from the amount currently due and shows the remaining balance and calculation basis.',
591 + ),
592 + array(
593 + 'title' => 'Early Booking Adjustment',
594 + 'image' => '11.7/wp_booking_calendar__prices_catalog_early_booking_placeholder.png',
595 + 'alt' => 'Prices inspector showing an Early Booking discount preview and qualifying date range',
596 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
597 + 'purpose' => 'Use Early Booking Adjustment to encourage advance reservations by reducing the price when check-in is sufficiently far away.',
598 + 'description' => 'Offer fixed or percentage reductions for sufficiently early check-ins. The date ruler shows site today, the inclusive threshold, the selected check-in, and whether the authorized Season condition applies.',
599 + ),
600 + array(
601 + 'title' => 'Late Booking Adjustment',
602 + 'image' => '11.7/wp_booking_calendar__prices_catalog_last_minute_placeholder.png',
603 + 'alt' => 'Prices inspector showing a Last-Minute discount preview and near-term qualifying date range',
604 + 'minimum_edition' => 'Booking Calendar Business Medium or higher.',
605 + 'purpose' => 'Use Late Booking Adjustment to help fill near-term availability by reducing the price for check-ins inside a short booking window.',
606 + 'description' => 'Offer fixed or percentage reductions for near-term check-ins. The preview clearly shows the inverse date range and exclusive boundary, while saving this section leaves Early Booking settings unchanged.',
607 + ),
608 + );
379 609
380 610 $obj->expand_section_start( $section_param_arr );
381 -
382 -
383 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
384 -
385 -
386 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
387 - // -----------------------------------------------------------------------------------------------------------------
388 - // = F R E E =
389 - // -----------------------------------------------------------------------------------------------------------------
390 - ?><div class="wpbc_wn_container">
611 + ?>
612 + <div class="wpbc_wn_container">
391 613 <div class="wpbc_wn_section">
392 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
393 - <div class="wpbc_wn_col">
394 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Setup Wizard for Quick & Easy Configuration!' ) ); ?></h3>
395 - <ul>
396 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Our new Setup Wizard makes it simple to get started with the Booking Calendar plugin! With an intuitive, step-by-step flow, this wizard guides you through essential settings, including booking type selection, calendar appearance, availability preferences, and more.' ) ); ?></li>
397 - </ul>
614 + <h2><?php echo 'A New Prices Catalog'; ?></h2>
615 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
616 + <?php // Replace this placeholder with the final 11.7 Prices Catalog screenshot before release. ?>
617 + <img
618 + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__prices_catalog_overview_placeholder.png' ) ); ?>"
619 + alt="<?php echo 'Prices Catalog showing Resource pricing summaries, previews, filters, layouts, and the right-side inspector'; ?>"
620 + style="margin:10px 0;width:98%;"
621 + />
398 622 </div>
399 - </div>
400 - </div>
401 - <div class="wpbc_wn_container">
402 - <div class="wpbc_wn_section">
403 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
404 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
405 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Time Appointments - Quick Initial Setup' ) ); ?></h3>
623 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
624 + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Business Medium or higher.'; ?></p>
625 + <p><strong><?php echo 'Why use it:'; ?></strong> <?php echo 'Use the Prices Catalog to review and manage all Resource-owned pricing rules from one page instead of opening several separate pricing screens.'; ?></p>
406 626 <ul>
407 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Configure your **appointment booking system** in under 2.5 minutes. The guided setup process makes it quick and easy to get your system ready for handling time-based appointments.' ) ); ?></li>
627 + <li><?php echo 'Manage Resource pricing from the familiar Booking Calendar > Prices page with search, filtering, sorting, paging, layouts, customizable columns, and clear pricing previews.'; ?></li>
628 + <li><?php echo 'Expand a Resource to open direct links for Base Cost, Seasonal Rates, Duration-Based Costs, Partial Payment, Early Booking, and Last-Minute adjustments, together with owner Pricing context and authorized external settings.'; ?></li>
629 + <li><?php echo 'The right-side inspector keeps each pricing area focused, validates current authorized values before saving, and protects changes made by another request.'; ?></li>
630 + <li><?php echo 'Need more time before switching? Enable Use legacy catalog pages to temporarily restore the previous Prices listing without migrating or resetting pricing data.'; ?></li>
631 + <li><?php echo 'Catalog previews cover Resource-owned pricing. Booking Form option costs, coupons, taxes, payment fees, additional Resources, and other later adjustments can still change the final booking total.'; ?></li>
408 632 </ul>
409 633 </div>
410 - <div class="wpbc_wn_col">
411 - <div style="margin:0 auto;width: 560px;">
412 - <iframe width="560" height="298" src="https://www.youtube.com/embed/GYJWZJBFwXw?si=uBMpuv0fQfpjR9_O" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
413 - </div>
414 -
415 - </div>
416 634 </div>
417 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
418 - </div>
419 - <div class="wpbc_wn_container">
420 - <div class="wpbc_wn_section">
421 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
422 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
423 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Full Day Bookings - Setup Wizard' ) ); ?></h3>
424 - <ul>
425 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Easily configure Booking Calendar for full-day bookings with the new step-by-step Setup Wizard. Get your booking system ready for full day bookings.' ) ); ?></li>
426 635
427 - </ul>
428 - </div>
429 - <div class="wpbc_wn_col">
430 - <div style="margin:0 auto;width: 560px;">
431 - <iframe width="560" height="315" src="https://www.youtube.com/embed/NJ88lGD5iJ0?si=nFzlfnsPKcZHmtMB" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
636 + <?php foreach ( $prices_inspector_sections as $prices_inspector_section ) { ?>
637 + <div class="wpbc_wn_section">
638 + <h2><?php echo esc_html( $prices_inspector_section['title'] ); ?></h2>
639 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
640 + <?php // Replace this placeholder with the final 11.7 inspector screenshot before release. ?>
641 + <img
642 + src="<?php echo esc_attr( $obj->section_img_url( $prices_inspector_section['image'] ) ); ?>"
643 + alt="<?php echo esc_attr( $prices_inspector_section['alt'] ); ?>"
644 + style="margin:10px 0;width:98%;"
645 + />
432 646 </div>
433 -
434 - </div>
435 - </div>
436 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
437 - </div>
438 - <div class="wpbc_wn_container">
439 - <div class="wpbc_wn_section">
440 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
441 - <div class="wpbc_wn_col" style="flex: 1 1 33%;">
442 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Changeover Multi-Day Bookings - Setup Wizard' ) ); ?></h3>
443 - <ul>
444 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Configure multi-day bookings with specific check-in and check-out days, clearly marked with diagonal or vertical lines. Perfect for bookings that require split days.' ) ); ?></li>
445 - </ul>
446 - <span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in Business Small or higher versions.') ); ?></span><br>
447 - <span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Cost hints available in Business Medium or higher versions.') ); ?></span>
448 - </div>
449 - <div class="wpbc_wn_col">
450 - <div style="margin:0 auto;width: 560px;">
451 - <iframe width="560" height="298" src="https://www.youtube.com/embed/uCQ9JmHR8w4?si=wVdguA1rXo6DwcII" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
647 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
648 + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo esc_html( $prices_inspector_section['minimum_edition'] ); ?></p>
649 + <p><strong><?php echo 'Why use it:'; ?></strong> <?php echo esc_html( $prices_inspector_section['purpose'] ); ?></p>
650 + <p><?php echo esc_html( $prices_inspector_section['description'] ); ?></p>
452 651 </div>
453 -
454 652 </div>
455 - </div>
456 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
457 - </div>
458 - <?php
653 + <?php } ?>
459 654
460 - ?><div class="wpbc_wn_container">
461 655 <div class="wpbc_wn_section">
462 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
463 - <div class="wpbc_wn_col">
464 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Display Available Booking Slots in the Calendar!' ) ); ?></h3>
656 + <h2><?php echo 'Clearer Left Sidebar Navigation'; ?></h2>
657 + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 10px 0;">
658 + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Free. This improvement is available in every edition.'; ?></p>
659 + <p><strong><?php echo 'Why use it:'; ?></strong> <?php echo 'Use the grouped navigation to find administration pages faster and keep the current page visible in long menus.'; ?></p>
465 660 <ul>
466 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now you can display the number of available booking resources - such as slots, rooms, or items - directly in each date cell within the calendar, providing a clear view of availability at a glance.' ) ); ?></li>
661 + <li><?php echo 'The grouped left menu keeps Appointments, Services, Providers, Availability, Pricing, and Settings easier to scan while preserving the familiar WordPress administration area.'; ?></li>
662 + <li><?php echo 'Long menus automatically bring the exact current page into view, and the Minimize control now remembers and restores the visible sidebar state reliably.'; ?></li>
467 663 </ul>
468 - <span style="font-size: 0.9em;font-style: italic;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in Business Large or higher version.') ); ?></span><br>
469 664 </div>
470 - <div class="wpbc_wn_col">
471 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
472 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.7/wp_booking_calendar__availability_hint_in_day_cell_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
665 + <div class="wpbc_wn_col" style="flex: 1 1 50%;margin: 10px 0;">
666 + <?php // Replace this placeholder with the final 11.7 navigation screenshot before release. ?>
667 + <img
668 + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__left_sidebar_navigation_placeholder.png' ) ); ?>"
669 + alt="<?php echo 'Booking Calendar administration showing the grouped left sidebar navigation and selected page'; ?>"
670 + style="margin:10px 0;width:98%;"
671 + />
473 672 </div>
474 673 </div>
475 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
476 - </div>
477 - <?php
478 674
479 - // </editor-fold>
480 -/*
481 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
482 - // -----------------------------------------------------------------------------------------------------------------
483 - // = M I X E D =
484 - // -----------------------------------------------------------------------------------------------------------------
485 - ?>
486 - <div class="wpbc_wn_container">
487 675 <div class="wpbc_wn_section">
488 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
489 - </div>
490 -
491 - <div class="wpbc_wn_section">
492 - <div class="wpbc_wn_col">
493 - <ul>
494 - <?php // Free ?>
495 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Refactored Code**: We’ve refactored the code for improved efficiency and maintainability.' ) ); ?></li>
496 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Email Deliverability**: The "From" email address is now automatically set to the website\'s "Administration Email Address" for all newly activated regular users. This change helps prevent emails from being marked as spam when the user\'s email is not from the website domain. *(MultiUser)*' ) ); ?></li>
497 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Translation**. Local German translation update' ) ); ?></li>
498 - </ul>
499 - <!--
500 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
501 - <ul>
502 - <?php // Pro ?>
503 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
504 - </ul>
505 - <div style="clear:both;height:20px;"></div>
506 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
507 - <ul>
508 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
509 - </ul>
510 - -->
676 + <h2><?php echo 'More Improvements in 11.7'; ?></h2>
677 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
678 + <?php // Replace these placeholders with the final 11.7 Cost correction screenshots before release. ?>
679 + <img
680 + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__add_booking_cost_correction_placeholder.png' ) ); ?>"
681 + alt="<?php echo 'Add Booking inspector showing the Cost correction number and slider controls'; ?>"
682 + style="margin:10px 0;width:98%;"
683 + />
511 684 </div>
512 -
513 - </div>
514 - <div class="wpbc_wn_section">
515 - <div class="wpbc_wn_col">
516 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
685 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
686 + <p><strong><?php echo 'Minimum edition for Cost correction:'; ?></strong> <?php echo 'Booking Calendar Business Small or higher.'; ?></p>
687 + <p><strong><?php echo 'Why use it:'; ?></strong> <?php echo 'Use Cost correction when an administrator needs to replace the automatically calculated total for one manually created Booking or Appointment.'; ?></p>
517 688 <ul>
518 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Calendar Behavior**: We’ve removed the highlighting of days in the calendar when the mouse cursor moves outside the calendar container for a smoother user experience. (10.5.2.4)' ) ); ?></li>
519 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Timeline Navigation**: We’ve fixed an issue where the dropdown list would auto-close after selecting the start date in the navigation panel on the Timeline view. (10.5.2.1)' ) ); ?></li>
520 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Page Workflow**: Notice messages from other plugins are now hidden in the header on Booking Calendar pages. This prevents interruptions to the normal workflow caused by messages from other plugins. (10.5.2.2)' ) ); ?></li>
521 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Start Time Validation**: We’ve added a fix to check the start time and prevent the selection of times that have already passed for today. (10.5.2.3)' ) ); ?></li>
522 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
523 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Submit Button Color Issue Resolved**: We’ve fixed an issue where the color of the "Send" button wasn’t saving correctly after a second click on dates, when the range dates selection mode was enabled. (10.5.2.3)' ) ); ?></li>
524 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Date/Time Hints Display**: Resolved an issue where date/time hints were not showing in the booking form if no date was selected. Previously, a "0" would display if only the time was selected. (10.5.2.7)' ) ); ?></li>
689 + <li><?php echo 'Optionally set an exact final total while adding a Booking or Appointment. Leave the field empty to keep normal automatic pricing.'; ?></li>
690 + <li><?php echo 'Applied Cost corrections continue through the established deposit, balance, notification, and cost-note workflow.'; ?></li>
691 + <li><?php echo 'All editions: Full Screen preferences now remain consistent between Booking Calendar pages, including WordPress installations in subdirectories.'; ?></li>
692 + <li><?php echo 'All editions: Form Builder Select fields now keep Value different from label turned off after saving and continue synchronizing option values with their labels.'; ?></li>
693 + <li><?php echo 'Business Medium and higher: Prices Catalog editing keeps Changed indicators compact, and inspector actions retain readable icon spacing in left-to-right and right-to-left layouts.'; ?></li>
525 694 </ul>
526 695 </div>
527 696 </div>
528 -
529 - </div><?php
530 - // </editor-fold>
531 -
532 -*/
697 + </div>
698 + <?php
533 699 $obj->expand_section_end( $section_param_arr );
534 700 }
535 701
536 -function wpbc_welcome_section_10_6( $obj ){
702 +/**
703 + * What's New section for Booking Calendar 11.6.
704 + *
705 + * @param object $obj Welcome-page renderer.
706 + *
707 + * @return void
708 + */
709 +function wpbc_welcome_section_11_6( $obj ) {
710 + $section_param_arr = array( 'version_num' => '11.6', 'show_expand' => true );
537 711
538 - $section_param_arr = array( 'version_num' => '10.6', 'show_expand' => true );
539 -
540 712 $obj->expand_section_start( $section_param_arr );
541 713
714 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
715 + ?>
716 + <div class="wpbc_wn_container">
542 717
543 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
718 + <div class="wpbc_wn_section">
719 + <h2><?php echo 'A New Booking Resources Catalog'; ?></h2>
544 720
721 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
722 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
723 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__booking_resources_catalog_placeholder.png' ) ); ?>" alt="<?php echo 'New Booking Resources catalog'; ?>" style="margin:10px 0;width:98%;" />
724 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This screenshot demonstrates some features available exclusively in the Pro versions (including price, capacity, ...)</div>
725 + </div>
545 726
546 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
547 - // -----------------------------------------------------------------------------------------------------------------
548 - // = F R E E =
549 - // -----------------------------------------------------------------------------------------------------------------
550 - ?><div class="wpbc_wn_container">
551 - <div class="wpbc_wn_section">
552 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
553 - <div class="wpbc_wn_col">
554 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Structured Settings Dashboard!' ) ); ?></h3>
727 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
555 728 <ul>
556 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Structured Settings Dashboard**: We’ve introduced a new, organized settings dashboard with brief descriptions for each feature. This update makes it easier to find and configure the settings you\'re looking for.' ) ); ?></li>
729 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Find and organize Booking Resources faster with **search, filtering, sorting, pagination, saved views, and customizable columns**.' ) ); ?></li>
730 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Choose the **Default, Compact, or Cards layout** while keeping the same Resource information and management tools.' ) ); ?></li>
731 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Use responsive, keyboard-friendly controls with improved mobile, RTL, wide-table, and shortened-text handling.' ) ); ?></li>
557 732 </ul>
558 733 </div>
559 - <div class="wpbc_wn_col">
560 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
561 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.6/wp_booking_calendar_settings_dashboard_04.png' ) ); ?>" style="margin:10px 0;width:98%;" />
562 - </div>
563 734 </div>
564 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
565 - </div>
566 - <?php
567 735
568 - // </editor-fold>
569 -
570 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
571 - // -----------------------------------------------------------------------------------------------------------------
572 - // = M I X E D =
573 - // -----------------------------------------------------------------------------------------------------------------
574 - ?>
575 - <div class="wpbc_wn_container">
576 736 <div class="wpbc_wn_section">
577 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
578 - </div>
737 + <h2><?php echo( 'A Native Seasons Catalog' ); ?></h2>
579 738
580 - <div class="wpbc_wn_section">
581 - <div class="wpbc_wn_col">
582 - <ul>
583 - <?php // Free ?>
584 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Refactored Code**: We’ve refactored the code for improved efficiency and maintainability.' ) ); ?></li>
585 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Email Deliverability**: The "From" email address is now automatically set to the website\'s "Administration Email Address" for all newly activated regular users. This change helps prevent emails from being marked as spam when the user\'s email is not from the website domain. *(MultiUser)*' ) ); ?></li>
586 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Translation**. Local German translation update' ) ); ?></li>
587 - </ul>
588 - <!--
589 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
590 - <ul>
591 - <?php // Pro ?>
592 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
593 - </ul>
594 - <div style="clear:both;height:20px;"></div>
595 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
596 - <ul>
597 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
598 - </ul>
599 - -->
739 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
740 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
741 + <img
742 + src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__seasons_02.png' ) ); ?>"
743 + alt="<?php echo( 'Seasons catalog showing reusable date rules and their usage' ); ?>"
744 + style="margin:10px 0;width:98%;"
745 + />
600 746 </div>
601 747
602 - </div>
603 - <div class="wpbc_wn_section">
604 - <div class="wpbc_wn_col">
605 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
748 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
606 749 <ul>
607 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Calendar Behavior**: We’ve removed the highlighting of days in the calendar when the mouse cursor moves outside the calendar container for a smoother user experience. (10.5.2.4)' ) ); ?></li>
608 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Timeline Navigation**: We’ve fixed an issue where the dropdown list would auto-close after selecting the start date in the navigation panel on the Timeline view. (10.5.2.1)' ) ); ?></li>
609 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Page Workflow**: Notice messages from other plugins are now hidden in the header on Booking Calendar pages. This prevents interruptions to the normal workflow caused by messages from other plugins. (10.5.2.2)' ) ); ?></li>
610 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Start Time Validation**: We’ve added a fix to check the start time and prevent the selection of times that have already passed for today. (10.5.2.3)' ) ); ?></li>
611 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
612 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Submit Button Color Issue Resolved**: We’ve fixed an issue where the color of the "Send" button wasn’t saving correctly after a second click on dates, when the range dates selection mode was enabled. (10.5.2.3)' ) ); ?></li>
613 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Date/Time Hints Display**: Resolved an issue where date/time hints were not showing in the booking form if no date was selected. Previously, a "0" would display if only the time was selected. (10.5.2.7)' ) ); ?></li>
750 + <li><?php echo( 'Business Medium and higher editions can search, filter, sort, and paginate Seasons in Default, Compact, or Cards layouts with customizable columns and site-local preferences.' ); ?></li>
751 + <li><?php echo( 'Create and edit Conditional or Specific-date Seasons in a native right-side inspector with guided controls, color selection, a live twelve-month preview, and the standard Booking Calendar datepicker.' ); ?></li>
752 + <li><?php echo( 'Select Seasons and review server-approved safe title changes inline or in bulk before applying them.' ); ?></li>
753 + <li><?php echo( 'Review single or bulk deletion impact, follow authorized links to affected configuration, and keep referenced Seasons protected without silently rewriting related settings.' ); ?></li>
754 + <li><?php echo( 'Open the reusable Seasons catalog from its dedicated Booking Calendar navigation group between Availability and Pricing; Season Availability remains under Availability, while legacy Season editors remain available through the rollback setting.' ); ?></li>
614 755 </ul>
615 756 </div>
616 757 </div>
617 758
618 - </div><?php
619 - // </editor-fold>
759 + <div class="wpbc_wn_section">
760 + <h2><?php echo 'Richer Resource Profiles and Publishing'; ?></h2>
620 761
762 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
763 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
764 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__resource_profiles_and_publishing_placeholder.png' ) ); ?>" alt="<?php echo 'Booking Resource profile and publishing tools'; ?>" style="margin:10px 0;width:98%;" />
765 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This screenshot demonstrates some features available exclusively in the Pro versions (including price, ...)</div>
766 + </div>
621 767
622 - $obj->expand_section_end( $section_param_arr );
623 -}
624 -
625 -function wpbc_welcome_section_10_5( $obj ){
626 -
627 - $section_param_arr = array( 'version_num' => '10.5', 'show_expand' => true );
628 -
629 - $obj->expand_section_start( $section_param_arr );
630 -
631 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
632 -
633 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
634 - // -----------------------------------------------------------------------------------------------------------------
635 - // = F R E E =
636 - // -----------------------------------------------------------------------------------------------------------------
637 - ?><div class="wpbc_wn_container">
638 - <div class="wpbc_wn_section">
639 -<!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
640 - <div class="wpbc_wn_col">
641 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Added New Modern Calendar Themes featuring rounded day cells' ) ); ?></h3>
768 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
642 769 <ul>
643 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing a Fresh Calendar Color Skin! We\'ve added the new \'24_9__light\' skin featuring rounded day cells for a modern and sleek look.' ) ); ?></li>
644 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fresh Color Scheme! We\'ve added the "24_9__light_square_1" color scheme for the "24_9__light" Calendar Skin, giving your calendar a stylish new look with square rounded day cells.' ) ); ?></li>
645 - <!--li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fresh Color Scheme! We\'ve added the "24_9__light_violet_1" color scheme for the "24_9__light" Calendar Skin, giving your calendar a stylish new look.' ) ); ?></li-->
770 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Add a recognizable **title, photo, and description** to each Booking Resource.' ) ); ?></li>
771 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Review booking, publishing, pricing, structure, ownership, and availability information without leaving the catalog.' ) ); ?></li>
772 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Free version users can edit and publish the included Booking Resource directly from the catalog.' ) ); ?></li>
646 773 </ul>
647 774 </div>
648 - <div class="wpbc_wn_col">
649 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
650 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__appointments__bookings_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
651 - <div style="font-size:10px;text-align: center">Image from paid versions of Booking Calendar</div>
652 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
653 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__changeover_days__bookings_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
654 - <div style="font-size:10px;text-align: center">Image from paid versions of Booking Calendar</div>
655 - </div>
656 775 </div>
657 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
658 - </div>
659 - <?php
660 776
661 - ?><div class="wpbc_wn_container">
662 777 <div class="wpbc_wn_section">
663 - <div class="wpbc_wn_col">
664 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Flexible Customization of Calendars' ) ); ?></h3>
778 + <h2><?php echo 'New Resource Catalog Layouts for Booking Pages'; ?></h2>
779 +
780 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
781 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
782 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__frontend_resource_catalog_placeholder_01.png' ) ); ?>" alt="<?php echo 'Responsive Booking Resource Catalog layouts'; ?>" style="margin:10px 0;width:98%;" />
783 + </div>
784 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
785 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
786 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__frontend_resource_catalog_placeholder_02.png' ) ); ?>" alt="<?php echo 'Responsive Booking Resource Catalog layouts'; ?>" style="margin:10px 0;width:98%;" />
787 + </div>
788 + <div style="text-align: center;font-style: italic;font-size: 0.9em; margin: 0 auto;">These screenshots demonstrates some features available exclusively in the Pro versions.</div>
789 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
665 790 <ul>
666 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Easy Configuration of Calendar Skin Parameters! Now you can easily customize your calendar skin using CSS parameter variables, including day cell radius, various colors, and other settings. This feature allows you to create your custom calendar skin quickly and efficiently.' ) ); ?></li>
791 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Transform the **[booking_resource_selector]** shortcode into a visual, searchable **Resource Catalog** for your booking pages.' ) ); ?></li>
792 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Choose a responsive **Grid or List layout** that adapts to desktop, tablet, and mobile screens.' ) ); ?></li>
793 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Configure Resource images, descriptions, hierarchy, availability, and price summaries to help customers compare their options.' ) ); ?></li>
794 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Customers can search the catalog and select the right Resource before its native booking calendar and form open on the same page.' ) ); ?></li>
667 795 </ul>
668 796 </div>
669 - <div class="wpbc_wn_col">
670 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
671 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__calendar_skins_setup_02.gif' ) ); ?>" style="margin:10px 0;width:auto;max-height: 280px;" />
672 - </div>
673 797 </div>
674 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
675 - </div>
676 - <?php
677 798
678 - ?><div class="wpbc_wn_container">
679 799 <div class="wpbc_wn_section">
680 - <div class="wpbc_wn_col">
681 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Dark Calendar Theme' ) ); ?></h3>
800 + <h2><?php echo 'A More Flexible Services Catalog'; ?></h2>
801 +
802 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
803 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
804 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__services_catalog_placeholder.png' ) ); ?>" alt="<?php echo 'Services catalog layouts and editing tools'; ?>" style="margin:10px 0;width:98%;" />
805 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This screenshot demonstrates some features available exclusively in the Pro versions (including price, ...)</div>
806 + </div>
807 +
808 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
682 809 <ul>
683 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing a Dark Calendar Theme! We\'ve added a new dark calendar theme based on the \'24_9__light\' skin, featuring rounded day cells for a sleek and modern look.' ) ); ?></li>
810 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Manage Services in responsive **Default, Compact, or Cards layouts**, with search, Provider filtering, sorting, and customizable columns.' ) ); ?></li>
811 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Select Services, edit current server-approved fields inline or in reviewed bulk changes, or use the **right-side Service editor** without leaving the catalog.' ) ); ?></li>
812 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Review changes in the same clear **before-and-after cards** used by Booking Resources and Seasons before applying them.' ) ); ?></li>
813 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Permanently delete unreferenced Services through a reviewed impact and confirmation step; protected Services provide authorized links to affected Appointments or saved Appointment pages.' ) ); ?></li>
684 814 </ul>
685 815 </div>
686 - <div class="wpbc_wn_col">
687 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
688 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__dark_theme1.png' ) ); ?>" style="margin:10px 0;width:auto;max-height: 300px;" />
689 - </div>
690 816 </div>
691 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
692 - </div>
693 - <?php
694 817
695 - ?><div class="wpbc_wn_container">
696 818 <div class="wpbc_wn_section">
697 - <div class="wpbc_wn_col">
698 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Updated Booking Form Fields Setup' ) ); ?></h3>
699 - <ul>
700 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Booking Form Fields UI! We\'ve revamped the interface for setting up booking form fields, with refactored code and updated UI elements. The new design is cleaner and more intuitive, providing a smoother user experience.' ) ); ?></li>
701 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We\'ve added new field blocks for the Calendar, Captcha, and Send button. You can now organize the order of these fields in the booking form and customize their labels or titles to suit your needs.' ) ); ?></li>
702 - </ul>
819 + <h2><?php echo 'Faster and Safer Resource Management'; ?></h2>
820 +
821 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
822 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
823 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__resource_management_placeholder.png' ) ); ?>" alt="<?php echo 'Booking Resource editing and review workflow'; ?>" style="margin:10px 0;width:98%;" />
824 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This screenshot demonstrates some features available exclusively in the Pro versions (including price, ...)</div>
703 825 </div>
704 - <div class="wpbc_wn_col">
705 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
706 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__simple_forms__setup_03.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
707 - </div>
708 - </div>
709 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
710 - </div>
711 - <?php
712 826
713 - ?><div class="wpbc_wn_container">
714 - <div class="wpbc_wn_section">
715 - <div class="wpbc_wn_col">
716 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Dashboard Statistic Options' ) ); ?></h3>
827 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
717 828 <ul>
718 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'We\'ve added new statistic options to the Dashboard Agenda, including:' ) ); ?></li>
719 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Check in - Today' ) ); ?></li>
720 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Check out - Today' ) ); ?></li>
721 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Check in - Tomorrow' ) ); ?></li>
722 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Check out - Tomorrow' ) ); ?></li>
829 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Select rows, edit safe fields inline, or use the **right-side Resource editor** while staying in the catalog.' ) ); ?></li>
830 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Paid versions add guided single or batch creation and reviewed bulk changes for the fields available in each edition.' ) ); ?></li>
831 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Preview important changes in consistent **before-and-after cards** before applying them, with server-side permission, ownership, edition, and stale-review checks.' ) ); ?></li>
832 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Reviewed deletion warns about existing bookings, links authorized users to the affected records, and protects parent and child Resource relationships.' ) ); ?></li>
723 833 </ul>
724 834 </div>
725 - <div class="wpbc_wn_col">
726 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
727 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__dashboard_statistic.png' ) ); ?>" style="margin:10px 0;width:98%;" />
728 - </div>
729 835 </div>
730 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
731 - </div>
732 - <?php
733 836
734 - ?><div class="wpbc_wn_container">
735 837 <div class="wpbc_wn_section">
736 - <div class="wpbc_wn_col">
737 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Timeline View' ) ); ?></h3>
738 - <ul>
739 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Multiple time slot bookings in the admin panel are now displayed with a small margin, offering a clearer and more organized layout.' ) ); ?></li>
740 - </ul>
838 + <h2><?php echo 'Hierarchy and Capacity Tools (Business Large and Higher Editions)'; ?></h2>
839 +
840 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
841 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
842 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__hierarchy_and_capacity_placeholder_02.png' ) ); ?>" alt="<?php echo 'Booking Resource hierarchy and capacity tools'; ?>" style="margin:10px 0;width:98%;" />
741 843 </div>
742 - <div class="wpbc_wn_col">
743 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
744 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__timeline_week_view_one_resource.png' ) ); ?>" style="margin:10px 0;width:98%;" />
844 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
845 + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?>
846 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__hierarchy_and_capacity_placeholder_03.png' ) ); ?>" alt="<?php echo 'Booking Resource hierarchy and capacity tools'; ?>" style="margin:10px 0;width:98%;" />
745 847 </div>
746 - </div>
747 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
748 - </div>
749 - <?php
750 848
751 - ?><div class="wpbc_wn_container">
752 - <div class="wpbc_wn_section">
753 - <div class="wpbc_wn_col">
754 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Create and Use Multiple Custom Booking Forms in **Simple Form Setup** mode' ) ); ?></h3>
755 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
756 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.5/wp_booking_calendar__custom_forms_in_simple_form_setup_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
849 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
757 850 <ul>
758 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Create **Multiple Custom Booking Forms**! You can now create and use multiple custom booking forms while in "**Simple Form Setup**" mode. This enhancement offers a quicker and easier way for users to configure their booking forms.' ) ); ?></li>
759 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced UI for Advanced Form Mode! We\'ve updated the UI of booking forms while in "Advanced Form" mode. The code has been refactored, and toolbar UI elements have been refreshed for a smoother setup experience.' ) ); ?></li>
760 - <li style="font-size:0.9em;"><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Ths feature available in the Business Medium or higher versions.' ) ); ?></li>
851 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Manage parent and child Booking Resources in expandable groups that stay together while searching, sorting, and changing pages.' ) ); ?></li>
852 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Adjust capacity** by creating inherited child Resources or by reviewing which children become independent or are permanently deleted.' ) ); ?></li>
853 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Capacity now represents the parent calendar and its child Resource calendars instead of the Maximum visitors setting.' ) ); ?></li>
761 854 </ul>
762 855 </div>
763 856 </div>
764 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
765 857 </div>
766 858 <?php
859 + $obj->expand_section_end( $section_param_arr );
860 +}
767 861
862 +/**
863 + * What's New section for Booking Calendar 11.5.
864 + *
865 + * @param object $obj Welcome-page renderer.
866 + *
867 + * @return void
868 + */
869 +function wpbc_welcome_section_11_5( $obj ) {
870 + $section_param_arr = array( 'version_num' => '11.5', 'show_expand' => !false );
871 + // Keep empty image slots out of the markup until final 11.5 screenshots are available.
872 + $image_urls = array(
873 + 'appointment_booking' => '',
874 + 'appointment_admin' => '',
875 + 'add_booking' => '',
876 + 'form_appearance' => '',
877 + 'compatibility' => '',
878 + );
768 879
880 + $obj->expand_section_start( $section_param_arr );
769 881
770 - // </editor-fold>
771 -if (1){
772 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
773 - // -----------------------------------------------------------------------------------------------------------------
774 - // = M I X E D =
775 - // -----------------------------------------------------------------------------------------------------------------
882 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
776 883 ?>
777 884 <div class="wpbc_wn_container">
885 +
778 886 <div class="wpbc_wn_section">
779 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
780 - </div>
887 + <h2><?php echo 'Services and the New Appointment Booking Flow'; ?></h2>
781 888
782 - <div class="wpbc_wn_section">
783 - <div class="wpbc_wn_col">
889 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
890 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__services_and_appointments_2.png' ) ); ?>" style="margin:10px 0;width:98%;" />
891 + </div>
892 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
784 893 <ul>
785 - <?php // Free ?>
786 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Under the Hood: New Hook Added! We\'ve introduced a new hook that triggers after showing cost/dates hints. You can bind this event using the following JavaScript:' ) ); ?></li>
787 - <li><code>jQuery(".booking_form_div").on('after_show_cost_hints', function(event, resource_id) {
788 - // Your code here
789 -});</code></li>
894 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW Services catalogue**: Create Services with a picture, description, duration, buffers, price, status, Booking Form, and compatible Providers.' ) ); ?></li>
895 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Clear Provider overview**: Search and sort Services, review assigned Providers and weekly availability, and open the relevant availability settings directly.' ) ); ?></li>
790 896 </ul>
791 - <!--
792 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
897 + </div>
898 +
899 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
900 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/booking_calendar__appointment_flow_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
901 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This video demonstrates features available in the Business Small and higher editions, including multiple providers, payments, and booking costs.</div>
902 + </div>
903 +
904 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
793 905 <ul>
794 - <?php // Pro ?>
795 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
906 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW [booking_appointment] shortcode**: Customers choose a Service and compatible Provider before the native calendar and Booking Form load on the same page with AJAX.' ) ); ?></li>
907 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; A new **Start Over** field in the Booking Form Builder lets customers restart the Appointment flow without reloading the page.' ) ); ?></li>
908 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; A new **Appointments and Services Flow** template and **Weekday Start Time** field provide an Appointment-ready Form Builder starting point.' ) ); ?></li>
909 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Reliable scheduling**: Service duration, buffers, and Provider-specific overrides are checked on the server before an Appointment is saved.' ) ); ?></li>
796 910 </ul>
797 - <div style="clear:both;height:20px;"></div>
798 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
911 + </div>
912 + </div>
913 +
914 + <div class="wpbc_wn_section">
915 + <h2><?php echo 'Administration Modes and QuickStart'; ?></h2>
916 +
917 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
918 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__booking_modes_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
919 + </div>
920 +
921 + <div class="wpbc_wn_col" style="flex: 1 1 100%;">
922 +
799 923 <ul>
800 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
924 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Choose **Classic**, **Appointments**, or **Rentals** to use familiar terminology and focused navigation without changing existing bookings, resources, availability, or page URLs.' ) ); ?></li>
925 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Mode selection is stored for the active Booking Calendar owner, including supported MultiUser owner contexts.' ) ); ?></li>
926 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Explicit **Appointment QuickStart** and **Rental QuickStart** actions can reuse or prepare the minimum booking page setup and remain safe to run again.' ) ); ?></li>
927 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The **mode-aware Setup Wizard** follows the selected booking profile through the relevant Service, Provider, form, availability, appearance, publish, and test-page steps.' ) ); ?></li>
801 928 </ul>
802 - -->
803 929 </div>
930 + </div>
804 931
805 - </div>
806 932 <div class="wpbc_wn_section">
807 - <div class="wpbc_wn_col">
808 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
933 + <h2><?php echo 'Resource-first Booking Flow'; ?> ( Pro Versions)</h2>
934 +
935 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
936 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__resources_selector_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
937 + <div style="text-align: center;font-style: italic;font-size: 0.9em;">This video demonstrates features available in the Pro versions, including payments, and booking costs in BS+ versions.</div>
938 + </div>
939 +
940 + <div class="wpbc_wn_col" style="flex: 1 1 100%;">
809 941 <ul>
810 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved Compatibility Issue! We\'ve fixed a potential issue that could occur when downgrading from the Paid to the Free version while using the \'Range Days\' selection mode, which is not supported in the Free version.' ) ); ?></li>
942 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The new **[booking_resource_selector] shortcode** lets visitors choose a permitted Booking Resource before its native calendar and Booking Form load on the same page.' ) ); ?></li>
943 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Restrict, preselect, or optionally auto-open Resources from the shortcode popup or WordPress block, while retaining Start Over and the established availability, pricing, payment, and booking engines.' ) ); ?></li>
811 944 </ul>
812 945 </div>
813 946 </div>
814 947
815 - </div><?php
816 - // </editor-fold>
817 -}
948 + <div class="wpbc_wn_section" style="gap:1%">
949 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
950 + <h3><?php echo 'Appointment Administration'; ?></h3>
818 951
819 - $obj->expand_section_end( $section_param_arr );
820 -}
952 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding:5px;">
953 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__appointment_administration_3.png' ) ); ?>" style="margin:10px 0;width:98%;" />
954 + </div>
821 955
822 -function wpbc_welcome_section_10_4( $obj ){
956 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
957 + <?php if ( ! empty( $image_urls['appointment_admin'] ) ) { ?>
958 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
959 + <img src="<?php echo esc_url( $image_urls['appointment_admin'] ); ?>" alt="<?php echo 'Appointment administration'; ?>" style="margin:10px 0;width:98%;" />
960 + <?php } ?>
961 + </div>
823 962
824 - $section_param_arr = array( 'version_num' => '10.4', 'show_expand' => !false );
963 + <ul>
964 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW Add Appointment page**: Create an Appointment through the same Service-first flow from a focused admin canvas with contextual inspector panels.' ) ); ?></li>
965 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Filter the Booking Listing by **Services and Providers** using reusable searchable multi-select controls.' ) ); ?></li>
966 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Appointment details, Service and Provider snapshots, duration, buffers, and blocked time are available in administration details and supported outputs.' ) ); ?></li>
967 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Providers remain existing **Booking Resources**, preserving established availability, permissions, and ownership behavior.' ) ); ?></li>
968 + </ul>
969 + </div>
825 970
826 - $obj->expand_section_start( $section_param_arr );
971 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
972 + <h3><?php echo 'Redesigned Add Booking Page'; ?></h3>
827 973
974 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding:5px;">
975 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__add_booking_page_3.png' ) ); ?>" style="margin:10px 0;width:98%;" />
976 + </div>
828 977
829 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
978 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
979 + <?php if ( ! empty( $image_urls['add_booking'] ) ) { ?>
980 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
981 + <img src="<?php echo esc_url( $image_urls['add_booking'] ); ?>" alt="<?php echo 'Redesigned Add Booking administration page'; ?>" style="margin:10px 0;width:98%;" />
982 + <?php } ?>
983 + </div>
830 984
831 -
832 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
833 - // -----------------------------------------------------------------------------------------------------------------
834 - // = F R E E =
835 - // -----------------------------------------------------------------------------------------------------------------
836 - ?><div class="wpbc_wn_container">
837 - <div class="wpbc_wn_section">
838 - <!-- <h2>--><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?><!--</h2>-->
839 - <div class="wpbc_wn_col">
840 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Modern Calendar Themes and More!' ) ); ?></h3>
841 985 <ul>
842 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing a Modern Calendar Skin! Try the new \'Light 24_8\' skin for a fresh, contemporary look.' ) ); ?></li>
843 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Discover 10 New Color Schemes for the \'Light 24_8\' Calendar Skin! Customize your calendar with a variety of fresh, modern color options.' ) ); ?></li>
844 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing a Modern Time Picker Skin - \'Light 24_8\'.' ) ); //sleek and contemporary look.
845 - ?></li>
986 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Focused booking canvas**: The standard Booking Form remains in the main workspace while setup and actions move into a consistent right-side inspector.' ) ); ?></li>
987 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Important actions stay visible**: Add Booking and Auto-fill Form are placed together with a concise summary of the selected Booking Resource, Booking Form, email notifications, and past-date behavior.' ) ); ?></li>
988 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Temporary Date selection override**: Administrators can switch between Single day, Multiple days, and Range days immediately without reloading the page or changing saved front-end settings.' ) ); ?></li>
846 989 </ul>
990 +
847 991 </div>
848 - <div class="wpbc_wn_col">
849 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
850 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.4/wp_booking_calendar_modern_light_time_slots_booking_08.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
851 - </div>
852 992 </div>
853 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
854 - </div>
855 - <?php
856 993
857 - ?><div class="wpbc_wn_container">
858 994 <div class="wpbc_wn_section">
859 - <div class="wpbc_wn_col">
860 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Change Over Days in New Calendar Themes!' ) ); ?></h3>
861 - <ul>
862 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Change Over Days in new calendar themes to better show split-day bookings.' ) ); ?></li>
863 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Range Days Selection! When the range days selection mode is activated, the check-in and check-out dates now have a stronger color than the middle dates. This improvement makes it clearer for customers to identify their check-in and check-out dates.' ) ); ?></li>
864 - </ul>
995 +
996 + <h2><?php echo 'Consistent Form Styles and Accent Colors'; ?></h2>
997 +
998 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
999 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.5/wp_booking_calendar__theme_and_accent_colors_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
865 1000 </div>
866 - <div class="wpbc_wn_col">
867 - <!--img src="<?php echo esc_attr( $obj->section_img_url( '10.4/wp_booking_calendar__change-over-days-bookings--split-days.png' ) ); ?>" style="margin:10px 0;width:98%;" /-->
868 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
869 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.4/wp_booking_calendar__change_over_days__split_days_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1001 +
1002 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1003 + <?php if ( ! empty( $image_urls['form_appearance'] ) ) { ?>
1004 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1005 + <img src="<?php echo esc_url( $image_urls['form_appearance'] ); ?>" alt="<?php echo 'Form Styles and accent colors'; ?>" style="margin:10px 0;width:98%;" />
1006 + <?php } ?>
870 1007 </div>
871 - </div>
872 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
873 - </div>
874 - <?php
875 -
876 - ?><div class="wpbc_wn_container">
877 - <div class="wpbc_wn_section">
878 - <div class="wpbc_wn_col">
879 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Updated Timeline Views and Booking Listing pages' ) ); ?></h3>
1008 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
880 1009 <ul>
881 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The Timeline Views and Booking Listing pages have been updated. They now feature a clearer and more sleek user interface.' ) ); ?></li>
1010 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Choose an optional **Custom accent color** for primary buttons, secondary-button hover borders, focused fields, selected choices, navigation, and compatible time slots.' ) ); ?></li>
1011 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Use **Apply accent to form elements** to copy the accent into supported editable components, with global time-picker display and style controls available in Time field inspectors.' ) ); ?></li>
1012 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The new **Automatic - Match Booking Form** time-slot style follows the selected Form Style while existing time-picker skins keep their own colors.' ) ); ?></li>
1013 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Custom button controls and unified primary, secondary, submit, and wizard styles provide consistent dimensions, borders, hover behavior, dark-theme colors, and accessible keyboard focus.' ) ); ?></li>
882 1014 </ul>
883 1015 </div>
884 - <div class="wpbc_wn_col">
885 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
886 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.4/wp_booking_calendar_timeline_view_month.png' ) ); ?>" style="margin:10px 0;width:98%;" />
887 - </div>
1016 +
888 1017 </div>
889 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
890 - </div>
891 - <?php
892 1018
893 - ?><div class="wpbc_wn_container">
894 1019 <div class="wpbc_wn_section">
895 - <div class="wpbc_wn_col">
896 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Easy Configuration and Publishing Booking Calendar shortcodes' ) ); ?></h3>
1020 + <div class="wpbc_wn_col" style="flex: 1 1 100%;">
1021 + <h3><?php echo 'Compatibility and Extensibility'; ?></h3>
1022 +
1023 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1024 + <?php if ( ! empty( $image_urls['compatibility'] ) ) { ?>
1025 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1026 + <img src="<?php echo esc_url( $image_urls['compatibility'] ); ?>" alt="<?php echo 'Booking Calendar compatibility and extensibility'; ?>" style="margin:10px 0;width:98%;" />
1027 + <?php } ?>
1028 + </div>
1029 +
897 1030 <ul>
898 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added a configuration shortcode button at WP Booking Calendar > Publish menu page. This makes it simple to configure and publish booking forms, availability calendars, or timelines into existing or new pages.' ) ); ?></li>
1031 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Existing **Booking Resources, availability, Booking Forms, pricing, payments, and bookings remain authoritative**; the Appointment experience builds on them instead of replacing them.' ) ); ?></li>
1032 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Appointment information is included in supported confirmations, emails, Booking Listing details, print views, and CSV exports.' ) ); ?></li>
1033 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Safer customer access**: Public Timeline links are scoped to the exact authorized booking and Resource; Personal and higher editions use one-time email verification for customer booking lists.' ) ); ?></li>
1034 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; New filters and hooks allow commercial editions and extensions to adapt capabilities, Service and Provider catalogues, and Appointment form routing.' ) ); ?></li>
899 1035 </ul>
900 1036 </div>
901 - <div class="wpbc_wn_col">
902 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
903 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.4/wp_booking_calendar_publish_booking_form.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
904 - </div>
905 1037 </div>
906 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
907 1038 </div>
908 1039 <?php
1040 + $obj->expand_section_end( $section_param_arr );
1041 +}
909 1042
1043 +/**
1044 + * What's New section for Booking Calendar 11.4
1045 + *
1046 + * @param object $obj
1047 + *
1048 + * @return void
1049 + */
1050 +function wpbc_welcome_section_11_4( $obj ) {
910 1051
1052 + $section_param_arr = array( 'version_num' => '11.4', 'show_expand' => true );
911 1053
912 - // </editor-fold>
913 -
914 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
915 - // -----------------------------------------------------------------------------------------------------------------
916 - // = M I X E D =
917 - // -----------------------------------------------------------------------------------------------------------------
1054 + $obj->expand_section_start( $section_param_arr );
1055 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
918 1056 ?>
919 1057 <div class="wpbc_wn_container">
1058 +
920 1059 <div class="wpbc_wn_section">
921 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1060 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Global Booking Form Styles' ) ); ?></h2>
1061 +
1062 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1063 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1064 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.4/booking_calendar__booking_form_styles.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1065 + </div>
1066 +
1067 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1068 + <ul>
1069 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added global **Booking Form Styles** with Light and Dark bordered, borderless, and soft-background presets, plus a fully configurable Custom style.' ) ); ?></li>
1070 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Complete appearance controls**: Customize form backgrounds, borders, spacing, text, fields, focus states, checkbox and radio controls, and buttons.' ) ); ?></li>
1071 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Consistent live previews**: Select and preview the same global Form Style in **Settings > Appearance / Theme** and the **Booking Form Builder**.' ) ); ?></li>
1072 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Unified front-end design**: Form styles now apply consistently across booking forms and supported payment buttons while preserving PayPal branding.' ) ); ?></li>
1073 + </ul>
1074 + </div>
922 1075 </div>
923 1076
924 1077 <div class="wpbc_wn_section">
925 - <div class="wpbc_wn_col">
1078 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Two-Click Date Range Selection' ) ); ?></h2>
1079 +
1080 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1081 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1082 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.4/booking_calendar__date_range_selection.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1083 + </div>
1084 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
926 1085 <ul>
927 - <?php // Free ?>
928 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Organized Calendar Skins! Defined groups for current and legacy calendar skins in the drop-down list on the Settings > General page in the "Calendar" section for easier navigation.' ) ); ?></li>
929 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Simplified Booking Form Setup! During the initial installation of the plugin, the default structure of the booking form is now set to \'Form at right side of calendar\'.' ) ); ?></li>
930 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Typography and Styles! Updated typography and styles for the booking resources select-box in the booking resources selection shortcode.' ) ); ?></li>
1086 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added two-click date-range selection in **Booking Calendar Free and higher editions**, allowing visitors to select the first and last booking dates.' ) ); ?></li>
1087 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Clear visual selection**: Available dates and the prospective date range are highlighted while visitors move through the calendar.' ) ); ?></li>
1088 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Better visitor guidance**: Added clearer instructions for completing a range and more useful feedback when it contains unavailable dates.' ) ); ?></li>
1089 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Faster full-day setup**: Two-click range selection is now the default when Full Day Booking mode is activated in the Setup Wizard.' ) ); ?></li>
931 1090 </ul>
932 - <!--
933 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
1091 + </div>
1092 + </div>
1093 +
1094 + <div class="wpbc_wn_section" style="gap:1%">
1095 +
1096 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1097 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Centralized Form Messages' ) ); ?></h2>
1098 +
1099 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1100 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1101 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.4/booking_calendar__form_messages.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1102 + </div>
934 1103 <ul>
935 - <?php // Pro ?>
936 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1104 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a dedicated **Form Messages** settings page for date selection notices, validation errors, submission messages, and other visitor-facing text.' ) ); ?></li>
1105 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Multilingual messages**: Customize messages with **[lang=LOCALE]** language shortcodes while keeping translated plugin defaults.' ) ); ?></li>
1106 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Simpler settings workflow**: Edit all message groups on one page, use quick section navigation, restore defaults, and save with AJAX notifications.' ) ); ?></li>
937 1107 </ul>
938 - <div style="clear:both;height:20px;"></div>
939 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
940 - <ul>
941 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
942 - </ul>
943 - -->
944 1108 </div>
945 1109
946 - </div>
947 - <div class="wpbc_wn_section">
948 - <div class="wpbc_wn_col">
949 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1110 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1111 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Streamlined Form Builder Workflow' ) ); ?></h2>
1112 +
1113 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1114 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1115 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.4/booking_calendar__form_builder_workflow.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1116 + </div>
950 1117 <ul>
951 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Accurate Preview Updates! If a custom calendar skin is used in \'/wp-content/uploads/wpbc_skins/\', the preview now correctly updates in the \'Color Theme\' section on the Settings > Booking Form page.' ) ); ?></li>
952 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
953 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Correct Availability Settings! Resolved an issue with defining availability on the WP Booking Calendar > Availability > Days Availability page, especially when booking resources were previously deleted and only one resource remains.' ) ); ?></li>
1118 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Modernized form configuration**: Removed legacy Booking Form settings pages and routed form configuration to the **Booking Form Builder**.' ) ); ?></li>
1119 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Safe legacy migration**: Existing Simple and Advanced legacy forms are imported into the Booking Form Builder during updates.' ) ); ?></li>
1120 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Setup Wizard improvement**: Added **Save and Continue** and limited visual highlighting to the settings relevant to the current setup step.' ) ); ?></li>
954 1121 </ul>
955 1122 </div>
956 1123 </div>
957 1124
958 - </div><?php
959 - // </editor-fold>
1125 + </div>
1126 + <?php
960 1127
961 -
962 1128 $obj->expand_section_end( $section_param_arr );
963 1129 }
964 1130
965 -function wpbc_welcome_section_10_3( $obj ){
1131 +/**
1132 + * What's New section for Booking Calendar 11.3
1133 + *
1134 + * @param object $obj
1135 + *
1136 + * @return void
1137 + */
1138 +function wpbc_welcome_section_11_3( $obj ) {
966 1139
967 - $section_param_arr = array( 'version_num' => '10.3', 'show_expand' => true );
1140 + $section_param_arr = array( 'version_num' => '11.3', 'show_expand' => true );
968 1141
969 1142 $obj->expand_section_start( $section_param_arr );
1143 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
1144 + ?>
1145 + <div class="wpbc_wn_container">
970 1146
1147 + <div class="wpbc_wn_section">
1148 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Calendar Settings Page' ) ); ?></h2>
971 1149
972 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
1150 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1151 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1152 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.3/booking_calendar__settings_calendar_live_preview.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1153 + </div>
973 1154
974 -
975 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
976 - // -----------------------------------------------------------------------------------------------------------------
977 - // = F R E E =
978 - // -----------------------------------------------------------------------------------------------------------------
979 - ?><div class="wpbc_wn_container">
980 - <div class="wpbc_wn_section">
981 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Calendar Overview and Timeline Views, and more...' ) ); ?></h2>
982 - <div class="wpbc_wn_col">
983 - <!--h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Updated Timeline View' ) ); ?></h3-->
1155 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
984 1156 <ul>
985 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; We have updated the Calendar Overview and Timeline views to improve readability. Timelines now have a minimum width for day/time cells, making bookings easier to read. Additionally, you can scroll horizontally to search for specific date and time intervals.' ) ); ?></li>
986 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Bookings View in Calendar Overview and Timeline! Booking bars now have a transparent background, making it easier to identify specific dates under the booking pipeline.' ) ); ?></li>
987 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Typography in Bookings View! The typography in the Calendar Overview and Timeline has been updated for a cleaner and more modern look.' ) ); ?></li>
1157 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a dedicated **Settings > Calendar** page with a live calendar preview and right-side configuration panels.' ) ); ?></li>
1158 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Days selection preview**: Configure single day, multiple days, range selection, start weekdays, and related selection rules while immediately seeing how the calendar behaves.' ) ); ?></li>
1159 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Changeover settings**: Configure check-in/check-out changeover days, diagonal or vertical markings, recurrent times, and changeover exceptions from the same visual interface.' ) ); ?></li>
1160 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Calendar legend and tooltips**: Show or hide the legend, edit legend item titles, and configure date tooltip content with instant preview updates.' ) ); ?></li>
988 1161 </ul>
989 1162 </div>
990 - <div class="wpbc_wn_col">
991 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
992 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.3/wp_booking_timeline_scroll_06.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
993 - </div>
994 1163 </div>
995 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
996 - </div>
997 - <?php
998 1164
999 - ?><div class="wpbc_wn_container">
1000 1165 <div class="wpbc_wn_section">
1001 - <div class="wpbc_wn_col">
1002 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Change Over Days in Timeline Views!' ) ); ?></h3>
1166 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Appearance / Theme Settings Page' ) ); ?></h2>
1167 +
1168 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1003 1169 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1004 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.3/wp_booking_calendar__timeline__change_over_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1170 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.3/booking_calendar__settings_theme_live_preview.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1171 + </div>
1172 +
1173 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1005 1174 <ul>
1006 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; In the pro versions, Timeline and Calendar Overview can now display change over days (triangles for check-in/out dates). This feature makes it easier to identify check-in/out dates and provides a better overview of bookings in the Timeline if your system uses the change over days functionality.' ) ); ?></li>
1175 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a dedicated **Settings > Appearance / Theme** page for configuring the calendar skin and booking form visual style.' ) ); ?></li>
1176 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Real booking form preview**: Preview the real calendar and booking form using selected resources, month count, custom forms, and preview modes.' ) ); ?></li>
1177 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Theme controls**: Switch between light and dark booking form themes, choose calendar skins, configure time picker appearance, and review the result before saving.' ) ); ?></li>
1178 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Cleaner settings experience**: Legacy Appearance / Color Theme settings were replaced with a clearer visual workflow.' ) ); ?></li>
1007 1179 </ul>
1008 1180 </div>
1009 1181 </div>
1010 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1011 - </div>
1012 - <?php
1013 1182
1183 + <div class="wpbc_wn_section" style="gap:1%">
1014 1184
1015 - // </editor-fold>
1185 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1186 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Setup Wizard Improvements' ) ); ?></h2>
1016 1187
1188 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1189 +<!-- <img src="--><?php //echo esc_attr( $obj->section_img_url( '11.3/booking_calendar__setup_wizard_calendar_flow.png' ) ); ?><!--" style="margin:10px 0;width:98%;" />-->
1017 1190
1018 - // -----------------------------------------------------------------------------------------------------------------
1019 - // = P A I D =
1020 - // -----------------------------------------------------------------------------------------------------------------
1021 -
1022 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
1023 - // -----------------------------------------------------------------------------------------------------------------
1024 - // = M I X E D =
1025 - // -----------------------------------------------------------------------------------------------------------------
1026 - ?>
1027 - <div class="wpbc_wn_container">
1028 - <div class="wpbc_wn_section">
1029 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1030 - </div>
1031 -
1032 - <div class="wpbc_wn_section">
1033 - <div class="wpbc_wn_col">
1034 1191 <ul>
1035 - <?php // Free ?>
1036 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Option to Remove Booking Summary Details in Export! Now you can choose to exclude booking summary details when exporting bookings using the "Add to Google Calendar" button. Enable this option on the WP Booking Calendar > Settings > Sync > "General" page.' ) ); ?></li>
1192 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: Setup Wizard steps now open the new Calendar and Appearance / Theme settings pages instead of older settings screens.' ) ); ?></li>
1193 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Smarter changeover setup**: Changeover workflows now include a dedicated Changeover Days step and continue through Date Availability, Color Theme, Publish, and Booking Listing.' ) ); ?></li>
1194 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Better Setup Bar positioning**: The floating Setup Bar moves to a better default top position on visual settings pages, while preserving any user-dragged position.' ) ); ?></li>
1037 1195 </ul>
1038 - <!--
1039 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
1040 - <ul>
1041 - <?php // Pro ?>
1042 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Form Times Templates! We\'ve improved the form times templates for a better user experience. *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1043 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated the View of the "Back to Super Admin" Button! When a super booking admin user simulates a login as a "Regular User," the button\'s appearance has been enhanced for clarity. (10.1.5.2) *(MultiUser)*' ) ); ?></li>
1044 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1045 - </ul>
1046 -
1047 - <div style="clear:both;height:20px;"></div>
1048 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
1049 - <ul>
1050 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
1051 - </ul>
1052 - -->
1053 1196 </div>
1054 1197
1055 - </div>
1056 -<!--
1057 - <div class="wpbc_wn_section">
1058 - <div class="wpbc_wn_col">
1198 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1199 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Resources and Admin Workflow' ) ); ?></h2>
1059 1200
1060 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1061 - <ul>
1062 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Bootstrap Icons to the latest 1.11.3 Version for enhanced visual appeal and consistency.' ) ); ?></li>
1063 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed Deprecated BS Glyph Font for a cleaner and more modern design.' ) ); ?></li>
1064 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed Deprecated wpbc_vars.js for improved performance and maintainability.' ) ); ?></li>
1065 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The option \'Using BootStrap CSS for the form fields\' has been deprecated and moved to the Settings General page in the "Advanced" section for better organization.' ) ); ?></li>
1066 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added support for the WP Rocket plugin by excluding it from JavaScript Delay execution, ensuring smoother performance.' ) ); ?></li>
1067 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
1068 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added a new hook \'wpbc_visitor_action__booking_trash\' for when visitors cancel their own booking. Example usage:: function your_cust_func_wpbc_visitor_action__booking_trash ( $booking_id, $resource_id ) { /* Your code here */ } add_action( \'wpbc_visitor_action__booking_trash\', \'your_cust_func_wpbc_visitor_action__booking_trash\', 100, 2 ) ); (10.2.0.3)' ) ); ?></li>
1069 - </ul>
1201 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1202 +<!-- <img src="--><?php //echo esc_attr( $obj->section_img_url( '11.3/booking_calendar__resources_capacity_rules.png' ) ); ?><!--" style="margin:10px 0;width:98%;" />-->
1070 1203
1071 - </div>
1072 - </div>
1073 - <div class="wpbc_wn_section">
1074 - <div class="wpbc_wn_col">
1075 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1076 1204 <ul>
1077 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fix: Displaying Greyed (Disabled) Options! Fixed an issue where greyed-out (disabled) options, such as booked time slots, were not showing correctly in select boxes. ' ) ); ?></li>
1078 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fix: Resolved Conflict with \'MIXITUP - A CSS3 and JQuery Filter & Sort Plugin\'! Fixed the issue causing the error: "Uncaught TypeError: time_fields_obj.times_as_seconds is undefined. ' ) ); ?></li>
1079 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
1080 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved Start/End Time Invalid Issue! Fixed the issue where Start/End Time was invalid in some configurations with range days selection mode and change-over days.' ) ); ?></li>
1205 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Moved capacity-related settings to **Resources > Capacity Rules**, keeping booking quantity and pending-day rules closer to resource configuration.' ) ); ?></li>
1206 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: Added a shared top path/status line across Booking Calendar admin pages for clearer navigation.' ) ); ?></li>
1207 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: Admin left sidebar and full-screen mode preferences are now saved per user, while special setup and builder workflows can still enforce their required layout.' ) ); ?></li>
1208 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fixes**: Improved Calendar preview saving, changeover rendering, legend refresh, tooltip settings, Setup Wizard routing, and Booking Listing email toggle persistence.' ) ); ?></li>
1081 1209 </ul>
1082 1210 </div>
1083 1211 </div>
1084 1212
1085 - </div><?php
1086 - // </editor-fold>
1213 + </div>
1087 1214
1215 + <?php
1088 1216
1089 1217 $obj->expand_section_end( $section_param_arr );
1090 1218 }
1091 1219
1092 -function wpbc_welcome_section_10_2( $obj ){
1220 +/**
1221 + * What's New section for Booking Calendar 11.2
1222 + *
1223 + * @param object $obj
1224 + *
1225 + * @return void
1226 + */
1227 +function wpbc_welcome_section_11_2( $obj ) {
1093 1228
1094 - $section_param_arr = array( 'version_num' => '10.2', 'show_expand' => true );
1095 1229
1230 + $section_param_arr = array( 'version_num' => '11.2', 'show_expand' => true );
1231 +
1096 1232 $obj->expand_section_start( $section_param_arr );
1233 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
1234 + ?>
1235 + <div class="wpbc_wn_container">
1097 1236
1237 + <div class="wpbc_wn_section">
1238 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Redesigned Setup Wizard' ) ); ?></h2>
1098 1239
1099 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
1100 -
1101 -
1102 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1103 - // -----------------------------------------------------------------------------------------------------------------
1104 - // = F R E E =
1105 - // -----------------------------------------------------------------------------------------------------------------
1106 - ?><div class="wpbc_wn_container">
1107 - <div class="wpbc_wn_section">
1108 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Explore Advanced Configurable Booking Confirmation, Enhanced Booking Form Typography, and more...' ) ); ?></h2>
1109 - <div class="wpbc_wn_col">
1110 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Customizable Booking Confirmation Section' ) ); ?></h3>
1111 - <ul>
1112 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Customizable Confirmation Section! Now you can configure what to display in the "Confirmation Window" after a booking is created. Enable or disable content and configure it with a list of shortcodes that will be shown in the "Personal Information" and "Booking Details" sections of the Booking Confirmation window.' ) ); ?></li>
1113 - </ul>
1240 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1114 1241 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1115 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.2/wp_booking_calendar__booking_confirmation_setup_04.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1242 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.2/booking_calendar__setup_wizard__floating_setup_bar.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1116 1243 </div>
1117 - </div>
1118 - <div class="wpbc_wn_section">
1119 - <div class="wpbc_wn_col">
1120 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Typography for Booking Forms' ) ); ?></h3>
1244 +
1245 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1121 1246 <ul>
1122 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Typography for Booking Forms! The typography for booking form elements has been updated to provide a cleaner interface and to prevent CSS conflicts with themes.' ) ); ?></li>
1247 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Redesigned the initial **Setup Wizard** with a floating **Setup Bar** that guides users through configuration directly on the relevant Booking Calendar admin pages.' ) ); ?></li>
1248 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Step-by-step setup flow**: After choosing the booking type, the wizard opens the exact settings pages needed for form setup, date selection, availability, working time, color theme, and publishing.' ) ); ?></li>
1249 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Context-aware guidance**: The Setup Bar shows the current step, progress, Back / Continue / Finish controls, and clear instructions for what should be configured on each page.' ) ); ?></li>
1250 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Smarter page assistance**: Setup steps can automatically open, scroll to, and highlight the related settings section.' ) ); ?></li>
1123 1251 </ul>
1124 1252 </div>
1125 - <div class="wpbc_wn_col">
1126 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1127 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.2/wp-booking-calendar_typography-01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1128 - </div>
1129 1253 </div>
1130 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1131 - </div>
1132 - <?php
1133 1254
1134 - ?><div class="wpbc_wn_container">
1255 +
1135 1256 <div class="wpbc_wn_section">
1136 - <div class="wpbc_wn_col">
1137 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced of Time Slots Bookings' ) ); ?></h3>
1138 - <ul>
1139 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing the "Use Selected Times for Each Booking Date" Option! This feature is available when \'Multiple Days\' selection mode is activated. It allows you to use the **selected times as booked time slots for each selected date**. If not enabled, the selected times will be used as the start time for the first date and the end time for the last date, with all middle dates being fully booked. Enable this option on the Settings > General page in the "Calendar" section. (10.1.5.4)' ) ); ?></li>
1140 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing the \'Partially Booked\' Calendar Legend Item! You can now configure this item in the calendar legend. Enable and customize it on the Settings > General page in the "Calendar" section under the \'Show legend below calendar\' option. (10.1.5.5)' ) ); ?></li>
1141 - </ul>
1142 - </div>
1143 - <div class="wpbc_wn_col">
1257 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Floating Setup Bar' ) ); ?></h2>
1258 +
1259 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1144 1260 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1145 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.2/wp_booking_calendar__booking_times_in_several_days_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1261 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.2/booking_calendar__setup_wizard__move_setup_bar.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1146 1262 </div>
1147 - </div>
1148 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1149 - </div>
1150 - <?php
1151 1263
1152 - ?><div class="wpbc_wn_container">
1153 - <div class="wpbc_wn_section">
1154 - <div class="wpbc_wn_col">
1155 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Shortcode' ) ); ?></h3>
1264 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1156 1265 <ul>
1157 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing the [only_dates] Shortcode for Email Templates! This shortcode allows you to insert only booking dates without times in your email templates. (10.1.5.6)' ) ); ?></li>
1266 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a floating **Setup Bar** available across Booking Calendar admin pages during setup.' ) ); ?></li>
1267 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Save-aware workflow**: Steps that require saving now keep the Continue button disabled until changes are saved.' ) ); ?></li>
1268 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Flexible positioning**: The bar can be collapsed, moved by drag and drop, reset to its default position, and automatically shifted away from right-side settings panels.' ) ); ?></li>
1269 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Reliable completion**: Finishing or skipping setup now correctly hides the Setup Bar across all Booking Calendar admin pages.' ) ); ?></li>
1158 1270 </ul>
1159 1271 </div>
1160 1272 </div>
1161 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1162 - </div>
1163 - <?php
1164 1273
1165 1274
1166 - // </editor-fold>
1167 -
1168 -
1169 - // -----------------------------------------------------------------------------------------------------------------
1170 - // = P A I D =
1171 - // -----------------------------------------------------------------------------------------------------------------
1172 -
1173 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
1174 - // -----------------------------------------------------------------------------------------------------------------
1175 - // = M I X E D =
1176 - // -----------------------------------------------------------------------------------------------------------------
1177 - ?>
1178 - <div class="wpbc_wn_container">
1179 1275 <div class="wpbc_wn_section">
1180 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1181 - </div>
1276 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Front-End Booking Form Popup' ) ); ?></h2>
1182 1277
1183 - <div class="wpbc_wn_section">
1184 - <div class="wpbc_wn_col">
1185 - <ul>
1186 - <?php // Free ?>
1187 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added compatibility for WordPress 6.6' ) ); ?></li>
1188 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added Thin Scroll Bar to Popovers! In the Calendar Overview and Timeline, a thin scroll bar is now included in popovers to handle long booking details or details for multiple bookings.' ) ); ?></li>
1189 - </ul>
1190 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
1191 - <ul>
1192 - <?php // Pro ?>
1193 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Form Times Templates! We\'ve improved the form times templates for a better user experience. *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1194 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated the View of the "Back to Super Admin" Button! When a super booking admin user simulates a login as a "Regular User," the button\'s appearance has been enhanced for clarity. (10.1.5.2) *(MultiUser)*' ) ); ?></li>
1195 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Spinners for Cost and Date Hints! The spinners in the booking form for cost and date hints have been updated for a smoother and more intuitive user experience. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1196 - </ul>
1278 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1279 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1280 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.2/booking_calendar__open_popup.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1281 + </div>
1197 1282
1198 - <div style="clear:both;height:20px;"></div>
1199 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
1283 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1200 1284 <ul>
1201 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Korean Translation! The translation has been updated and is now 96% complete, courtesy of modelaid.' ) ); ?></li>
1285 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added front-end popup support for booking forms using shortcode parameters.' ) ); ?></li>
1286 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Popup booking form shortcode**: Use **[booking resource_id=1 popup=1]** to show a button that opens the booking form in a modal window.' ) ); ?></li>
1287 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Dedicated alias shortcode**: Added **[booking_popup]** as a shortcut for popup booking forms.' ) ); ?></li>
1288 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Customizable popup display**: Configure popup button text, popup title, custom CSS classes, modal class, and popup size.' ) ); ?></li>
1289 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Automatic assets loading**: Required popup JavaScript and CSS are loaded automatically on front-end pages.' ) ); ?></li>
1202 1290 </ul>
1203 -
1204 1291 </div>
1292 + </div>
1205 1293
1206 - </div>
1294 + <div class="wpbc_wn_section" style="gap:1%">
1207 1295
1208 - <div class="wpbc_wn_section">
1209 - <div class="wpbc_wn_col">
1296 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1297 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Time Slots Availability Improvements' ) ); ?></h2>
1210 1298
1211 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1212 1299 <ul>
1213 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Bootstrap Icons to the latest 1.11.3 Version for enhanced visual appeal and consistency.' ) ); ?></li>
1214 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed Deprecated BS Glyph Font for a cleaner and more modern design.' ) ); ?></li>
1215 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed Deprecated wpbc_vars.js for improved performance and maintainability.' ) ); ?></li>
1216 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The option \'Using BootStrap CSS for the form fields\' has been deprecated and moved to the Settings General page in the "Advanced" section for better organization.' ) ); ?></li>
1217 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added support for the WP Rocket plugin by excluding it from JavaScript Delay execution, ensuring smoother performance.' ) ); ?></li>
1218 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
1219 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added a new hook \'wpbc_visitor_action__booking_trash\' for when visitors cancel their own booking. Example usage:: function your_cust_func_wpbc_visitor_action__booking_trash ( $booking_id, $resource_id ) { /* Your code here */ } add_action( \'wpbc_visitor_action__booking_trash\', \'your_cust_func_wpbc_visitor_action__booking_trash\', 100, 2 ) ); (10.2.0.3)' ) ); ?></li>
1300 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: Improved the **Create Booking for Selection** workflow in the Time Slots Availability popup.' ) ); ?></li>
1301 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **More reliable popup handoff**: The Add Booking popup is now validated before the Time Slots popup closes, preventing cases where no booking form appeared.' ) ); ?></li>
1302 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Better multi-date selections**: Dragged multi-date time intervals are now handled as explicit admin-selected time overrides during availability validation.' ) ); ?></li>
1303 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Cleaner JavaScript**: Fixed deprecated jQuery warnings in the Time Slots Availability popup.' ) ); ?></li>
1220 1304 </ul>
1305 + </div>
1221 1306
1222 - </div>
1223 - </div>
1307 + <div class="wpbc_wn_col" style="flex: 1 1 48%;">
1308 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Reliability and Sync Improvements' ) ); ?></h2>
1224 1309
1225 - <div class="wpbc_wn_section">
1226 - <div class="wpbc_wn_col">
1227 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1228 1310 <ul>
1229 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Adjusted the height of booking form fields to ensure compatibility with certain themes.' ) ); ?></li>
1230 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Pro Versions:**' ) ); ?></li>
1231 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of search results not displaying on a separate page when custom search filter options are used in the search form. (10.2.0.2) *(Personal, Business Large, MultiUser)*' ) ); ?></li>
1232 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added the ability to uncheck the exclusive checkbox in group checkbox options for greater flexibility. (10.1.5.1) *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1233 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of popovers not displaying in the timeline on the front-end during initial page loading when a cache plugin is activated. (10.2.0.4)' ) ); ?></li>
1311 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Fixed a PHP 8+ fatal error on the Form Builder page when malformed legacy custom form data was stored incorrectly.' ) ); ?></li>
1312 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Improved Form Options Costs parsing for selectbox fields with quoted defaults. Available in Business Medium or higher.' ) ); ?></li>
1313 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Add Booking now correctly loads the default custom booking form assigned to the selected booking resource. Available in Business Medium or higher.' ) ); ?></li>
1314 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Fixed Early / Late Booking discount calculation so fixed form option costs are not incorrectly reduced to zero.' ) ); ?></li>
1315 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added the **Append extra day after imported checkout day** option for **.ics** import sync rules.' ) ); ?></li>
1234 1316 </ul>
1235 1317 </div>
1236 1318 </div>
1237 1319
1238 - </div><?php
1239 - // </editor-fold>
1320 + </div>
1240 1321
1322 + <?php
1241 1323
1242 1324 $obj->expand_section_end( $section_param_arr );
1243 1325 }
1244 1326
1245 -function wpbc_welcome_section_10_1( $obj ){
1327 +/**
1328 + * What's New section for Booking Calendar 11.1
1329 + *
1330 + * @param object $obj
1331 + *
1332 + * @return void
1333 + */
1334 +function wpbc_welcome_section_11_1( $obj ) {
1246 1335
1247 - $section_param_arr = array( 'version_num' => '10.1', 'show_expand' => true );
1248 1336
1337 + $section_param_arr = array( 'version_num' => '11.1', 'show_expand' => true );
1338 +
1249 1339 $obj->expand_section_start( $section_param_arr );
1340 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
1341 + ?>
1250 1342
1343 + <div class="wpbc_wn_container">
1251 1344
1252 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
1345 + <div class="wpbc_wn_section">
1346 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Working Time' ) ); ?></h2>
1253 1347
1254 -
1255 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1256 - // -----------------------------------------------------------------------------------------------------------------
1257 - // = F R E E =
1258 - // -----------------------------------------------------------------------------------------------------------------
1259 - ?><div class="wpbc_wn_container">
1260 - <div class="wpbc_wn_section">
1261 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Explore Enhanced UI, Advanced Search <sup style="font-size:10px );top: -8px;position: relative;left: -4px;">Pro</sup>, and more...' ) ); ?></h2>
1262 - <div class="wpbc_wn_col">
1263 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New: Booking Form Setup' ) ); ?></h3>
1264 - <ul>
1265 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Experience an updated UI for booking form configurations. Define booking form layout, including centering, and placing the form next to the calendar. Adjust the size and alignment of the form, easily create or edit new fields, define color themes, enable CAPTCHA, and much more.' ) ); ?></li>
1266 - </ul>
1348 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1267 1349 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1268 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.1/wp-booking-calendar__simple_booking_form_setup_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1350 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.1/wp_booking_calendar_11_1_working_time_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1269 1351 </div>
1270 - </div>
1271 - <div class="wpbc_wn_section">
1272 - <div class="wpbc_wn_col">
1273 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Booking Form Preview' ) ); ?></h3>
1352 +
1353 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1274 1354 <ul>
1275 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now you can see all changes in real-time on the same page at WP Booking Calendar > Settings > Booking Form, immediately after making adjustments to your booking form.' ) ); ?></li>
1355 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added **Working Time** settings to **Booking Calendar > Availability > General Availability**, allowing administrators to restrict time-based bookings to specific working hours.' ) ); ?></li>
1356 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Designed for time-based booking forms**: Working Time applies to booking forms that use **rangetime**, **start/end time**, or **start/duration time** fields.' ) ); ?></li>
1357 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Flexible schedule control**: Define default working hours for each weekday, then optionally set custom working time rules for specific booking resources.' ) ); ?></li>
1358 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Clear availability timeline**: Time outside working hours is shown in **Time Slots Availability** as read-only unavailable time, with links back to the related Working Time settings.' ) ); ?></li>
1359 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Cleaner front-end calendar display**: Dates limited only by Working Time keep their tooltip information, while the calendar avoids showing partial-booking dots when there are no real bookings or manually blocked time slots.' ) ); ?></li>
1360 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Better editing workflow**: When opening Working Time settings from the Time Slots Availability timeline, the General Availability page automatically expands and scrolls to the Working Time section.' ) ); ?></li>
1276 1361 </ul>
1277 1362 </div>
1278 - <div class="wpbc_wn_col">
1279 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1280 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.1/wp_booking_calendar__simple_booking_form_preview_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1281 - </div>
1282 1363 </div>
1283 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1364 +
1284 1365 </div>
1285 1366 <?php
1286 1367
1287 - ?><div class="wpbc_wn_container">
1288 - <div class="wpbc_wn_section">
1289 - <div class="wpbc_wn_col">
1290 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced Admin Panel Calendar Overview' ) ); ?></h3>
1291 - <ul>
1292 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Experience an **updated UI on the Calendar Overview page**, optimizing space for clear viewing of bookings. The new design minimizes space for UI elements, maximizing the focus on bookings and enhancing the user experience for managing them. This redesign not only improves user experience but also ensures seamless usability across all devices, including mobile, allowing for increased visibility of bookings.' ) ); ?></li>
1293 - </ul>
1294 - </div>
1295 - <div class="wpbc_wn_col">
1296 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1297 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.1/wp_booking_calendar__calendar_overview_04.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1298 - <ul>
1299 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Display first and last names in the booking pipelines on the Calendar Overview page to simplify finding specific bookings.' ) ); ?></li>
1300 - </ul>
1301 - </div>
1302 - </div>
1303 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1304 - </div>
1305 - <?php
1368 + $obj->expand_section_end( $section_param_arr );
1369 +}
1306 1370
1307 - ?><div class="wpbc_wn_container">
1308 - <div class="wpbc_wn_section">
1309 - <div class="wpbc_wn_col">
1310 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Updated Interface for Email Settings' ) ); ?></h3>
1311 - <ul>
1312 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'The Settings > Emails page now features an updated, user-friendly interface. The email template selection menu is conveniently located in the left navigation panel, clearly showing enabled and disabled templates. The configuration UI for email subjects and templates has been improved, with a revamped help section that highlights available shortcodes more effectively and clearly.' ) ); ?></li>
1313 - </ul>
1314 - </div>
1315 - <div class="wpbc_wn_col">
1316 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1317 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.1/wp-booking-calendar__email_settings_01.png' ) ); ?>" style="margin-top:14px;" />
1318 - </div>
1319 - </div>
1320 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1321 - </div>
1322 - <?php
1371 +/**
1372 + * What's New section for Booking Calendar 11.0
1373 + *
1374 + * @param object $obj
1375 + *
1376 + * @return void
1377 + */
1378 +function wpbc_welcome_section_11_0( $obj ) {
1323 1379
1324 1380
1325 - // </editor-fold>
1381 + $section_param_arr = array( 'version_num' => '11.0', 'show_expand' => true );
1326 1382
1383 + $obj->expand_section_start( $section_param_arr );
1384 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
1385 + ?>
1386 + <div class="wpbc_wn_container">
1327 1387
1328 - // -----------------------------------------------------------------------------------------------------------------
1329 - // = P A I D =
1330 - // -----------------------------------------------------------------------------------------------------------------
1331 - ?><div class="wpbc_wn_container">
1332 1388 <div class="wpbc_wn_section">
1333 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Changes in Premium Versions' ) ); ?></h2>
1334 - <div class="wpbc_wn_col">
1335 - <ul>
1336 - <li><br><h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Completely new Search Availability Engine' ) ); ?></h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; This powerful feature allows you to search for available Dates and Times based on existing bookings, unavailable dates, and other criteria defined in the search form. Enjoy a more efficient and precise search experience tailored to your needs.' ) ); ?></li>
1337 - </ul>
1389 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Time Slots Availability' ) ); ?></h2>
1390 +
1391 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1392 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1393 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar__availability__time_slots_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1394 +<!-- <img src="--><?php //echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar__availability__time_slots_02.png' ) ); ?><!--" style="margin:10px 0;width:98%;" />-->
1338 1395 </div>
1339 - </div>
1340 - <div class="wpbc_wn_section">
1341 - <div class="wpbc_wn_col">
1396 +
1397 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1342 1398 <ul>
1343 - <li><h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Searchable Resource Setup' ) ); ?></h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; This feature allows you to easily customize search availability for booking resources. Personalize search visibility and attributes by customizing options like **summary text and thumbnail images** to enhance user engagement in search results. Additionally, configure specific **parameters for resource filtering in search forms**, providing users with targeted and relevant search options.' ) ); ?></li>
1399 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added the **Time Slots Availability** page under **Booking Calendar > Availability**, allowing administrators to define unavailable time intervals for specific booking resources and date ranges.' ) ); ?></li>
1400 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Interactive timeline selection**: Select one or many days directly in the timeline, adjust start and end time, then block or unblock the selected interval.' ) ); ?></li>
1401 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Clear availability states**: The timeline now shows available, booked, unavailable, and full-day unavailable states in one place.' ) ); ?></li>
1402 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Finer control**: Work with visible time range controls, date range navigation arrows, and slot steps down to **5 minutes**.' ) ); ?></li>
1403 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Better long-range editing**: Sticky timeline headers and progress indicators make loading, blocking, unblocking, and saving easier to follow.' ) ); ?></li>
1344 1404 </ul>
1345 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1346 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.1/wp_booking_calendar__search_availability_05.gif" style="margin:10px 0;width:98%;"/>
1347 1405 </div>
1348 1406 </div>
1407 +
1408 +
1349 1409 <div class="wpbc_wn_section">
1350 - <div class="wpbc_wn_col">
1351 - <ul>
1352 - <li><h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Search for Specific Time Slots' ) ); ?></h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now you can search for specific time slots on particular dates or even a range of dates. This is a fantastic **feature for appointment-based businesses**, allowing clients to **find available time slots for different service providers**. Imagine searching for an available hair stylist, doctor, or other service provider on a specific date and time. You can even set an approximate date range (+/- N days from the desired date) to find appointments within a specific time slot.' ) ); ?></li>
1353 - </ul>
1354 - </div>
1355 - <div class="wpbc_wn_col">
1410 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Set Times Availability Popup' ) ); ?></h2>
1411 +
1412 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1356 1413 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1357 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.1/wp_booking_calendar__search_availability_time_01.gif" style="margin:10px 0;width:98%;"/>
1414 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar_11_0_set_times_availability_popup.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1415 +
1358 1416 </div>
1359 - <div class="wpbc_wn_col">
1360 - <ul>
1361 - <li><h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Dark Theme' ) ); ?></h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; New **Dark Theme** for Search Form and Results! When you switch the "Color Theme" to "Dark" at WP Booking Calendar > Settings > General page in the "Form Options" section, the system will automatically update the colors to dark in both the Search Form and Search Results for a seamless fit with your website design.' ) ); ?></li>
1362 - </ul>
1363 - </div>
1364 - <div class="wpbc_wn_col">
1365 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1366 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.1/wp-booking-calendar__search_availability_dark_01.png" style="margin:10px 0;width:98%;"/>
1367 - </div>
1368 - </div>
1369 1417
1370 - <div class="wpbc_wn_section">
1371 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Search Availability' ) ); ?></h3>
1372 - <div class="wpbc_wn_col">
1418 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1373 1419 <ul>
1374 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Streamlined Date Selection! After selecting a date in the Check In field in the search availability form, the **Check Out calendar** now **opens automatically** for a smoother booking experience.' ) ); ?></li>
1375 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Search Interface! The Settings page now features an **updated search interface** with a streamlined help section, making it easier to find the shortcodes you need quickly and efficiently.' ) ); ?></li>
1376 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **6 New Search Form Templates**! Now available at WP Booking Calendar > Settings > Search page, offering more customization options for your search forms.' ) ); ?></li>
1377 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Discover **4 New Search Result Templates**, to suit your website\'s style and user preferences.' ) ); ?></li>
1378 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now, the search form and search results **support "Simple HTML tags"** for easier configuration of the search form structure. Example: Create a row with 2 columns using <code>&lt;r&gt; &lt;c&gt;..&lt;/c&gt; &lt;c&gt;..&lt;/c&gt; &lt;/r&gt;</code>.' ) ); ?></li>
1379 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Integrate **search filter options directly into your search results layout**. If specific filters are set in the **Search Filter** section of the **Searchable Resource** page, such as <code>location = Spain</code>, you can now incorporate corresponding shortcodes like <code>[location]</code> into your Search Results Layout. Tailor your search results to match your defined criteria effortlessly.' ) ); ?></li>
1420 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a reusable **Set Times Availability** popup to the Booking Listing page, so unavailable time intervals can be managed without leaving the bookings workflow.' ) ); ?></li>
1421 + <li><img src="<?php echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar__add_booking _from__timeslots__availability_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1422 + <?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Create bookings from selected intervals**: Start a new booking directly from the selected time interval inside the Time Slots Availability popup.' ) ); ?></li>
1423 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Works across multiple days**: Select, block, unblock, and review unavailable intervals across a date range with booked and unavailable states visible.' ) ); ?></li>
1424 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Unavailable full-day reasons**: The popup can show days blocked by Days Availability, Season Availability, unavailable weekdays, unavailable time from current time, and limit available days from today settings.' ) ); ?></li>
1425 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Quick rule links**: Full-day unavailable timeline bars can link to the related availability settings page, helping administrators identify and adjust the rule that made a date unavailable.' ) ); ?></li>
1380 1426 </ul>
1381 1427 </div>
1382 - <div class="wpbc_wn_col">
1383 - <ul>
1384 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New Shortcodes for Search Forms**. Easily search for the **number of items to book**, **extend search dates** by a range, and **search for available times** using new shortcodes: <code>[search_quantity "1" "2" "3"]</code>, <code>[search_extend "2"]</code>, and <code>[search_time "Full Day@@" "10:00 - 14:00" "15:00 - 16:00"]</code>.' ) ); ?></li>
1385 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Configure \'**Search Filter Options**\' shortcodes. Now you can **filter search results by various criteria and parameters**. Example shortcodes include filtering by amenity, maximum visitors, and location: <code>[selectbox amenity "Any@@" "Parking" "WiFi"]</code>, <code>[selectbox max_visitors "Any@@" "1" "2" "3"]</code>, and <code>[selectbox location "Any@@" "Spain" "France"]</code>.' ) ); ?></li>
1386 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New Search Results Shortcodes**. Customize your search results with a range of new shortcodes: <code>[search_time]</code>, <code>[search_time_check_in]</code>, <code>[search_time_check_out]</code>, <code>[search_result_title]</code>, <code>[search_result_info]</code>, <code>[search_result_image]</code>, <code>[search_result_image_url]</code>, <code>[search_result_url]</code>, <code>[search_result_button "Book Now"]</code>, <code>[resource_title]</code>, <code>[resource_id]</code>, <code>[resource_capacity]</code>, <code>[available_count]</code>, <code>[resource_cost]</code>, <code>[search_check_out_plus1day]</code>.' ) ); ?></li>
1387 - </ul>
1388 - </div>
1389 -
1390 1428 </div>
1391 1429
1392 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1393 1430
1394 1431 <div class="wpbc_wn_section">
1395 - <div class="wpbc_wn_col">
1396 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhanced UI for Daily Costs Page' ) ); ?></h3>
1397 - <ul>
1398 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The Daily Costs page has been redesigned to provide users with a clearer and more intuitive interface. This update introduces standardized resource lists, action sections, labels, and enhanced search and sorting capabilities for booking resources by various parameters.' ) ); ?></li>
1399 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now, users can easily identify daily cost parameters such as "per 1 day" or "per 1 night" next to each booking resource. This feature is particularly useful in the MultiUser version, as different regular users may have different configurations for these parameters for their own booking resources (calendars).' ) ); ?></li>
1400 - </ul>
1401 - </div>
1402 - <div class="wpbc_wn_col">
1432 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Faster Add Booking Popup' ) ); ?></h2>
1433 +
1434 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1403 1435 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1404 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.1/wp_booking_calendar__daily_costs_ui_01.gif" style="margin:10px 0;width:98%;"/>
1436 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar_11_0_add_booking_popup.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1405 1437 </div>
1406 - </div>
1407 1438
1408 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1409 -
1410 - <div class="wpbc_wn_section">
1411 - <div class="wpbc_wn_col">
1412 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Updated Interface for Payment Setup Settings' ) ); ?></h3>
1439 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1413 1440 <ul>
1414 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'The Settings > Payment Setup page now features an updated, user-friendly interface. The payment gateways menu located in the left navigation panel, clearly showing enabled and disabled payment systems. The configuration UI for payment systems has been improved.' ) ); ?></li>
1441 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a faster **Add Booking** popup to the Booking Listing and Timeline pages, so users can create bookings without leaving the current view.' ) ); ?></li>
1442 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Prefilled from the timeline**: Selected booking resource, date, start time, and end time are passed into the popup when creating a booking from a selected interval.' ) ); ?></li>
1443 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Choose the right form in place**: Select the booking resource and custom booking form directly inside the popup.' ) ); ?></li>
1444 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Edit in the same workflow**: Existing bookings can be opened in the popup, with a direct link to edit the selected booking form when needed.' ) ); ?></li>
1445 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved navigation**: The Add Booking page is now available under the Bookings section, and Booking Listing and Timeline include a clearer **New booking** quick-action button.' ) ); ?></li>
1415 1446 </ul>
1416 1447 </div>
1417 - <div class="wpbc_wn_col">
1418 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1419 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.1/wp-booking-calendar__payment_setup_settings_01.png' ) ); ?>" style="margin-top:14px;" />
1420 - </div>
1421 1448 </div>
1422 1449
1423 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1424 1450
1425 1451 <div class="wpbc_wn_section">
1426 - <div class="wpbc_wn_col">
1427 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Other New Features**' ) ); ?></h3>
1428 - <?php
1429 - echo '<ul>'
1430 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Pre-Check-in Date Hint Shortcode:** Introduced the <code>[pre_checkin_date_hint]</code> shortcode, which shows the date that is N days before the selected check-in date. You can select the number of days for the [pre_checkin_date_hint] shortcode at the WP Booking Calendar > Settings General page in "Form Options" section". (10.0.0.31) *(Business Medium/Large, MultiUser)*' ) ). '</li>'
1431 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added the ability to **use attributes in "Simple HTML"** tags. Now you can use attributes like **style** and **class** in "Simple HTML tags" for greater customization. Example: <code>&lt;r class=\'my_css_class\'&gt; &lt;c style=\'align-self:last baseline;\'&gt;..&lt;/c&gt; &lt;/r&gt;</code>' ) ) . '</li>'
1432 - . '</ul>';
1433 - ?>
1452 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'General Availability Settings' ) ); ?></h2>
1453 +
1454 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1455 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1456 + <img src="<?php echo esc_attr( $obj->section_img_url( '11.0/wp_booking_calendar_11_0_general_availability_settings_01.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1434 1457 </div>
1435 - </div>
1436 1458
1437 - </div><?php
1438 -
1439 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
1440 - // -----------------------------------------------------------------------------------------------------------------
1441 - // = M I X E D =
1442 - // -----------------------------------------------------------------------------------------------------------------
1443 - ?>
1444 - <div class="wpbc_wn_container">
1445 - <div class="wpbc_wn_section">
1446 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1447 - </div>
1448 -
1449 - <div class="wpbc_wn_section">
1450 - <div class="wpbc_wn_col">
1451 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
1459 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1452 1460 <ul>
1453 - <?php // Pro ?>
1454 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; By default, the "Aggregate only bookings" option is disabled in the shortcode configuration dialog. (10.0.0.6)' ) ); ?></li>
1455 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now, from the WP Booking Calendar > Resources page, you can easily simulate login to a regular user. The "Simulate login" button is located next to each booking resource belonging to "regular users" in the "Owner" section. (10.0.0.15) *(MultiUser)*' ) ); ?></li>
1456 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Renamed the WP Booking Calendar > Settings > Payment Gateways page to **Payment Setup** page. *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1457 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Eliminated parameters "Title of Search Results" and "Nothing Found Message" from the search form shortcode. You can now configure this text at the WP Booking Calendar > Settings > Search page. (10.0.0.41)' ) ); ?></li>
1461 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added a **General Availability** settings page for defining global front-end availability rules across all calendars and booking resources.' ) ); ?></li>
1462 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Live calendar preview**: Review unavailable weekdays, availability limits from the current date, unavailable time from current time, and booking buffer effects before saving.' ) ); ?></li>
1463 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fast settings workflow**: Save changes with AJAX, reset preview controls to defaults, and continue working in the same page layout.' ) ); ?></li>
1464 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Consistent admin design**: Uses the shared right-side palette layout from the Availability pages and setup wizard interfaces.' ) ); ?></li>
1458 1465 </ul>
1459 -
1460 - <div style="clear:both;height:20px;"></div>
1461 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
1462 - <ul>
1463 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Dutch Translation Update**. Translation has been updated, reaching 98% completion, courtesy of Han van de Graaf.' ) ); ?></li>
1464 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Hungarian Translation Update**. Translation has been updated, reaching 99% completion, courtesy of VinczeI.' ) ); ?></li>
1465 - </ul>
1466 -
1467 1466 </div>
1468 - <div class="wpbc_wn_col">
1469 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Free version' ) ); ?></h3>
1470 - <ul>
1471 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added support of new shortcodes of booking creation for emails on WP Booking Calendar > Settings > Emails page: [creation_date], [creation_year], [creation_month], [creation_day], [creation_hour], [creation_minutes], [creation_seconds] (10.0.0.34)' ) ); ?></li>
1472 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Smart Days Selection during booking editing. The system now selects dates in the calendar after all dates are loaded. If multiple non-consecutive dates are selected but a different selection mode is defined later, the system sets Multiple Days selection mode to ensure correct selection. If Single Day selection mode is enabled but the booking has multiple dates, the system switches to Multiple Days selection mode during the edit. (10.0.0.50)' ) ); ?></li>
1473 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; When adjusting the number of months in \'Setup Size & Structure,\' the overall \'Visible months\' count will automatically update in the Shortcode Configuration dialog. (10.0.0.4)' ) ); ?></li>
1474 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now, you can define to scroll through the calendar for a period of 1.5 years (18 months). (10.0.0.11)' ) ); ?></li>
1475 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced parameter sanitization for improved security and stability. (10.0.0.12)' ) ); ?></li>
1476 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced the view of submenu items on settings pages for improved navigation and usability.' ) ); ?></li>
1477 - </ul>
1478 - </div>
1479 1467 </div>
1480 1468
1469 +
1481 1470 <div class="wpbc_wn_section">
1482 - <div class="wpbc_wn_col">
1471 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Availability Accuracy and Reliability Fixes' ) ); ?></h2>
1483 1472
1484 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1473 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1485 1474 <ul>
1486 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introduced helper JavaScript for selecting calendar dates via keyboard (tab selection). Please note, additional CSS adjustments may be needed in specific calendars to display focus elements correctly. (10.0.0.19)' ) ); ?></li>
1487 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; New JS event generated after creation of booking: \'wpbc_booking_created\'. To catch this event use code: jQuery( \'body\' ).on( \'wpbc_booking_created\', function( event, resource_id, params ) { ... } ) ); (10.0.0.30)' ) ); ?></li>
1488 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Inline JavaScript variables needed for all calendars are now defined after loading the wpbc_all.js script. (10.0.0.43)' ) ); ?></li>
1489 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added an action hook that triggers when all booking data is loaded in the calendar: jQuery( \'body\' ).on( \'wpbc_calendar_ajx__loaded_data\', function( event, resource_id ) { ... } ) ); (10.0.0.44)' ) ); ?></li>
1490 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Replaced the translation function apply_bk_filter( \'wpdev_check_for_active_language\', $text ) with wpbc_lang( $text ) function. (10.0.0.46)' ) ); ?></li>
1491 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added a new internal function wpbc_auto_select_dates_in_calendar() for automatic date selection. This function simulates clicks on the calendar and, based on check-in/out dates and various conditions for range day selection, it can automatically select or not select dates in the calendar. (10.0.0.47)' ) ); ?></li>
1492 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added a new internal function to automatically fill booking form fields from URL parameters. For example, \'?wpbc_auto_fill=visitors1^2~children1^1\' will auto-fill the specified fields. (10.0.0.47)' ) ); ?></li>
1493 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added the ability to auto-select dates in the calendar based on URL parameters. For example, ?wpbc_select_check_in=2024-05-16&wpbc_select_check_out=2024-05-19&wpbc_select_calendar_id=1 will automatically select the specified dates. (10.0.0.48)' ) ); ?></li>
1494 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed most global JavaScript variables in the plugin and defined them under the _wpbc JS variable. Redefined the loading of JavaScript variables and some JS files.' ) ); ?></li>
1495 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Pro Versions:**' ) ); ?></li>
1496 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; By default, when saving a booking to the system, the plugin rechecks availability for specific dates. During this checking process, if you used the aggregate parameter, the system utilizes the "Aggregate only bookings" parameter value to prevent potential issues related to errors such as \'These dates and times in this calendar are already booked or unavailable. ... Booking cannot be saved on this date ...\' (10.0.0.7)' ) ); ?></li>
1497 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introduced a hook that executes upon the deletion of booking resources: do_action( \'wpbc_deleted_booking_resources\', $bulk_action_arr_id ) ); (10.0.0.35)' ) ); ?></li>
1498 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Shortcode [bookinglooking] for help with search availability feature become deprecated and removed from Booking Calendar. *(Business Large, MultiUser)*' ) ); ?></li>
1499 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Deprecated the following shortcodes in the Search Form: [search_visitors], [additional_search "3"], [search_category], [search_tag]' ) ); ?></li>
1500 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Deprecated the following shortcodes in the Search Results: [booking_resource_title], [link_to_booking_resource "Book now"], [book_now_link], [num_available_resources], [booking_featured_image], [booking_info], [booking_resource_id], [standard_cost], [max_visitors]' ) ); ?></li>
1475 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Fixed calendar booking status detection, improving how the front-end calendar reads approved and pending booking statuses for capacity-based resources, including parent/child resources and change-over dates.' ) ); ?></li>
1476 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Fixed availability calculation for Booking Form Builder forms with time-slot fields, so dates are marked as fully unavailable when all booking form time slots are already booked. (10.15.8.2)' ) ); ?></li>
1477 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Fix**: Fixed a fatal error on some hosts by reading the local PRO **meta.json** file directly instead of using WordPress FTP filesystem access.' ) ); ?></li>
1478 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: Front-end booking form calendars should now reflect real availability more clearly across booked, pending, blocked, and change-over dates.' ) ); ?></li>
1501 1479 </ul>
1502 -
1503 1480 </div>
1504 1481 </div>
1505 1482
1506 - <div class="wpbc_wn_section">
1507 - <div class="wpbc_wn_col">
1508 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1509 - <ul>
1510 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Correctly display a white background for the header of admin pages on small resolutions where the top menu shifts to the second row. (10.0.0.13)' ) ); ?></li>
1511 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; If you set a number of months to scroll from today on the WP Booking Calendar > Settings General page, the system will show the last scrolled month\'s exact date as available, based on today\'s date. (10.0.0.26)' ) ); ?></li>
1512 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Addressed an issue with exporting booking links to Google Calendar when the start time is 00:00 and the end time is a specific time. In this scenario, the system incorrectly set the date one day lower than it should have. (10.0.0.28)' ) ); ?></li>
1513 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Improved top menu border and background colors for a sleeker look. This update ensures a more cohesive appearance, especially when other plugins or themes display warning messages at the top of the page. The background gradient of the top menu will now appear more organic and clear. (10.0.0.32)' ) ); ?></li>
1514 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Display the green bar correctly based on the WordPress timezone rather than GMT time on the Calendar Overview page in Day view mode. (10.0.0.40)' ) ); ?></li>
1515 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Compatibility with jQuery 3.0 replaced deprecated .unbind() to .off() and .andSelf() to .addBack() methods. (10.0.0.45)' ) ); ?></li>
1516 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved an issue where the end time in the booking form was set to 24:00 (midnight), causing a booking date issue like "30 Nov -0001." The system now adjusts the end time to 23:59 if it is set to 24:00. (10.0.0.49)' ) ); ?></li>
1517 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved an issue where the rangetime field was incorrectly selected during booking editing in the free version when using the AM/PM time format. (10.0.0.52)' ) ); ?></li>
1518 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Pro Versions:**' ) ); ?></li>
1519 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated styles for the message "There is a new version of Booking Calendar available" in the WordPress Plugins menu. (10.0.0.20)' ) ); ?></li>
1520 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the error message: \'These dates and times in this calendar are already booked or unavailable...\' that appeared when using a custom booking form with time slots different from the standard booking form. (10.0.0.10) *(Business Large, MultiUser)*' ) ); ?></li>
1521 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of incorrectly displaying status for change-over dates when there were check-in/out dates with pending and approved statuses on the same date in booking resources with specific capacities. (10.0.0.2) *(Business Large, MultiUser)*' ) ); ?></li>
1522 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of incorrectly parsing "simple HTML tags" in custom booking forms on the Booking Listing page. (10.0.0.3) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1523 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Corrected the display of booking resource ID = 1 in WordPress Blocks when configuring the booking resource differently from the default resource. (10.0.0.16) *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1524 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved PHP Fatal error that occurred in PHP 8.1 or 8.2 when using complex arithmetic operations at the WP Booking Calendar > Prices > Form Options Costs page: Uncaught TypeError: Unsupported operand types: null + string in ../wpbc-calc-string.php on line 68. (10.0.0.23) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1525 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Addressed the warning message about an undefined array key "cost" on line 624 of the page-resources.php file. *(Personal)*' ) ); ?></li>
1526 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of the "bank" selection table not displaying correctly for the iDeal payment system on mobile devices in the payment form. (10.0.0.27) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1527 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of the search field for Seasons being hidden on the WP Booking Calendar > Prices > Seasons page. (10.0.0.29) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1528 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of the search field for Coupons being hidden on the WP Booking Calendar > Prices > Discount Coupons page. (10.0.0.29) *(Business Large, MultiUser)*' ) ); ?></li>
1529 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of the search field for Users being hidden on the WP Booking Calendar > Settings > Users page. (10.0.0.29) *(MultiUser)*' ) ); ?></li>
1530 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Improved the styles for date descriptions in season filters on the WP Booking Calendar > Availability > Seasons page. (10.0.0.33) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1531 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed the selection filter for [visitors] in the old legacy search engine to accurately display search results. (10.0.0.36) *(Business Large, MultiUser)*' ) ); ?></li>
1532 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Corrected the email notification sent when a booking was duplicated at the WP Booking Calendar > Add Booking page. It now sends a New booking email instead of a Modification email. (10.0.0.42)' ) ); ?></li>
1533 - </ul>
1534 - </div>
1535 - </div>
1483 + </div>
1484 + <?php
1536 1485
1537 - </div><?php
1538 - // </editor-fold>
1539 -
1540 -
1541 1486 $obj->expand_section_end( $section_param_arr );
1542 1487 }
1543 1488
1544 -function wpbc_welcome_section_10_0( $obj ){
1489 +function wpbc_welcome_section_10_15( $obj ) {
1545 1490
1546 - $section_param_arr = array( 'version_num' => '10.0', 'show_expand' => true );
1547 1491
1492 + $section_param_arr = array( 'version_num' => '10.15', 'show_expand' => true );
1493 +
1548 1494 $obj->expand_section_start( $section_param_arr );
1549 1495
1496 + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production.
1497 + ?>
1498 + <div class="wpbc_wn_container">
1550 1499
1551 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2023-11-06 comment this
1500 + <div class="wpbc_wn_section">
1501 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Drag & Drop Booking Form Builder' ) ); ?></h2>
1552 1502
1553 -
1554 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1555 - // -----------------------------------------------------------------------------------------------------------------
1556 - // = F R E E =
1557 - // -----------------------------------------------------------------------------------------------------------------
1558 - ?><div class="wpbc_wn_container">
1559 - <div class="wpbc_wn_section">
1560 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Explore Simplified Integration and Enhanced Management' ) ); ?></h2>
1561 - <div class="wpbc_wn_col">
1562 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Easy Shortcode Integration' ) ); ?></h3>
1563 - <ul>
1564 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Discover the simplicity of integrating Booking Calendar shortcodes into your pages. Our updated UI for the configuration popup dialog simplifies the process of inserting booking forms, availability calendars, and other Booking Calendar shortcodes. Configuring all parameters is now super easy with our new structured wizard-style configuration dialog. Add the Booking Calendar to your page by using Booking Calendar Blocks in the WP Block Editor or by clicking on the Booking Calendar icon in the WP Classic Editor.' ) ); ?></li>
1565 - </ul>
1566 - </div>
1567 - <div class="wpbc_wn_col">
1503 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1568 1504 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1569 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.0/wp_booking_calendar_insert_shortcode_01.png' ) ); ?>" style="margin-top:55px" />
1505 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar__form_builder_overview_02.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1570 1506 </div>
1571 - </div>
1572 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1573 - </div>
1574 - <?php
1575 1507
1576 - ?><div class="wpbc_wn_container">
1577 - <div class="wpbc_wn_section">
1578 - <div class="wpbc_wn_col">
1579 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Unavailable Dates legend item' ) ); ?></h3>
1508 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1580 1509 <ul>
1581 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Easily configure **Unavailable Dates legend item** under the calendar at WP Booking Calendar > Settings General page in the "Calendar" section.' ) ); ?></li>
1510 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Introduced the new **Drag & Drop Booking Form Builder** for visually creating booking forms without manually editing form code.' ) ); ?></li>
1511 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Build forms visually**: Drag fields into the canvas, arrange the layout, and see the result instantly in the live preview.' ) ); ?></li>
1512 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Faster and easier workflow**: Create modern booking forms without working with complex manual shortcodes.' ) ); ?></li>
1513 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Available in all versions**: Booking Calendar now supports **multiple custom booking form configurations** in all versions, including the Free version.' ) ); ?></li>
1582 1514 </ul>
1583 1515 </div>
1584 - <div class="wpbc_wn_col">
1585 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1586 - <img src="<?php echo esc_attr( $obj->section_img_url( '10.0/wp_booking_calendar_unavailable_legend_01.png' ) ); ?>" style="margin-top:0px" />
1587 - </div>
1588 1516 </div>
1589 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1590 - </div>
1591 - <?php
1592 1517
1593 - // </editor-fold>
1594 1518
1595 -
1596 - // -----------------------------------------------------------------------------------------------------------------
1597 - // = P A I D =
1598 - // -----------------------------------------------------------------------------------------------------------------
1599 - ?><div class="wpbc_wn_container">
1600 1519 <div class="wpbc_wn_section">
1601 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Changes in Premium Versions' ) ); ?></h2>
1602 - </div>
1520 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Create Booking Forms, Contact Forms, and Inquiry Forms' ) ); ?></h2>
1603 1521
1604 - <div class="wpbc_wn_section">
1605 - <div class="wpbc_wn_col">
1606 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Discover an enhanced user interface for the Resources page' ) ); ?></h3>
1607 - <?php
1608 - echo '<ul>'
1609 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**New** **UI Design of Resource Page**. Easily toggle between table header tabs to view specific information, such as the shortcode for embedding into pages, costs, default form, or parent/child relation for defining booking resource capacity. The interface is now clearer and more straightforward for a seamless experience *(Personal, Business Small/Medium/Large, MultiUser)*.' ) . '</li>'
1610 - . '</ul>' );
1611 - ?>
1522 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 1% 0 0;">
1612 1523 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1613 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.0/wp_booking_calendar_resources_page_03.gif" />
1614 - <?php
1615 - echo '<ul>'
1616 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Added **search booking resources** field to Options toolbar for easy searching by ID or Title keywords (9.9.0.11) *(Personal, Business Small/Medium/Large, MultiUser)*.' ) ) . '</li>'
1617 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; You now have the ability to **save the number of booking resources per page** directly from the Booking > Resources page (at pagination section). (9.9.0.22) *(Personal, Business Small/Medium/Large, MultiUser)*' ) ) . '</li>'
1618 - . '</ul>';
1619 - ?>
1524 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar_10_15_contact_inquiry_forms_05.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1620 1525 </div>
1621 - </div>
1622 1526
1623 - <div class="wpbc_wn_section">
1624 - <div class="wpbc_wn_col">
1625 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Explore the super ease of configuring "Conditional Days Selection"' ) ); ?></h3>
1626 - <?php
1627 - echo '<ul>'
1628 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Set the **number of days** for selection based **on a specific weekday**.' ) ). '</li>'
1629 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Determine the **number of days** for selection **in a specific season**.' ) ). '</li>'
1630 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Define the **number of days** for selection **starting from a specific date**.' ) ). '</li>'
1631 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Choose **weekdays as start days** for selection **during a specific season**.' ) ). '</li>'
1632 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '*(Business Medium/Large, MultiUser)*' ) ). '</li>'
1633 - . '</ul>';
1634 - ?>
1527 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 0 0 1%;">
1635 1528 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1636 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>10.0/wp_booking_calendar_days_selection_04_2000px.gif" />
1529 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar_10_15_contact_form_preview_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1637 1530 </div>
1638 - </div>
1639 1531
1640 - <div class="wpbc_wn_section">
1641 - <div class="wpbc_wn_col">
1642 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**New shortcode** for **displaying taxes or additional fees based on the total booking cost**.' ) ); ?></h3>
1643 - <?php
1644 - echo wp_kses_post( '<ul>'
1645 - . '<li>' . wpbc_replace_to_strong_symbols( 'This **[total_cost]** shortcode is used for displaying additional cost hints without affecting cost calculations. Since the total cost has already been calculated at this stage.' ) . ' '
1646 - . wpbc_replace_to_strong_symbols( 'For example, if you want to **show the tax cost as 20% inclusive part of the total booking cost**, set up your booking form fields like this: ' ) //. '</li>'
1647 - . '<code>&lt;div style="display:none;"&gt; [checkbox tax_fee default:on ""]&lt;/div&gt; Tax: [tax_fee_hint]</code></li>'
1648 - //. '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'The first shortcode, [checkbox tax_fee default:on ""], is crucial for cost calculation, while the second shortcode, [tax_fee_hint], reveals the cost hint.' ) . '</li>'
1649 - . '<li>' . wpbc_replace_to_strong_symbols( 'Now, define the additional cost for tax_fee at WP Booking Calendar > Prices > Form Options Costs page: ' ) . '<code>tax_fee = ( [total_cost] * 0.2 )</code></li>'
1650 - . '<li>' . wpbc_replace_to_strong_symbols( ' *(Business Medium/Large, MultiUser)*' ) . '</li>'
1651 - . '</ul>' );
1652 - ?>
1532 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1533 + <ul>
1534 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **NEW**: Added support for **Contact Forms / Inquiry Forms / Request Forms** — the calendar is now optional.' ) ); ?></li>
1535 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Use Booking Calendar as a contact form alternative**: Create forms without booking dates and manage all submissions inside Booking Calendar.' ) ); ?></li>
1536 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Ready-to-use templates**: Start faster with predefined templates for booking, contact, and inquiry forms.' ) ); ?></li>
1537 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Flexible start**: Create a form from a template or begin with a blank canvas for full control.' ) ); ?></li>
1538 + </ul>
1653 1539 </div>
1654 1540 </div>
1655 1541
1656 - <div class="wpbc_wn_section">
1657 - <div class="wpbc_wn_col">
1658 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Track Changes: **Booking Edit Notification**' ) ); ?></h3>
1659 - <?php
1660 - echo wp_kses_post( '<ul>'
1661 - . '<li>' . wpbc_replace_to_strong_symbols( '&bull; Whenever a booking is edited, a note stating **\'The booking has been edited\'** will be generated for the booking. This note also contains the URL of the page where the user made the modifications. With this feature, you gain control over tracking changes to booking details.' ) . '</li>'
1662 - . '<li>' . wpbc_replace_to_strong_symbols( '&bull; Now, booking notes such as "Imported from Google Calendar," "Payment section displayed," "Total cost manually entered," "Automatically calculated cost," etc., will be **saved only if the "Logging actions for booking" option is activated** in the WP Booking Calendar > Settings General page in the "Admin Panel" section.' ) . '</li>'
1663 - . '</ul>' );
1664 - ?>
1665 - </div>
1666 - </div>
1667 1542
1668 -
1669 - </div><?php
1670 -
1671 -
1672 -
1673 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
1674 - // -----------------------------------------------------------------------------------------------------------------
1675 - // = M I X E D =
1676 - // -----------------------------------------------------------------------------------------------------------------
1677 - ?><hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1678 - <div class="wpbc_wn_container">
1679 1543 <div class="wpbc_wn_section">
1680 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1681 - </div>
1544 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Powerful Visual Layout Builder' ) ); ?></h2>
1682 1545
1683 - <div class="wpbc_wn_section">
1684 - <div class="wpbc_wn_col">
1685 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Pro Versions' ) ); ?></h3>
1686 - <ul>
1687 -
1688 - <?php // Pro ?>
1689 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Sage/Opayo gateway becoming a payment product under the Elavon brand. Update name of payment gateway from SagePay to **Opayo - Elavon**. For more information, visit: https://www.elavon.co.uk/resource-center/news-and-insights/opayo-migration-faqs.html (9.9.0.34) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1690 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Booking Management** - When editing or duplicating a booking in the admin panel, you will now be redirected to the Booking Listing page, where the specific booking will be displayed. (9.9.0.3) (9.9.0.38) *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1691 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Shortcode Functionality** - Resolve the "403 permission error" issue encountered when modifying booking forms on the WP Booking Calendar > Settings > Booking Form page by utilizing the **new shortcode [selectbox name "Option 1" "Option 2"]** instead of [select name "Option 1" "Option 2"]. This update addresses the problem faced on certain Apache servers with ModSecurity firewall, which affects specific POST requests when saving booking form configurations. *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1692 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Deposit Management** - Now, when a booking is made in the admin panel at WP Booking Calendar > Add booking page, the deposit amount in the cost field and notes section, as well as the total cost for the booking, will be updated accordingly. This feature requires displaying payment forms at the Booking > Add booking page in such cases. (9.9.0.21) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1693 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Import Functionality** - You can now utilize the option \'Trash / delete all imported bookings before new import\' in situations where imports are initiated via the Google Calendar API instead of .ics feeds. This feature provides greater control over managing imported bookings and ensures a smoother import process. Please note that this feature requires the installation of the **Booking Manager** plugin. (9.9.0.25)' ) ); ?></li>
1694 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Payment Confirmation** - You now have the ability to **use the [booking_confirm] shortcode on the "Successful payment" page**, where users are redirected after making a payment via the Stripe or PayPal payment system. This allows you to configure the page to display a message such as \'Your payment for the booking has been successfully received. [booking_confirm]\', providing users with confirmation of their payment along with booking details. (9.9.0.37) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1695 -
1696 - </ul>
1546 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1547 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1548 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar__form_builder_02.gif' ) ); ?>" style="margin:10px 0;width:98%;" />
1697 1549 </div>
1698 - <div class="wpbc_wn_col">
1699 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements in Free version' ) ); ?></h3>
1700 - <ul>
1701 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Ability to dismiss the booking statistic section at Booking > Settings General page in "Info / News" for improved admin panel loading speed. (9.9.0.8).' ) ); ?></li>
1702 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced **Performance** - To improve the speed of page loading in the admin panel, statistic functions will now run only on the Dashboard and Booking Calendar settings pages. This optimization ensures a smoother user experience by focusing resource-intensive tasks only where necessary. (9.9.0.40)' ) ); ?></li>
1703 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Prevent showing real preview in Elementor to reduce potential conflicts ); instead, show \'WP Booking Calendar Shortcode block\' (9.9.0.39).' ) ); ?></li>
1704 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Prevent execution of Booking Calendar shortcodes while editing posts/pages, reducing potential conflicts (9.9.0.39).' ) ); ?></li>
1705 - </ul>
1706 1550
1707 - <div style="clear:both;height:20px;"></div>
1708 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1551 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1709 1552 <ul>
1710 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Customize showing booked time slots as inactive slots with a red background after selecting specific dates. Configure this in the ../{Booking Calendar Folder}/js/wpbc_time-selector.js file by searching //FixIn: 9.9.0.2 (9.9.0.2).' ) ); ?></li>
1711 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Update the URLs for send transactions for Opayo - Elavon (former SagePay) to an Elavon domain on 31st March 2024. For more details, please refer to the following link: https://developer.elavon.com/products/opayo-forms/v1/test-and-live-urls-4633 (9.9.0.34) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1712 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Option to **Hide Payment Form After Visitor Edits Own Booking** - You now have the ability to define not to show the payment form after a visitor edits their own booking. This can be achieved by using the shortcode **[visitorbookingediturl]&is_show_payment_form=Off** in the New (visitor) email template at the WP Booking Calendar > Settings > Emails page. (9.9.0.35) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1553 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Drag & drop fields** from the Fields palette directly into the form canvas.' ) ); ?></li>
1554 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Live visual preview** while building and editing the form.' ) ); ?></li>
1555 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Rows and columns layout** for clean and structured form designs.' ) ); ?></li>
1556 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Nested sections** (up to 5 levels) for advanced multi-row and multi-column layouts.' ) ); ?></li>
1557 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Ready section layouts** with 1, 2, 3, or 4 columns.' ) ); ?></li>
1558 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Column resizing with visual resizers** for precise control of layout widths.' ) ); ?></li>
1559 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Multi-page forms** for creating step-by-step wizard-style booking forms.' ) ); ?></li>
1560 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Drag & drop sorting of sections** plus **Move Up / Move Down controls** for faster layout management.' ) ); ?></li>
1713 1561 </ul>
1714 -
1715 - <div style="clear:both;height:20px;"></div>
1716 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
1717 - <ul>
1718 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Hungarian Translation Update**. Translation has been updated, reaching 96% completion, courtesy of VinczeI.' ) ); ?></li>
1719 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **German Translation Update**. Translation has been updated, reaching 96% completion, courtesy of Wibias.' ) ); ?></li>
1720 - </ul>
1721 -
1722 1562 </div>
1723 1563 </div>
1724 - <div class="wpbc_wn_section">
1725 - <div class="wpbc_wn_col">
1726 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1727 - <ul>
1728 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved possible PHP 8 incompatibility issue (9.9.0.4).' ) ); ?></li>
1729 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved issue of showing top messages (9.9.0.10).' ) ); ?></li>
1730 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Corrected the issue of incorrectly showing today\'s date as an unavailable date in the calendar on servers with a timezone different from UTC, especially in American timezones (9.9.0.17).' ) ); ?></li>
1731 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Addressed the issue of incorrectly showing bookings in Calendar Overview and Timeline when the timezone was incorrectly defined by themes (in functions.php file) or other plugins via incorrectly defined the timezone via this PHP functions: like date_default_timezone_set(\'America/Chicago\') ); Even it is not correct way of defining timezone, relative to https://make.wordpress.org/core/2019/09/23/date-time-improvements-wp-5-3/ . Now plugin correctly resolve this issue. (9.9.0.18).' ) ); ?></li>
1732 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Re-created the "Thank you" confirmation page (such as https://server.com/wpbc-booking-received/) if the confirmation booking page was previously defined as follow: https://server.com/thank-you/ (9.9.0.27).' ) ); ?></li>
1733 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved fatal error: Uncaught Error: Cannot access offset of type string on string in ../wpbc-class-timeline_v2.php on line 3100 (9.9.0.30).' ) ); ?></li>
1734 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Search Availability** Functionality Issue - An issue has been resolved in the Search Availability functionality. Previously, it was not possible to find pages with booking form shortcodes when the booking resource was defined using the \'resource_id\' parameter instead of \'type\'. This fix ensures that the search functionality now works as expected, allowing users to locate pages with booking forms accurately. (9.9.0.26) *(Business Large, MultiUser)*' ) ); ?></li>
1735 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Correct Sorting Order for Booking Resources** - An issue has been addressed where the sorting order for booking resources in select-boxes was not defined correctly during the change of booking resource for a specific booking. This fix ensures that booking resources are displayed in the correct order. (9.9.0.23) *(Personal, Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1736 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Correction of Start Day Definition** - An issue has been **resolved where Sunday was incorrectly defined as the start day for selection** in specific seasons when using conditions in the shortcode. For example, when using a shortcode like [booking resource_id=1 options=\'{start-day condition="season" for="myHighSeason" value="0"},{select-day condition="season" for="myHighSeason" value="8,15,22,29"}\'], Sunday was inaccurately identified as the start day. This fix ensures that the start day for selection in specific seasons is correctly determined. (9.9.0.9) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1737 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Corrected Saving of Booking Dates** - An issue has been resolved where booking dates were incorrectly saved if the option "Set check out date as available" was activated at the WP Booking Calendar > Settings General page in the "Calendar" section. (9.9.0.19) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1738 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Corrected Redirect Issue for Failed Payments** - An issue has been addressed where users were incorrectly redirected to the home page instead of the failed URL when **payments failed via iDeal (Buckaroo)**. (9.9.0.24) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1739 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved an issue causing a possible PHP Fatal error has been resolved. This error, specifically the Uncaught TypeError: Unsupported operand types: null + string, occurred in the wpbc-calc-string.php file when non-standard shortcodes with arithmetic operations were used on the WP Booking Calendar > Prices > Form Options Costs page. (9.9.0.28) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1740 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Corrected Minimum Date Selection Issue** - An issue has been addressed where the minimum number of dates in the calendar was incorrectly selected if a user clicked twice on the same date, and the system had a minimum number defined higher than 1 day. (9.9.0.29) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1741 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Corrected End Time Selection Issue** - An issue has been resolved where, if the option "Use selected times for each booking date" was deactivated, the system incorrectly blocked end times when a user selected multiple dates. For example, if the start time was booked from 00:00 to 15:00, the system would block the end time until 15:00, even if the end date was fully available. (9.9.0.31) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1742 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Corrected Display Issue with Check-In/Out Dates** - An issue has been resolved where the check-in/out dates (triangles) were incorrectly shown as fully available dates in booking resources with specific capacity. This occurred when one of the child booking resources had a change-over dates situation rather than being fully booked. (9.9.0.33) *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
1743 - </ul>
1744 - </div>
1745 - </div>
1746 1564
1747 - </div><?php
1748 - // </editor-fold>
1749 1565
1566 + <div class="wpbc_wn_section">
1567 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Smart Editing and Form Controls' ) ); ?></h2>
1750 1568
1751 - $obj->expand_section_end( $section_param_arr );
1752 -}
1569 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 1% 0 0;">
1570 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1571 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar_10_15_sidebar_inspector_02.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1572 + </div>
1753 1573
1754 -function wpbc_welcome_section_9_9( $obj ){
1574 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 0 0 1%;">
1575 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1576 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar_10_15_field_limits_02.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1577 + </div>
1755 1578
1756 - $section_param_arr = array( 'version_num' => '9.9', 'show_expand' => true );
1757 -
1758 - $obj->expand_section_start( $section_param_arr );
1759 -
1760 -
1761 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2023-11-06 comment this
1762 -
1763 -
1764 - // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1765 - // -----------------------------------------------------------------------------------------------------------------
1766 - // = F R E E =
1767 - // -----------------------------------------------------------------------------------------------------------------
1768 - ?><div class="wpbc_wn_container">
1769 - <div class="wpbc_wn_section">
1770 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Explore Enhanced User Experience' ) ); ?></h2>
1771 - <div class="wpbc_wn_col">
1772 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhancements in Booking Admin Panel UI' ) ); ?></h3>
1579 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1773 1580 <ul>
1774 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Redesigned "Top Tabs" for page selection in the Booking Calendar Admin UI. This update enhances space utilization, resulting in a clearer and smoother interface for users.' ) ); ?></li>
1581 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Right sidebar inspector**: Easily edit field and section settings in a clear visual interface.' ) ); ?></li>
1582 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Field usage limits**: The Builder automatically prevents adding one-time fields, such as the Calendar field, more than once.' ) ); ?></li>
1583 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Responsive-friendly column width control** with layout protection for more stable form structure.' ) ); ?></li>
1584 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved visual editing controls** for easier field, section, and layout management directly inside the canvas.' ) ); ?></li>
1775 1585 </ul>
1776 1586 </div>
1777 - <div class="wpbc_wn_col">
1778 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1779 - <img src="<?php echo esc_attr( $obj->section_img_url( '9.9/wp_booking_calendar_admin_panel_01.png' ) ); ?>" />
1780 - </div>
1781 1587 </div>
1782 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1783 - </div>
1784 - <?php
1785 1588
1786 - ?><div class="wpbc_wn_container">
1589 +
1787 1590 <div class="wpbc_wn_section">
1788 - <div class="wpbc_wn_col">
1789 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Easy Booking Form Integration' ) ); ?></h3>
1591 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Better Form Management and Reuse' ) ); ?></h2>
1592 +
1593 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1790 1594 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1791 - <img src="<?php echo esc_attr( $obj->section_img_url( '9.9/wp_booking_calendar_publish_02.gif' ) ); ?>" />
1595 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wpbc_11_0_form_management_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1596 + </div>
1597 +
1598 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1792 1599 <ul>
1793 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Now it\'s super easy to put your booking form into the pages of your website. Explore the new "Resource" menu in the free version, where you can find \'Publish\' button or use the new \'Publish\' button on the Booking > Resources page in paid versions. Add the form to any page with a few clicks. Simple as that!' ) ); ?></li>
1600 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Predefined templates:** Start building your new booking form with ready-made templates.' ) ); ?></li>
1601 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Save and restore complete form layouts** including pages, sections, columns, and fields.' ) ); ?></li>
1602 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Duplicate existing form configurations** to create similar forms much faster.' ) ); ?></li>
1603 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Save As workflow**: Create a new form based on an existing layout and settings.' ) ); ?></li>
1604 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Flexible form configuration management** for creating, saving, loading, organizing, and previewing custom forms.' ) ); ?></li>
1605 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Form details management**: Set a custom form title, slug, description, and image.' ) ); ?></li>
1606 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Media library integration** for selecting a custom image for each form configuration.' ) ); ?></li>
1794 1607 </ul>
1795 1608 </div>
1796 1609 </div>
1797 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1798 - </div>
1799 - <?php
1800 1610
1801 - // </editor-fold>
1802 1611
1803 -
1804 - // -----------------------------------------------------------------------------------------------------------------
1805 - // = P A I D =
1806 - // -----------------------------------------------------------------------------------------------------------------
1807 - ?>
1808 - <div class="wpbc_wn_container">
1809 1612 <div class="wpbc_wn_section">
1810 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Changes in Premium Versions' ) ); ?></h2>
1811 - </div>
1613 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Preview, Import, and Flexible Workflow' ) ); ?></h2>
1812 1614
1813 - <div class="wpbc_wn_section">
1814 - <div class="wpbc_wn_col">
1815 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New PayPal Standard Checkout integration.' ) ); ?></h3>
1816 - <?php
1817 - echo '<ul>'
1818 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'Integrated **PayPal Standard Checkout** payment gateway. Enjoy various payment methods, including **card payments and PayPal**. Choose from different designs for PayPal buttons. The system now automatically responds from the PayPal, updating the booking status and payment status. *(Available in Business Small/Medium/Large, MultiUser versions).*' ) . '</li>'
1819 - . '</ul>' );
1820 - ?>
1615 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 1% 0 0;">
1821 1616 <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1822 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.9/wp_booking_calendar_paypal_setup_03.gif" />
1617 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wpbc_11_0_preview_page_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1823 1618 </div>
1824 - </div>
1825 - </div>
1826 - <?php
1827 1619
1620 + <div class="wpbc_wn_col" style="flex: 1 1 48%;margin: 0 0 0 1%;">
1621 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1622 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.15/wp_booking_calendar_10_15_advanced_mode.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1623 + </div>
1828 1624
1829 -
1830 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
1831 - // -----------------------------------------------------------------------------------------------------------------
1832 - // = M I X E D =
1833 - // -----------------------------------------------------------------------------------------------------------------
1834 - ?>
1835 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1836 - <div class="wpbc_wn_container">
1837 - <div class="wpbc_wn_section">
1838 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
1839 - </div>
1840 -
1841 - <div class="wpbc_wn_section">
1842 - <div class="wpbc_wn_col">
1843 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Improvements' ) ); ?></h3>
1625 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1844 1626 <ul>
1845 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The Prices menu now includes options such as "Seasonal Rates" (formerly "Rates"), "Duration-Based Cost" (formerly "Valuation days"), "Partial Payments" (formerly "Deposit"), "Form Options Costs" (formerly "Advanced costs"), and "Payment Gateways." This centralized location allows you to manage all prices for bookings in one place. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1846 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The "Availability" section has a new structure and titles. Now, the configuration of all "Calendars Availability" is located in the "Availability" menu page and its sub-pages, including "Days Availability," "Season Availability" (formerly "Availability"), and "General Availability." This provides a centralized location to manage all availability settings for calendars. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1847 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; The Resources menu now features an enhanced toolbar UI for creating new booking resources and managing options. This improvement provides a more user-friendly experience for resource management. *(Paid versions)*' ) ); ?></li>
1848 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Implemented the addition of the "autocomplete" attribute to the booking form fields. This enhancement ensures correct autofill functionality in the Chrome browser when using autofill addons. *(Paid versions)*' ) ); ?></li>
1849 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Show super booking admin currency at front-end, instead of regular user defined currency, if was activated "Receive all payments only to Super Booking Admin account" option at the Booking > Settings General page in "Multiuser Options" section. (9.8.9.3) *(MultiUser)*' ) ); ?></li>
1850 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Updated Top WordPress Bar menu for Booking Calendar (9.8.15.9)' ) ); ?></li>
1627 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Preview page / live front-end preview**: Test how the form looks and works before publishing it on your website.' ) ); ?></li>
1628 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Import existing legacy booking forms** into the new Builder for easier transition to the visual workflow.' ) ); ?></li>
1629 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Builder mode and Advanced Form mode**: Work visually or keep manual form configuration when needed.' ) ); ?></li>
1630 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Blank form creation in Builder mode** lets you start new forms immediately in the visual editor.' ) ); ?></li>
1631 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Section presets** help you insert commonly used layout structures faster.' ) ); ?></li>
1851 1632 </ul>
1852 1633 </div>
1853 - <div class="wpbc_wn_col">
1854 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Features' ) ); ?></h3>
1855 - <ul>
1856 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Easy weekdays selection in "Season Dates Filter". Now, you can easily select specific weekday(s) in specific year and append or remove additional dates by using range "Dates Filter" at Booking > Resources > Filters page. (9.8.6.3) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
1857 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing the **Server Balancer**, a feature designed for low-level hosting systems with limited server resources. Useful for scenarios where multiple calendars need to load bookings simultaneously on the same page or when using resource selection shortcode for many calendars. Now, you have the ability to define the number of parallel requests sent to the server. A lower number of parallel requests minimizes the impact on the server but extends the time required to load all calendars. Calendars will send requests only after the previous request is finished. By customizing the number of parallel requests, you can find the optimal balance for your specific server, especially when using numerous calendars on the same page. Simply set the value of parallel requests at Booking > Settings General page in the Advanced section. (9.8.6.2)' ) ); ?></li>
1858 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Introducing General Import Conditions options for importing events into the Booking Calendar for all booking resources. You can now enable the option **Import if Dates Available** to import events only if dates are available in the source calendar. Additionally, the option **Import Only New Events** allows you to import only if the event has not been imported before. This last option replaces the deprecated "Force import" option and can be configured at Booking > Settings > Sync > "General" page in the "Import advanced" section. (9.8.15.8)' ) ); ?></li>
1859 - </ul>
1860 - </div>
1861 1634 </div>
1635 +
1636 +
1862 1637 <div class="wpbc_wn_section">
1863 - <div class="wpbc_wn_col">
1864 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1638 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Important Note About the Beta Builder' ) ); ?></h2>
1639 +
1640 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1865 1641 <ul>
1866 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Now you can aggregate only \'**bookings**\' without including unavailable dates from the \'Booking > Availability > Days Availability\' page. If you use the \'**aggregate**\' parameter in the Booking Calendar shortcode and wish to include only bookings, utilize the new parameter: **options="{aggregate type=bookings_only}"**. For instance, in the shortcode example below, we aggregate only bookings: <code>[bookingselect type=\'3,4\' aggregate=\'3 );4\' options="{aggregate type=bookings_only}"]</code> (9.8.15.10)' ) ); ?></li>
1867 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Ability to define inline checkboxes and radio buttons using <code>&lt;r&gt;&lt;c&gt;...&lt;/c&gt;&lt;/r&gt;</code> constructions. For this, use the new element: <code>&lt;r&gt;&lt;c&gt;&lt;div class="wpbc_row_inline"&gt;...&lt;/div&gt;&lt;/c&gt;&lt;/r&gt;</code>. Example #1: <code>&lt;r&gt;&lt;c&gt;&lt;p class="wpbc_row_inline"&gt;&lt;l&gt;[checkbox terms "I accept"]&lt;a href="#"&gt;terms and conditions&lt;/a&gt;&lt;/l&gt;&lt;/p&gt;&lt;/c&gt;&lt;/r&gt;</code> Example #2: <code>&lt;r&gt;&lt;c&gt;&lt;p class="wpbc_row_inline"&gt;&lt;l&gt;Fee: [checkbox somefee default:on ""]&lt;/l&gt;&lt;/p&gt;&lt;/c&gt;&lt;/r&gt;</code> Example #3: <code>&lt;r&gt;&lt;c&gt;&lt;p class="wpbc_row_inline"&gt;&lt;l&gt;Club: [radio* clubanlass default:No "No" "Yes"]&lt;/l&gt;&lt;/p&gt;&lt;/c&gt;&lt;/r&gt;</code> (9.8.8.1)' ) ); ?></li>
1868 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Improved dates selection mode. Introducing a new JavaScript functions for defining simple customization of different date selections for various calendars. Find more information on <a href="https://wpbookingcalendar.com/faq/advanced-javascript-for-the-booking-shortcodes/">this page</a>.' ) ); ?></li>
1869 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; In case, if you want to wrap checkbox with text in label use parameter "label_wrap" in the shortcode construction: <code>[checkbox* terms label_wrap use_label_element "I Accept"]</code>. System make DOM construction such as: <code>&lt;label for="cid"&gt;&lt;input class="wpdev-validates-as-required wpdev-checkbox" id="cid" type="checkbox" name="terms" value="I Accept"&gt;&nbsp;&nbsp;I Accept&lt;/label&gt;</code> (9.8.13.2)' ) ); ?></li>
1870 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; In case, if you want to use labels and checkbox separately, please use shortcode construction: <code>[checkbox* terms use_label_element "I Accept"]</code>. System make DOM construction such as: <code>&lt;input class="wpdev-validates-as-required wpdev-checkbox" id="cid" type="checkbox" name="terms" value="I Accept"&gt;&nbsp;&nbsp;&lt;label for="cid"&gt;I Accept&lt;/label&gt;</code> (9.8.13.2)' ) ); ?></li>
1642 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **This feature is currently in Beta** and can still be disabled at any time.' ) ); ?></li>
1643 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; To return to the previous legacy booking form configuration, go to **Form Builder > Settings** in the right sidebar and disable the **"Drag & Drop Form Builder"** option.' ) ); ?></li>
1871 1644 </ul>
1872 1645 </div>
1873 1646 </div>
1874 - <div class="wpbc_wn_section">
1875 - <div class="wpbc_wn_col">
1876 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
1877 - <ul>
1878 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved an issue where bookings with zero cost were not automatically approved when the option "Auto approve booking if booking cost is zero" was activated in the Booking > Settings General page under the "Auto Cancellation / Auto Approval" section.' ) ); ?></li>
1879 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved a fatal error: Uncaught TypeError: Unsupported operand types: string * int in ../core/sync/wpbc-gcal-class.php' ) ); ?></li>
1880 - </ul>
1881 - </div>
1882 - <div class="wpbc_wn_col">
1883 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
1884 - <ul>
1885 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **German Translation Update**. Translation has been updated, reaching 94% completion, courtesy of Res Rickli' ) ); ?></li>
1886 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **French Translation Update**. Translation has been updated, reaching 93% completion, courtesy of Res Rickli' ) ); ?></li>
1887 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Italian Translation Update**. Translation has been updated, reaching 85% completion, courtesy of Res Rickli' ) ); ?></li>
1888 - </ul>
1889 - </div>
1890 - </div>
1891 1647
1892 - </div><?php
1893 - // </editor-fold>
1648 + </div>
1649 + <?php
1894 1650
1895 -
1896 1651 $obj->expand_section_end( $section_param_arr );
1897 1652 }
1898 1653
1899 -function wpbc_welcome_section_9_8( $obj ){
1654 +function wpbc_welcome_section_10_14( $obj ){
1900 1655
1901 - $section_param_arr = array( 'version_num' => '9.8', 'show_expand' => true );
1656 + $section_param_arr = array( 'version_num' => '10.14', 'show_expand' => true );
1902 1657
1903 1658 $obj->expand_section_start( $section_param_arr );
1904 1659
1905 1660
1906 - //$obj->asset_path = 'http://beta/assets/'; // TODO: 2023-11-06 comment this
1661 + // $obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
1907 1662
1908 1663
1909 1664 // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1910 1665 // -----------------------------------------------------------------------------------------------------------------
@@ -1910,340 +1664,102 @@
1910 1664 // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1911 1665 // -----------------------------------------------------------------------------------------------------------------
1912 1666 // = F R E E =
1913 1667 // -----------------------------------------------------------------------------------------------------------------
1914 - ?><div class="wpbc_wn_container">
1668 + ?>
1669 + <div class="wpbc_wn_container">
1915 1670 <div class="wpbc_wn_section">
1916 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Experience a smoother and more efficient booking process' ) ); ?></h2>
1917 - <div class="wpbc_wn_col">
1918 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Completely New Availability / Capacity engine' ) ); ?></h3>
1919 - <ul>
1920 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'The calendar now dynamically loads bookings with smooth animations, enhancing the overall speed and user experience.' ) ); ?></li>
1921 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'The system is now highly proactive in preventing double bookings. It checks availability at multiple stages, whether it\'s during calendar loading or when users submit bookings. This ensures that double bookings are effectively eliminated. Even if multiple users attempt bookings for the same date/time from different locations at the same time.' ) ); ?></li>
1922 - </ul>
1671 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Control start and end dates for booking and availability' ) ); ?></h2>
1672 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1673 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1674 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.14/wp_booking_calendar_elementor_advanced_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1675 + <span><span style="font-size: 0.9em;font-style: italic;"><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></span>
1923 1676 </div>
1924 - <div class="wpbc_wn_col">
1925 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1926 - <img src="<?php echo esc_attr( $obj->section_img_url( '9.8/wp_booking_calendar_form_01.gif' ) ); ?>" style="margin-top:3.5em;"/>
1927 - </div>
1928 - </div>
1929 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1930 - <div class="wpbc_wn_section">
1931 - <div class="wpbc_wn_col">
1932 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1933 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_form_dark_02.gif" />
1934 - </div>
1935 - <div class="wpbc_wn_col">
1936 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Introducing the Dark Theme for Booking Form' ) ); ?></h3>
1937 - <?php
1938 - echo '<ul>'
1939 - //. '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'In our latest update you have the option to switch to a "Dark" theme for your booking form.' ) . '</li>'
1940 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'With this new option, you can seamlessly integrate your booking form into your website\'s design. This Theme automatically selects the appropriate calendar and time picker skins, adjusts the colors of your booking form fields, labels, text, and other UI elements.' ) ). '</li>'
1941 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'If you prefer Dark design, now you can select it' ) ). '</li>'
1942 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'To enable the Dark Theme, head to the Settings General Page, find the "Form Options" section, and select "Dark" from the "Color Theme" dropdown.' ) ). '</li>'
1943 - . '</ul>' ;
1944 - ?>
1945 - </div>
1946 - </div>
1947 -
1948 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1949 - <div class="wpbc_wn_section">
1950 - <div class="wpbc_wn_col">
1951 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Performance improvements.' ) ); ?></h3>
1952 - <?php
1953 - echo wp_kses_post( '<ul>'
1954 - . '<li>' . wpbc_replace_to_strong_symbols( 'We\'ve supercharged Booking Calendar with significant speed improvements. Compared to previous updates.' ) . '</li>'
1955 - . '<li>' . wpbc_replace_to_strong_symbols( 'Page loading now happens **34% to 78% faster**. The speed boost varies depending on the number of bookings and number of calendars on your page (multiple calendars in paid versions of Booking Calendar).' ) . '</li>'
1956 - . '<li>' . wpbc_replace_to_strong_symbols( 'Server request execution speed has **improved from 63% to 94%** when you load your initial calendar.' ) . '</li>'
1957 - . '<li>' . wpbc_replace_to_strong_symbols( 'We\'ve streamlined the system to **reduce the number of SQL requests** for your initial page loading by **49%** to a staggering **89%**.' ) . '</li>'
1958 - . '<li>' . wpbc_replace_to_strong_symbols( 'All these speed enhancements have been tested with 500 active bookings.' ) . '</li>'
1959 - . '</ul>' );
1960 - ?>
1961 - </div>
1962 - </div>
1963 -
1964 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1965 - <div class="wpbc_wn_section">
1966 - <div class="wpbc_wn_col">
1967 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1968 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_booking_confirmation_01.gif" />
1969 - </div>
1970 - <div class="wpbc_wn_col">
1971 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Booking Confirmation Section' ) ); ?></h3>
1972 - <?php
1973 - echo '<ul>'
1974 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'Introduced a new Booking Confirmation section that provides users with a **summary of their booking details**, making it easy for users to confirm their reservations after completing the booking process. This feature allows users to quickly review essential booking information. \'Booking confirmation\' section located on the Booking > Settings General page. Previously, it was located in the \'Form\' section as \'Thank you\' message/page.' ) . '</li>'
1975 - . '</ul>' );
1976 - ?>
1977 - </div>
1978 - </div>
1979 -
1980 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1981 - <div class="wpbc_wn_section">
1982 - <div class="wpbc_wn_col">
1983 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Enhancements in Settings Interface' ) ); ?></h3>
1677 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1984 1678 <ul>
1985 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Structured General Settings Page:** Redesigned the General Settings page to enhance user experience. The new layout includes a clear navigation column that displays the specific section you click on, making it easier to understand settings, quickly find specific options, and simplify the configuration of the plugin.' ) ); ?></li>
1986 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Toggle Boxes:** Replaced checkboxes in the Booking Calendar User Interface with toggle boxes. This change provides a clearer view of enabling specific options and features, particularly for enabling/disabling Rates and Availability in paid versions.' ) ); ?></li>
1679 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Control which dates are shown!**: You can now control which dates are shown in the Booking Calendar by using two new shortcode parameters: **[booking resource_id=1 calendar_dates_start=\'2025-01-01\' calendar_dates_end=\'2025-12-31\']**' ) ); ?></li>
1680 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: Ability to **set the start and end dates for the calendar** using shortcode parameters. Example: [booking resource_id=1 calendar_dates_start=\'2025-01-01\' calendar_dates_end=\'2025-12-31\' startmonth=\'2025-3\']' ) ); ?></li>
1681 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: If startmonth is omitted, the calendar will now automatically use the month from calendar_dates_start as the initial display month. Example: [booking resource_id=1 calendar_dates_start=\'2025-01-01\' calendar_dates_end=\'2025-12-31\']' ) ); ?></li>
1682 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: New: You can now **allow users to submit bookings for past dates**, as long as those dates are within the visible range set by calendar_dates_start and calendar_dates_end in the shortcode. Useful for administrative or backdated bookings. Shortcode Example: [booking resource_id=1 calendar_dates_start=\'2025-01-01\' calendar_dates_end=\'2025-12-31\']' ) ); ?></li>
1683 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New**: Elementor native supports of these parameters calendar_dates_start=\'2025-01-01\' calendar_dates_end=\'2025-12-31\' in Advanced section.' ) ); ?></li>
1684 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: When calendar_dates_start and calendar_dates_end are defined in the shortcode, the system skips checking availability from today, and instead starts from the defined calendar_dates_start.' ) ); ?></li>
1685 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improvement**: To **enable the new Smart Phone Validation** feature introduced in the previous update, go to: WP Booking Calendar > Settings > Booking Form > Form Options and enable the "Smart Phone Validation" option. It is disabled by default.' ) ); ?></li>
1987 1686 </ul>
1988 1687 </div>
1989 - <div class="wpbc_wn_col">
1990 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1991 - <img src="<?php echo esc_attr( $obj->section_img_url( '9.8/wp_booking_calendar_settings_02.gif' ) ); ?>" style="margin-top:3.5em;"/>
1992 - </div>
1993 1688 </div>
1994 1689 </div>
1995 1690 <?php
1996 1691
1997 - // </editor-fold>
1692 + $obj->expand_section_end( $section_param_arr );
1693 +}
1998 1694
1695 +function wpbc_welcome_section_10_13( $obj ){
1999 1696
2000 - // -----------------------------------------------------------------------------------------------------------------
2001 - // = P A I D =
2002 - // -----------------------------------------------------------------------------------------------------------------
2003 - ?>
2004 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2005 - <div class="wpbc_wn_container">
2006 - <div class="wpbc_wn_section">
2007 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Changes in Premium Versions' ) ); ?></h2>
2008 - </div>
1697 + $section_param_arr = array( 'version_num' => '10.13', 'show_expand' => true );
2009 1698
2010 - <div class="wpbc_wn_section">
2011 - <div class="wpbc_wn_col">
2012 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2013 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_time_capacity_09.gif" />
2014 - </div>
2015 - <div class="wpbc_wn_col">
2016 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'New Capacity Engine for time-slots' ) ); ?></h3>
2017 - <?php
2018 - echo '<ul>'
2019 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'With the new capacity engine, you can define booking capacities for your calendar, allowing you to receive a **specific number of bookings per time slots or full dates**. This enhances your control over bookings compared to the previous version, which only supported specific booking limits for full dates. *(Available in Business Large, MultiUser versions).*' ) . '</li>'
2020 - . '</ul>' );
2021 - ?>
2022 - </div>
2023 - <div class="wpbc_wn_col">
2024 - <?php
2025 - echo wp_kses_post( '<ul>'
2026 - . '<li>' . wpbc_replace_to_strong_symbols( 'The the capacity feature ensures that the **total number of bookings for specific dates or times does not exceed the specified capacity**. This functionality is versatile and can be applied to various scenarios where you need to manage and limit bookings for specific resources to maintain efficient operations.' ) . '</li>'
2027 - . '<li>' . wpbc_replace_to_strong_symbols( '**Booking Quantity Control:** Enabled the ability to enable and define a field for \'Booking Quantity Control,\' allowing visitors to define the number of items they can book for specific dates or times within a single reservation. Find this option in **New Capacity** section on Booking > Settings General page. *(Business Large, MultiUser)*' ) . '</li>'
2028 - . '<li>' . wpbc_replace_to_strong_symbols( '**Capacity Shortcode:** Added the Capacity shortcode for showing available (remained) slots per selected dates and times: <code>[capacity_hint]</code>. You can use it in the booking form at the Booking > Settings > Form page. *(Business Large, MultiUser)*' ) . '</li>'
2029 - . '</ul>' );
2030 - ?>
2031 - </div>
2032 - </div>
1699 + $obj->expand_section_start( $section_param_arr );
2033 1700
2034 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2035 - <div class="wpbc_wn_section">
2036 - <div class="wpbc_wn_col">
2037 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2038 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_payments_01.gif" />
2039 - </div>
2040 - <div class="wpbc_wn_col">
2041 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Redesigned Payment Buttons' ) ); ?></h3>
2042 - <?php
2043 - echo wp_kses_post( '<ul>'
2044 - . '<li>' . wpbc_replace_to_strong_symbols( '**Redesigned Payment Buttons:** Payment buttons in the new Booking Confirmation window have been redesigned for a more user-friendly experience. *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2045 - . '<li>' . wpbc_replace_to_strong_symbols( '**Payment System Responses:** Now, responses from payment systems after visitors\' payments are recorded in the Note section of the booking, provided "Logging actions for booking" is activated at the Booking > Settings General page in the "Booking Admin Panel" section. Also the booking log now keeps track of booking details, such as cost calculations, actions related to payment request pages via email links, and other important events. *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2046 - . '</ul>' );
2047 - ?>
2048 - </div>
2049 - <div class="wpbc_wn_col">
2050 - <?php
2051 - echo '<ul>'
2052 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Additional Notes:** Added the ability to add extended notes about "Total Cost | Discounts applied | Subtotal cost | Deposit Due | Balance Remaining" after creating the booking. Also, added notes about the approval of the booking by the payment system after a response from the Payment gateway. Notes are now added for bookings that were imported from Google Calendar. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2053 - . '</ul>' );
2054 - ?>
2055 - </div>
2056 - <div class="wpbc_wn_col">
2057 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2058 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_extended_notes.png" />
2059 - </div>
2060 - </div>
2061 1701
2062 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2063 - <div class="wpbc_wn_section">
2064 - <div class="wpbc_wn_col">
1702 + // $obj->asset_path = 'http://beta/assets/'; // TODO: 2024-06-01 comment this
2065 1703
2066 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Showing Customizable Booking Details in Tooltip' ) ); ?></h3>
2067 - <?php
2068 - echo wp_kses_post( '<ul>'
2069 - . '<li>' . wpbc_replace_to_strong_symbols( '**Booking Details Tooltip:** Added the ability to show booking details in a mouse-over tooltip for specific booked dates or times during a day, significantly improving the speed of this functionality. <br>This can now **show booking details even for fully booked dates**. ' ) . '</li>'
2070 - . '<li>' . wpbc_replace_to_strong_symbols( 'It\'s a helpful feature for businesses with booking workflows that require displaying information about the users who\'ve made the bookings or for similar neighborhood-based use cases.<br>*(Business Medium/Large, MultiUser)*' ) . '</li>'
2071 - . '</ul>' );
2072 - ?>
2073 - </div>
2074 - <div class="wpbc_wn_col">
2075 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2076 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_display_booking_details_05.gif" />
2077 - </div>
2078 - </div>
2079 1704
2080 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
1705 + // <editor-fold defaultstate="collapsed" desc=" = F R E E = " >
1706 + // -----------------------------------------------------------------------------------------------------------------
1707 + // = F R E E =
1708 + // -----------------------------------------------------------------------------------------------------------------
1709 + ?>
1710 + <div class="wpbc_wn_container">
2081 1711 <div class="wpbc_wn_section">
2082 - <div class="wpbc_wn_col">
2083 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2084 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_display_unavailable_before_after_02.gif" />
1712 + <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Smarter Bookings, Elementor Integration and Cleaner Interface' ) ); ?></h2>
1713 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1714 + <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Booking Calendar meets Elementor!**' ) ); ?></h3>
1715 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1716 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.13/wp_booking_calendar_elementor_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1717 + <span><span style="font-size: 0.9em;font-style: italic;"><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></span>
2085 1718 </div>
2086 - <div class="wpbc_wn_col">
2087 -
2088 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Set Unavailable Time Before or After Bookings' ) ); ?></h3>
2089 - <?php
2090 - echo '<ul>'
2091 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'This feature improves the engine for defining a specific period of unavailability before or after bookings. It now works in all scenarios, even for fully booked dates. When you select multiple dates and specific times for a booking, the system extends the unavailable time interval for those time slots on each day.' ) . '</li>'
2092 -
2093 - . '</ul>' );
2094 - ?>
1719 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
1720 + <ul>
1721 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Full Elementor Support!**: Design and customize your booking forms directly inside the Elementor editor—with real-time form previews and a built-in skin selector. No more shortcode guesswork—just drag, configure, and save!' ) ); ?></li>
1722 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Calendar Preloader:** We’ve added a smooth-loading preloader bar that prevents layout jumps on slower connections, ensuring a polished experience for your visitors.' ) ); ?></li>
1723 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **New Booking Form Template – Service Selection Wizard (Pro):** Perfect for appointment-based bookings: this template features a left-side service selector with a streamlined date/time step for faster, easier bookings.' ) ); ?></li>
1724 + </ul>
2095 1725 </div>
2096 - <div class="wpbc_wn_col">
2097 - <?php
2098 - echo '<ul>'
2099 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'It\'s a great feature for preparing your property or service before or after a specific booking, such as allowing time for cleaning.<br>*(Business Medium/Large, MultiUser)*' ) . '</li>'
2100 - . '</ul>' );
2101 - ?>
2102 - </div>
2103 1726 </div>
2104 -
2105 1727 <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2106 1728 <div class="wpbc_wn_section">
2107 - <div class="wpbc_wn_col">
2108 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Simple HTML Configuration' ) ); ?></h3>
2109 - <?php
2110 - echo '<ul>'
2111 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'Now, you can organize your booking form fields in rows and columns using the new Simple HTML shortcodes. This makes configuring your booking form even easier.' ) ). '</li>'
2112 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Here\'s how it works:**' ) ). '</li>'
2113 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( 'Example of how to create a single row with 2 columns:' ) ). '</li>'
2114 - . '<li><pre>&lt;r&gt;<br> &lt;c&gt;...&lt;/c&gt;<br> &lt;c&gt;...&lt;/c&gt; <br>&lt;/r&gt;</pre></li>'
2115 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**With this feature, you have the flexibility to design your booking form exactly as you need it.**' ) ). '</li>'
2116 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( ' *(Available in all paid versions).*' ) ) . '</li>'
2117 - . '</ul>' ;
2118 - ?>
1729 + <div class="wpbc_wn_col" style="flex: 1 1 45%;margin: 10px 0;">
1730 + <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Cleaner & More Intuitive Interface**' ) ); ?></h3>
1731 + <ul>
1732 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Updated Sidebar Navigation:** All plugin menus now live in a single, collapsible sidebar—easier to navigate and quicker to access.' ) ); ?></li>
1733 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Visual Polish & UX Tweaks:** We’ve made subtle design upgrades across the board: improved calendar styling, better visual hierarchy, smarter warnings (e.g., duplicate calendar IDs), and more compact menu visuals in compact mode.' ) ); ?></li>
1734 + </ul>
2119 1735 </div>
2120 - <div class="wpbc_wn_col">
2121 - <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
2122 - <img src="<?php echo esc_attr( $obj->asset_path ); ?>9.8/wp_booking_calendar_simple_html_09.gif" />
2123 - <?php
2124 - echo '<ul>'
2125 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Create Rows**: Use <code>&lt;r&gt;...&lt;/r&gt;</code> tags to defines a row in your form.' ) ). '</li>'
2126 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Add Columns**: Inside each row, you can specify columns using <code>&lt;c&gt;...&lt;/c&gt;</code> tags.' ) ). '</li>'
2127 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Label Fields**: Use the <code>&lt;l&gt;...&lt;/l&gt;</code> tags.' ) ). '</li>'
2128 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Spacer**: <code>&lt;spacer&gt;&lt;/spacer&gt;</code> or <code>&lt;spacer&gt;width:1em;&lt;/spacer&gt;</code>.' ) ). '</li>'
2129 - . '</ul>';
2130 - ?>
1736 + <div class="wpbc_wn_col" style="flex: 1 1 50%;margin: 0px 0;">
1737 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1738 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.13/vertical_menu_01.png' ) ); ?>" style="margin:10px 0;width:98%;" />
1739 + <span><span style="font-size: 0.9em;font-style: italic;"><?php //echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Available in the Booking Calendar Business Small or higher versions' ) ); ?></span></span>
2131 1740 </div>
2132 - <div class="wpbc_wn_col">
2133 - <?php
2134 - echo '<ul>'
2135 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Simplified field data tag**: <code>&lt;f&gt;...&lt;/f&gt;</code>. Easily highlight field data by enclosing it within <code>&lt;f&gt;...&lt;/f&gt;</code> tags in the \'Content of booking fields data\' section on the Booking &gt; Settings &gt; Form page. For example: <code>&lt;f&gt;[secondname]&lt;/f</code>. This will highlight the background of the field on the Booking Listing page. *(All Pro Versions)*' ) ). '</li>'
2136 - . '</ul>';
2137 - ?>
2138 - </div>
2139 1741 </div>
2140 -
2141 1742 <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2142 -
2143 1743 <div class="wpbc_wn_section">
2144 - <div class="wpbc_wn_col">
2145 - <?php
2146 - echo '<ul>'
2147 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Different Rates for options in select-boxes:** Now, different rates are supported, depending on the selection of options in select-boxes. Example of rate configuration at Booking > Resources > Cost and rates > Rate page: <code>[visitors=1:270 );2:300;3:380;4:450]</code> (9.8.0.5) *(Business Medium/Large, MultiUser)*' ) ) . '</li>'
2148 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Date Selection Condition:** Added a condition for defining a specific number of selected dates if started from a specific date. Condition format: <code>\'{select-day condition="date" for="2023-10-01" value="20,25,30-35"}\'</code>. Example of shortcode: <code>[booking type=3 options=\'{select-day condition="date" for="2023-10-01" value="20,25,30-35"}\']</code> *(Business Medium/Large, MultiUser)*' ) ). '</li>'
2149 - . '<li>' . wp_kses_post( wpbc_replace_to_strong_symbols( '**Cancellation Date Hint Shortcode:** Introduced the <code>[cancel_date_hint]</code> shortcode, which shows the date that is 14 days before the selected check-in date. (9.7.3.16) *(Business Medium/Large, MultiUser)*' ) ). '</li>'
2150 - . '</ul>' ;
2151 - ?>
2152 - </div>
2153 - </div>
2154 - </div>
2155 - <?php
2156 -
2157 -
2158 -
2159 - // <editor-fold defaultstate="collapsed" desc=" = M I X E D = " >
2160 - // -----------------------------------------------------------------------------------------------------------------
2161 - // = M I X E D =
2162 - // -----------------------------------------------------------------------------------------------------------------
2163 - ?>
2164 - <hr class="wpbc_hr_dots"><?php // ---------------------------------------------------------------------- ?>
2165 - <div class="wpbc_wn_container">
2166 - <div class="wpbc_wn_section">
2167 - <h2><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Additional Improvements in Free and Pro versions' ) ); ?></h2>
2168 - </div>
2169 -
2170 - <div class="wpbc_wn_section">
2171 - <div class="wpbc_wn_col">
1744 + <div class="wpbc_wn_col" style="flex: 1 1 45%;margin: 10px 0;">
1745 + <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**Smart Phone Validation**' ) ); ?></h3>
2172 1746 <ul>
2173 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Toolbar Enhancement** Added a \'Reset\' button at Booking > Add booking page for the toolbar of configuring calendar size.' ) ); ?></li>
2174 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Date : Time** section on the Booking > Settings General page, making it easier to configure date and time options. Now, the \'Time format\' option is also available in the Booking Calendar Free version.' ) ); ?></li>
2175 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Daylight Saving Time Fix:** Resolved the \'Daylight Saving Time\' issue that existed on some servers (possibly due to themes or other plugins defining different timezones than those in WordPress via date_default_timezone_set(...) )), ensuring localized dates and times work correctly for all booking dates/times without the need to activate any options in the settings.' ) ); ?></li>
2176 -
2177 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved Google Calendar Import:** Improved the actual cron system for importing Google Calendar events, allowing you to set import time intervals starting from 15 minutes. The system now shows the last and next time of importing at the Booking > Settings > Sync > "Import Google Calendar Events" page.' ) ); ?></li>
2178 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Pseudo Cron** System updated for google calendar imports.' ) ); ?></li>
2179 -
2180 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Scrolling Enhancement:** Enhanced scrolling to specific elements in the booking form, ensuring that the system will not create a new scroll if the previous one was not finished.' ) ); ?></li>
2181 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Legend Position:** Moved \'Show legend below calendar\' to the \'Calendar\' section on the Booking > Settings General page. Previously, it was located in the \'Form\' section.' ) ); ?></li>
2182 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Deprecated Options Removal:** Removed deprecated options such as "Use localized time format", \'Time for showing "Thank you" message\', \'Checking to prevent double booking during submitting booking,\' \'Set capacity based on the number of visitors,\' \'Disable booked time slots in multiple days selection mode\' from Booking > Settings General page and option: "for setting maximum number of visitors per resource" at the Booking > Resources page in paid versions.' ) ); ?></li>
2183 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **JS Calendar Scripts:** Updated to version 9.8.0.3.' ) ); ?></li>
2184 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Caching Improvement:** Introduced new caching for frequently used SQL requests (9.7.3.14).' ) ); ?></li>
2185 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **\'Reply-To visitor email\' Option:** Added the \'Reply-To visitor email\' option for "Admin emails" at the Booking > Settings > Emails page. By default, this option is disabled to prevent spam detection at some servers in the outbound SMTP relay, which could lead to email rejection (9.7.3.17).' ) ); ?></li>
2186 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Updated Styles:** Improved the styles of warning messages in the booking form for a better user experience.' ) ); ?></li>
1747 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Auto-Detect & Format Phone Fields:** Phone fields now automatically detect and format numbers based on the user’s input and locale. Start typing +1 and the field instantly formats to +1 000 000 0000 (USA); type +34 for Spain and get +34 000 000 0000.' ) ); ?></li>
2187 1748 </ul>
2188 1749 </div>
2189 - <div class="wpbc_wn_col">
2190 - <ul>
2191 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Calendar Dimensions:** Increased the width of the calendar from 284px to 341px and the height of calendar cells from 40px to 48px (9.7.3.2). Improved internal logic for calendar months\' size. The width of the calendar is now based on the maximum width, ensuring great responsiveness at any resolution. No need to use "strong_width" parameter in options of Booking Calendar shortcode. (9.7.3.4)' ) ); ?></li>
2192 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Mobile Optimization:** For small mobile devices (width smaller than 400px), the height cell is now 40px by default (9.7.3.2). You can specify the same height for all devices using the \'strong_cell_height\' parameter in the shortcode. For example: [booking type=1 nummonths=2 options=\'{calendar months_num_in_row=2 width=682px strong_cell_height=55px}\'] (9.7.3.3)' ) ); ?></li>
2193 -<!-- PRO -->
2194 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Shortcodes Enhancement:** All shortcodes can now use the parameter \'resource_id\' instead of the previously deprecated \'type\' parameter. *(All Pro Versions)*' ) ); ?></li>
2195 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Showing the **full URL .ics feed** at the Booking > Settings > Sync > **"Export - .ics" page** for easier copying of URLs (9.8.0.6). *(All Pro Versions)*' ) ); ?></li>
2196 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; When creating new fast blank bookings, all fields are autofilled with \'---\' instead of \'admin\' values, and the email address is filled with \'[email protected],\' which is skipped during sending emails by Booking Calendar. *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
2197 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Improved \'Aggregate\' Parameter**: Now, when using \'aggregate,\' if you mark specific dates as unavailable in **aggregation resources on the Booking > Availability page**, the system will automatically make those dates unavailable in the source resource. *(All Pro Versions)*' ) ); ?></li>
2198 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Enhanced Availability Management: If you mark dates as unavailable in the aggregate booking resources on the Booking > Availability page, the system treats these dates as unavailable for all booking resources, including parent and child resources. This ensures consistent availability management. *(All Pro Versions. Capacity in Business Large, MultiUser)*' ) ); ?></li>
2199 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; For booking resources with specific capacities, when you use \'aggregate\' for a \'parent booking resource\' with a set capacity, the system adds bookings from \'aggregate booking resources\' to the \'parent resource\' and its child resources. Any \'unavailable dates\' marked on the Booking > Availability page will affect both the parent and its child resources, making those times or dates unavailable for booking. *(Business Large, MultiUser)*' ) ); ?></li>
2200 - <ul>
1750 + <div class="wpbc_wn_col" style="flex: 1 1 50%;margin: 0px 0;">
1751 + <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?>
1752 + <img src="<?php echo esc_attr( $obj->section_img_url( '10.13/phone_validattion_01.png' ) ); ?>" style="margin:10px auto;max-width:600px;" />
2201 1753 </div>
2202 - </div>
2203 -
2204 - <div class="wpbc_wn_section">
2205 - <div class="wpbc_wn_col">
2206 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Under Hood Changes' ) ); ?></h3>
1754 + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;">
2207 1755 <ul>
2208 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Removed the JavaScript wpbc_settings variable. Instead of wpbc_settings.set_option( \'pending_days_selectable\', true ) ); use: _wpbc.calendar__set_param_value( resource_id , \'pending_days_selectable\' , true ); It\'s give ability to define this parameter separately per each calendar in paid versions.' ) ); ?></li>
2209 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Replaced deprecated functions related to the new "Capacity and Availability" engine (9.7.3.13), and updated the cron system for Google Calendar imports.' ) ); ?></li>
2210 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Replaced JavaScript function showErrorMessage( element , errorMessage , isScrollStop ) to wpbc_front_end__show_message__warning( jq_node, message ).' ) ); ?></li>
2211 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Test Dates Functions:** Added the [wpbc_test_dates_functions] shortcode for testing different dates functions on the server, relative to the possible \'Daylight Saving Time\' issue.' ) ); ?></li>
2212 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '**CSS Class:** Added a new \'wpbc_calendar\' CSS class to the calendar HTML table, making it easier to manage CSS conflicts with theme styles). You can use CSS in the theme like this: table:not(.wpbc_calendar){...} instead of table{...} (9.7.3.7)' ) ); ?></li>
2213 -<!-- PRO -->
2214 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Stripe**: Updated Stripe PHP library from version 9.0.0 to 12.6.0. *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
2215 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Max. visitors field at the Booking > Resources page is deprecated and removed. For defining capacity, use child booking resources. For defining max visitors selection, use a new custom booking form with a different number of users/visitors selection. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
2216 -
1756 + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Built-In Intelligence – No Setup Required** We intelligently detect phone fields by name (e.g., “phone”, “fone”, “tel”, “mobile”, “telefono”, etc.) and apply the right mask and placeholder automatically—no third-party APIs needed. Only valid digits are allowed; unsupported characters are blocked instantly.' ) ); ?></li>
2217 1757 </ul>
2218 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Support' ) ); ?></h3>
2219 - <ul>
2220 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; **Support for WordPress 6.4:** Added support for WordPress version 6.4.' ) ); ?></li>
2221 - </ul>
2222 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Translations' ) ); ?></h3>
2223 - <ul>
2224 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Translation: Improved German (94% completed) by Reinhard Kappen and French (93% completed) by Roby.' ) ); ?></li>
2225 - </ul>
2226 1758 </div>
2227 - <div class="wpbc_wn_col">
2228 - <h3><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( 'Bug Fixes' ) ); ?></h3>
2229 - <ul>
2230 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed an issue with not correctly showing creation and modification booking times on some servers.' ) ); ?></li>
2231 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Corrected the problem of showing the calendar with an incorrectly defined Start week date at Booking > Availability page.' ) ); ?></li>
2232 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the issue of not translating some terms in the plugin (9.7.3.9).' ) ); ?></li>
2233 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed a color issue of daily cost in calendar date cells for the "Light-01" calendar skin (9.7.3.10).' ) ); ?></li>
2234 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed an Uncaught TypeError related to the wpbc-gcal-class.php file (9.7.3.15).' ) ); ?></li>
2235 -<!-- PRO -->
2236 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed an issue of redirection to the "Unknown-Stripe-Payment" page after Stripe payment in Booking Calendar MultiUser version, if the option "Receive all payments only to Super Booking Admin account" was activated. (9.7.3.5) *(MultiUser)*' ) ); ?></li>
2237 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Corrected the issue of not showing conditional time slots, which depend on Seasons. Uncaught Error: Syntax error, unrecognized expression: # jQuery 10(9.7.3.6) *(Business Medium/Large, MultiUser)*' ) ); ?></li>
2238 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Resolved the problem of removing duplicate days\' selections at the "Specific days" selection option under range days selection mode using 2 mouse clicks. *(Business Small/Medium/Large, MultiUser)*' ) ); ?></li>
2239 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Fixed the issue of showing available dates in the search form, while such dates were defined as unavailable at Booking > Availability page (9.7.3.11). *(Business Large, MultiUser)*' ) ); ?></li>
2240 - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '&bull; Eliminated the issue when used conditional days selection logic, and some weekdays were not defined in seasons. In this case, the system will use the default days selection settings. *(Business Medium/Large, MultiUser)*' ) ); ?></li>
2241 - <ul>
2242 - </div>
2243 1759 </div>
2244 - </div><?php
2245 - // </editor-fold>
2246 1760
1761 + </div>
1762 + <?php
2247 1763
2248 1764 $obj->expand_section_end( $section_param_arr );
2249 1765 }