| @@ -3,8 +3,798 @@ | ||
| 3 | 3 | // Exit if accessed directly |
| 4 | 4 | if ( !defined( 'ABSPATH' ) ) exit; |
| 5 | 5 | |
| 6 | 6 | /** |
| 7 | + * Render Booking Calendar 11.9 What's New content. | |
| 8 | + * | |
| 9 | + * @param object $obj Welcome-page renderer and image loader. | |
| 10 | + * | |
| 11 | + * @return void | |
| 12 | + */ | |
| 13 | +function wpbc_welcome_section_11_9( $obj ) { | |
| 14 | + | |
| 15 | + $section_parameters = array( 'version_num' => '11.9', 'show_expand' => false ); | |
| 16 | + $obj->expand_section_start( $section_parameters ); | |
| 17 | + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production. | |
| 18 | + ?> | |
| 19 | + <div class="wpbc_wn_container"> | |
| 20 | + <div class="wpbc_wn_section" style="gap: 10px 32px;"> | |
| 21 | + <h2><?php echo ( 'A Simpler Setup Wizard for Every Booking Journey' ); ?></h2> | |
| 22 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 23 | + <img | |
| 24 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__setup_wizard_customer_journeys_placeholder_2.png' ) ); ?>" | |
| 25 | + alt="<?php echo esc_attr( 'Booking Calendar Setup Wizard showing customer journey choices and the guided setup steps' ); ?>" | |
| 26 | + style="margin:10px 0;width:98%;" | |
| 27 | + /> | |
| 28 | + </div> | |
| 29 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 30 | + <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> | |
| 31 | + <ul> | |
| 32 | + <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> | |
| 33 | + <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> | |
| 34 | + <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> | |
| 35 | + <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> | |
| 36 | + <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> | |
| 37 | + </ul> | |
| 38 | + <h3><?php echo ( 'Choose the customer journey that matches your business' ); ?></h3> | |
| 39 | + <div style="display:flex;flex-wrap:wrap;gap:18px;"> | |
| 40 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 41 | + <img | |
| 42 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_single_full_day_placeholder.png' ) ); ?>" | |
| 43 | + width="420" | |
| 44 | + height="236" | |
| 45 | + loading="lazy" | |
| 46 | + alt="<?php echo esc_attr( 'Calendar with one complete date selected for a Single full day booking' ); ?>" | |
| 47 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 48 | + /> | |
| 49 | + <h4><?php echo ( 'Single full day' ); ?></h4> | |
| 50 | + <p><?php echo ( 'Customers reserve one complete date without choosing a time.' ); ?></p> | |
| 51 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'One-day rentals, events and daily reservations.' ); ?></p> | |
| 52 | + </div> | |
| 53 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 54 | + <img | |
| 55 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_multiple_independent_full_days_placeholder.png' ) ); ?>" | |
| 56 | + width="420" | |
| 57 | + height="236" | |
| 58 | + loading="lazy" | |
| 59 | + alt="<?php echo esc_attr( 'Calendar with several separate dates selected for a Multiple independent full days booking' ); ?>" | |
| 60 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 61 | + /> | |
| 62 | + <h4><?php echo ( 'Multiple independent full days' ); ?></h4> | |
| 63 | + <p><?php echo ( 'Customers select several separate full dates in one booking.' ); ?></p> | |
| 64 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Bookings that cover several non-consecutive days.' ); ?></p> | |
| 65 | + </div> | |
| 66 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 67 | + <img | |
| 68 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_flexible_date_range_placeholder.png' ) ); ?>" | |
| 69 | + width="420" | |
| 70 | + height="236" | |
| 71 | + loading="lazy" | |
| 72 | + alt="<?php echo esc_attr( 'Calendar with the first and last date selected for a Flexible date range booking' ); ?>" | |
| 73 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 74 | + /> | |
| 75 | + <h4><?php echo ( 'Flexible date range' ); ?></h4> | |
| 76 | + <p><?php echo ( 'Customers choose the first and last date of a variable-length booking.' ); ?></p> | |
| 77 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Stays and rentals whose length varies by booking.' ); ?></p> | |
| 78 | + </div> | |
| 79 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 80 | + <img | |
| 81 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_fixed_length_date_range_placeholder.png' ) ); ?>" | |
| 82 | + width="420" | |
| 83 | + height="236" | |
| 84 | + loading="lazy" | |
| 85 | + alt="<?php echo esc_attr( 'Calendar with an automatically selected Fixed-length date range' ); ?>" | |
| 86 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 87 | + /> | |
| 88 | + <h4><?php echo ( 'Fixed-length date range' ); ?></h4> | |
| 89 | + <p><?php echo ( 'Customers choose a start date and the configured range is selected automatically.' ); ?></p> | |
| 90 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Weekend, multi-day and weekly packages.' ); ?></p> | |
| 91 | + </div> | |
| 92 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 93 | + <img | |
| 94 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_check_in_out_changeover_placeholder.png' ) ); ?>" | |
| 95 | + width="420" | |
| 96 | + height="236" | |
| 97 | + loading="lazy" | |
| 98 | + alt="<?php echo esc_attr( 'Calendar showing arrival and departure boundaries for a Check-in and check-out changeover booking' ); ?>" | |
| 99 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 100 | + /> | |
| 101 | + <h4><?php echo ( 'Check-in & check-out changeover' ); ?></h4> | |
| 102 | + <p><?php echo ( 'Customers choose arrival and departure dates with changeover boundaries.' ); ?></p> | |
| 103 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Accommodation and rentals with arrival and departure times.' ); ?></p> | |
| 104 | + </div> | |
| 105 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 106 | + <img | |
| 107 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_fixed_time_slots_placeholder.png' ) ); ?>" | |
| 108 | + width="420" | |
| 109 | + height="236" | |
| 110 | + loading="lazy" | |
| 111 | + alt="<?php echo esc_attr( 'Calendar and predefined appointment choices for a Fixed time slots booking' ); ?>" | |
| 112 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 113 | + /> | |
| 114 | + <h4><?php echo ( 'Fixed time slots' ); ?></h4> | |
| 115 | + <p><?php echo ( 'Customers select one predefined available time slot.' ); ?></p> | |
| 116 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Classes, consultations and fixed timetables.' ); ?></p> | |
| 117 | + </div> | |
| 118 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 119 | + <img | |
| 120 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_start_end_time_placeholder.png' ) ); ?>" | |
| 121 | + width="420" | |
| 122 | + height="236" | |
| 123 | + loading="lazy" | |
| 124 | + alt="<?php echo esc_attr( 'Calendar with separate start and end choices for a Start and end time booking' ); ?>" | |
| 125 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 126 | + /> | |
| 127 | + <h4><?php echo ( 'Start & end time' ); ?></h4> | |
| 128 | + <p><?php echo ( 'Customers choose both ends of a flexible appointment time range.' ); ?></p> | |
| 129 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Flexible appointments, equipment use and variable-duration work.' ); ?></p> | |
| 130 | + </div> | |
| 131 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 132 | + <img | |
| 133 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_start_time_duration_placeholder.png' ) ); ?>" | |
| 134 | + width="420" | |
| 135 | + height="236" | |
| 136 | + loading="lazy" | |
| 137 | + alt="<?php echo esc_attr( 'Calendar with start-time and duration choices for a Start time and duration booking' ); ?>" | |
| 138 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 139 | + /> | |
| 140 | + <h4><?php echo ( 'Start time + duration' ); ?></h4> | |
| 141 | + <p><?php echo ( 'Customers choose a start time and one of the available durations.' ); ?></p> | |
| 142 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Appointments offered in standard duration choices.' ); ?></p> | |
| 143 | + </div> | |
| 144 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 145 | + <img | |
| 146 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_repeated_time_multiple_dates_placeholder.png' ) ); ?>" | |
| 147 | + width="420" | |
| 148 | + height="236" | |
| 149 | + loading="lazy" | |
| 150 | + alt="<?php echo esc_attr( 'Calendar with multiple dates sharing one selected time for a repeated-time booking' ); ?>" | |
| 151 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 152 | + /> | |
| 153 | + <h4><?php echo ( 'Repeat one time on multiple dates' ); ?></h4> | |
| 154 | + <p><?php echo ( 'Customers select several dates and use the same time on every selected date.' ); ?></p> | |
| 155 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Recurring sessions submitted together for the same daily time.' ); ?></p> | |
| 156 | + </div> | |
| 157 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 158 | + <img | |
| 159 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_first_date_start_last_date_end_placeholder.png' ) ); ?>" | |
| 160 | + width="420" | |
| 161 | + height="236" | |
| 162 | + loading="lazy" | |
| 163 | + alt="<?php echo esc_attr( 'Multi-day calendar with a start time on the first date and an end time on the last date' ); ?>" | |
| 164 | + style="display:block;margin:0 auto 12px;width:100%;max-width:300px;height:auto;" | |
| 165 | + /> | |
| 166 | + <h4><?php echo ( 'First-date start & last-date end' ); ?></h4> | |
| 167 | + <p><?php echo ( 'Customers choose a start on the first date and an end on the last date.' ); ?></p> | |
| 168 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Multi-day bookings with different arrival and departure times.' ); ?></p> | |
| 169 | + </div> | |
| 170 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"> | |
| 171 | + <img | |
| 172 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__journey_guided_appointment_flow_placeholder.png' ) ); ?>" | |
| 173 | + width="420" | |
| 174 | + height="236" | |
| 175 | + loading="lazy" | |
| 176 | + alt="<?php echo esc_attr( 'Guided appointment sequence showing Service, Provider, Date, Time, and Details steps' ); ?>" | |
| 177 | + style="display:block;margin:0 0 12px;width:100%;max-width:300px;height:auto;" | |
| 178 | + /> | |
| 179 | + <h4><?php echo ( 'Guided appointment flow' ); ?></h4> | |
| 180 | + <p><?php echo ( 'Customers choose a Service, Provider and available start time step by step.' ); ?></p> | |
| 181 | + <p><strong><?php echo ( 'Best for:' ); ?></strong> <?php echo ( 'Businesses with several Services or Providers.' ); ?></p> | |
| 182 | + </div> | |
| 183 | + <div class="wpbc_wn_col" style="flex:1 1 28%;min-width:240px;margin:0;padding:12px;"></div> | |
| 184 | + </div> | |
| 185 | + </div> | |
| 186 | + </div> | |
| 187 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 188 | + <h2><?php echo( 'Select the Date Range You Point To' ); ?></h2> | |
| 189 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 190 | + <img | |
| 191 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__range_selection_pointer_period_placeholder.gif' ) ); ?>" | |
| 192 | + width="1600" | |
| 193 | + height="900" | |
| 194 | + loading="lazy" | |
| 195 | + alt="<?php echo esc_attr( 'Booking calendar highlighting the valid date range that contains the pointed date' ); ?>" | |
| 196 | + style="margin:10px 0;width:98%;height:auto;" | |
| 197 | + /> | |
| 198 | + </div> | |
| 199 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 200 | + <ul> | |
| 201 | + <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> | |
| 202 | + <li><strong><?php echo( 'Preserve the visitor\'s choice.' ); ?></strong> <?php echo( 'Invalid end dates leave the first Dynamic-range click in place, while conditional Season, weekday, and exact-date rules use the actual range start.' ); ?></li> | |
| 203 | + <li><span><?php echo( 'Available in the Booking Calendar Business Medium or igher versions' ); ?></span> <?php ?></li> | |
| 204 | + </ul> | |
| 205 | + </div> | |
| 206 | + </div> | |
| 207 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 208 | + <h2><?php echo ( 'Prevent Unbookable Date Gaps' ); ?></h2> | |
| 209 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 210 | + <p><strong><?php echo ( 'Before' ); ?></strong></p> | |
| 211 | + <img | |
| 212 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__unbookable_date_gaps_before_placeholder.png' ) ); ?>" | |
| 213 | + alt="<?php echo esc_attr( 'Booking calendar before enabling Unbookable date gaps, with a short bounded opening still shown as selectable' ); ?>" | |
| 214 | + style="margin:10px 0;width:98%;" | |
| 215 | + /> | |
| 216 | + </div> | |
| 217 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 218 | + <p><strong><?php echo ( 'After' ); ?></strong></p> | |
| 219 | + <img | |
| 220 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__unbookable_date_gaps_after_placeholder.png' ) ); ?>" | |
| 221 | + alt="<?php echo esc_attr( 'Booking calendar after enabling Unbookable date gaps, with the same impossible opening shown as unavailable' ); ?>" | |
| 222 | + style="margin:10px 0;width:98%;" | |
| 223 | + /> | |
| 224 | + </div> | |
| 225 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 226 | + <ul> | |
| 227 | + <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> | |
| 228 | + <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> | |
| 229 | + </ul> | |
| 230 | + </div> | |
| 231 | + </div> | |
| 232 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 233 | + <h2><?php echo ( 'Manage Split Working Time' ); ?></h2> | |
| 234 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 235 | + <img | |
| 236 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/wp_booking_calendar__schedule_rules_multi_interval_placeholder.png' ) ); ?>" | |
| 237 | + 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' ); ?>" | |
| 238 | + style="margin:10px 0;width:98%;" | |
| 239 | + /> | |
| 240 | + </div> | |
| 241 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 242 | + <ul> | |
| 243 | + <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> | |
| 244 | + <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> | |
| 245 | + </ul> | |
| 246 | + </div> | |
| 247 | + </div> | |
| 248 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 249 | + <h2><?php echo ( 'New Appointment Services Booking Flow' ); ?></h2> | |
| 250 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 251 | + <img | |
| 252 | + src="<?php echo esc_attr( $obj->section_img_url( '11.9/appointments_services_flow_02.png' ) ); ?>" | |
| 253 | + alt="<?php echo esc_attr( 'Appointment Services booking form with a live selection summary, calendar, duration, and start-time choices' ); ?>" | |
| 254 | + style="margin:10px 0;width:98%;" | |
| 255 | + /> | |
| 256 | + </div> | |
| 257 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 258 | + <ul> | |
| 259 | + <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> | |
| 260 | + <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> | |
| 261 | + <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> | |
| 262 | + </ul> | |
| 263 | + </div> | |
| 264 | + </div> | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 272 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 273 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 274 | + <h2><?php echo ( 'Add a Country List Visually' ); ?></h2> | |
| 275 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 276 | + <ul> | |
| 277 | + <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> | |
| 278 | + <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> | |
| 279 | + </ul> | |
| 280 | + </div> | |
| 281 | + </div> | |
| 282 | + </div> | |
| 283 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 284 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 285 | + <h2><?php echo ( 'Add Discount Coupons Visually' ); ?></h2> | |
| 286 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 287 | + <ul> | |
| 288 | + <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> | |
| 289 | + <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> | |
| 290 | + <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> | |
| 291 | + </ul> | |
| 292 | + </div> | |
| 293 | + </div> | |
| 294 | + </div> | |
| 295 | + </div> | |
| 296 | + | |
| 297 | + </div> | |
| 298 | + <?php | |
| 299 | + $obj->expand_section_end( $section_parameters ); | |
| 300 | +} | |
| 301 | + | |
| 302 | +/** | |
| 303 | + * Render Booking Calendar 11.8.1 What's New content. | |
| 304 | + * | |
| 305 | + * @param object $obj Welcome-page renderer and image loader. | |
| 306 | + * | |
| 307 | + * @return void | |
| 308 | + */ | |
| 309 | +function wpbc_welcome_section_11_8_1( $obj ) { | |
| 310 | + | |
| 311 | + $section_parameters = array( 'version_num' => '11.8.1', 'show_expand' => true ); | |
| 312 | + $obj->expand_section_start( $section_parameters ); | |
| 313 | + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production. | |
| 314 | + ?> | |
| 315 | + | |
| 316 | + | |
| 317 | + <div class="wpbc_wn_container"> | |
| 318 | + | |
| 319 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 320 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 321 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 322 | + <h2><?php echo( 'Clearer First-Run Setup' ); ?></h2> | |
| 323 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 324 | + <img | |
| 325 | + src="<?php echo esc_attr( $obj->section_img_url( '11.8.1/wp_booking_calendar__first_run_starter_pages_prompt_placeholder.png' ) ); ?>" | |
| 326 | + alt="<?php echo esc_attr( 'First-run starter booking pages invitation with public-page links' ); ?>" | |
| 327 | + style="margin:10px 0;width:98%;" | |
| 328 | + /> | |
| 329 | + </div> | |
| 330 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 331 | + <ul> | |
| 332 | + <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> | |
| 333 | + <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> | |
| 334 | + </ul> | |
| 335 | + </div> | |
| 336 | + </div> | |
| 337 | + </div> | |
| 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( 'Time-Slot Booking Flow' ); ?></h2> | |
| 341 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 342 | + <img | |
| 343 | + src="<?php echo esc_attr( $obj->section_img_url( '11.8.1/wp_booking_calendar__time-slots-booking-form-2-columns.png' ) ); ?>" | |
| 344 | + alt="<?php echo esc_attr( 'Two-column time-slot booking form with a calendar and live date and time summary' ); ?>" | |
| 345 | + style="margin:10px 0;width:98%;" | |
| 346 | + /> | |
| 347 | + </div> | |
| 348 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 349 | + <ul> | |
| 350 | + <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> | |
| 351 | + <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> | |
| 352 | + <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> | |
| 353 | + </ul> | |
| 354 | + </div> | |
| 355 | + </div> | |
| 356 | + </div> | |
| 357 | + </div> | |
| 358 | + | |
| 359 | + | |
| 360 | + </div> | |
| 361 | + <?php | |
| 362 | + $obj->expand_section_end( $section_parameters ); | |
| 363 | +} | |
| 364 | + | |
| 365 | +/** | |
| 366 | + * Render Booking Calendar 11.8 What's New content. | |
| 367 | + * | |
| 368 | + * Booking Modes and the Full-Day Form Builder template are available in every | |
| 369 | + * edition. Seasonal Availability and the Business Large Searchable Resources | |
| 370 | + * catalog remain protected by their existing feature, edition, and current-user | |
| 371 | + * gates. Image placeholders must be replaced by verified, edition-appropriate | |
| 372 | + * captures before release. | |
| 373 | + * | |
| 374 | + * @param object $obj Welcome-page renderer and image loader. | |
| 375 | + * | |
| 376 | + * @return void | |
| 377 | + */ | |
| 378 | +function wpbc_welcome_section_11_8( $obj ) { | |
| 379 | + | |
| 380 | + $section_parameters = array( 'version_num' => '11.8', 'show_expand' => true ); | |
| 381 | + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production. | |
| 382 | + $obj->expand_section_start( $section_parameters ); | |
| 383 | + ?> | |
| 384 | + <div class="wpbc_wn_container"> | |
| 385 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 386 | + <h2><?php echo( '2 New Full-Day Booking Form Templates' ); ?></h2> | |
| 387 | + | |
| 388 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 389 | + <img | |
| 390 | + src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__form_2_columns_hints_full_days.png' ) ); ?>" | |
| 391 | + alt="<?php echo esc_attr( 'Two-column full-day booking form with a calendar, date summary, and customer details' ); ?>" | |
| 392 | + style="margin:10px 0;width:98%;" | |
| 393 | + /> | |
| 394 | + </div> | |
| 395 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 396 | + <ul> | |
| 397 | + <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> | |
| 398 | + <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> | |
| 399 | + <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> | |
| 400 | + <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> | |
| 401 | + </ul> | |
| 402 | + </div> | |
| 403 | + </div> | |
| 404 | + | |
| 405 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 406 | + <h2><?php echo( 'New Seasonal Availability Catalog' ); ?></h2> | |
| 407 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 408 | + <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%;" /> | |
| 409 | + <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> | |
| 410 | + </div> | |
| 411 | + <div class="wpbc_wn_col" style="flex: 1 1 20%;margin: 0;padding: 0;"> | |
| 412 | + | |
| 413 | + <ul> | |
| 414 | + <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> | |
| 415 | + <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> | |
| 416 | + </ul> | |
| 417 | + </div> | |
| 418 | + </div> | |
| 419 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 420 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding: 0;"> | |
| 421 | + <ul> | |
| 422 | + <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> | |
| 423 | + </ul> | |
| 424 | + </div> | |
| 425 | + </div> | |
| 426 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 427 | + <div class="wpbc_wn_col" style="flex: 1 1 20%;margin: 0;padding: 0;"> | |
| 428 | + <ul> | |
| 429 | + <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> | |
| 430 | + <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> | |
| 431 | + </ul> | |
| 432 | + </div> | |
| 433 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 434 | + <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%;" /> | |
| 435 | + <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> | |
| 436 | + </div> | |
| 437 | + </div> | |
| 438 | + | |
| 439 | + | |
| 440 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 441 | + <h2><?php echo( 'New Searchable Resources Catalog' ); ?></h2> | |
| 442 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 443 | + <?php // Replace this placeholder with the final 11.8 Searchable Resources Catalog screenshot before release. ?> | |
| 444 | + <img | |
| 445 | + src="<?php echo esc_attr( $obj->section_img_url( '11.8/wp_booking_calendar__searchable_resources_catalog_placeholder.png' ) ); ?>" | |
| 446 | + alt="<?php echo esc_attr( 'Searchable Resources Catalog with status filters, presentation columns, and Resource editing controls' ); ?>" | |
| 447 | + style="margin:10px 0;width:98%;" | |
| 448 | + /> | |
| 449 | + <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> | |
| 450 | + </div> | |
| 451 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 452 | + <ul> | |
| 453 | + <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> | |
| 454 | + <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> | |
| 455 | + <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> | |
| 456 | + </ul> | |
| 457 | + </div> | |
| 458 | + </div> | |
| 459 | + | |
| 460 | + <div class="wpbc_wn_section" style="gap: 10px 50px;"> | |
| 461 | + <h2><?php echo( 'More Reliable Administration Modes' ); ?></h2> | |
| 462 | + | |
| 463 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 464 | + <ul> | |
| 465 | + <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> | |
| 466 | + <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> | |
| 467 | + </ul> | |
| 468 | + </div> | |
| 469 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 0;padding: 0;"> | |
| 470 | + <ul> | |
| 471 | + <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> | |
| 472 | + <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> | |
| 473 | + </ul> | |
| 474 | + </div> | |
| 475 | + </div> | |
| 476 | + | |
| 477 | + </div> | |
| 478 | + <?php | |
| 479 | + $obj->expand_section_end( $section_parameters ); | |
| 480 | +} | |
| 481 | + | |
| 482 | +/** | |
| 483 | + * What's New section for Booking Calendar 11.7. | |
| 484 | + * | |
| 485 | + * @param object $obj Welcome-page renderer. | |
| 486 | + * | |
| 487 | + * @return void | |
| 488 | + */ | |
| 489 | +function wpbc_welcome_section_11_7( $obj ) { | |
| 490 | + | |
| 491 | + $section_param_arr = array( 'version_num' => '11.7', 'show_expand' => true ); | |
| 492 | + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production. | |
| 493 | + $prices_inspector_sections = array( | |
| 494 | + array( | |
| 495 | + 'title' => 'Base Cost', | |
| 496 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_base_cost_placeholder.png', | |
| 497 | + 'alt' => 'Prices inspector showing the Base Cost editor with a decimal amount and synchronized slider', | |
| 498 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 499 | + 'purpose' => 'Use Base Cost to define the normal starting price for this Resource before date, duration, deposit, and booking-time adjustments are applied.', | |
| 500 | + '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.', | |
| 501 | + ), | |
| 502 | + array( | |
| 503 | + 'title' => 'Seasonal Rates', | |
| 504 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_seasonal_rates_placeholder.png', | |
| 505 | + 'alt' => 'Prices inspector showing ordered Seasonal Rates with On and Off controls', | |
| 506 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 507 | + 'purpose' => 'Use Seasonal Rates when the same Resource should cost more or less on holidays, weekends, high seasons, or other reusable date periods.', | |
| 508 | + '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.', | |
| 509 | + ), | |
| 510 | + array( | |
| 511 | + 'title' => 'Duration-Based Costs', | |
| 512 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_duration_costs_placeholder.png', | |
| 513 | + 'alt' => 'Prices inspector showing ordered Duration-Based Cost rules and a separate LAST-day value', | |
| 514 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 515 | + 'purpose' => 'Use Duration-Based Costs when the price should change according to how many days a customer books.', | |
| 516 | + '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.', | |
| 517 | + ), | |
| 518 | + array( | |
| 519 | + 'title' => 'Partial Payment', | |
| 520 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_partial_payment_placeholder.png', | |
| 521 | + 'alt' => 'Prices inspector showing a Partial Payment preview with due-now and balance amounts', | |
| 522 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 523 | + 'purpose' => 'Use Partial Payment when customers should pay a deposit at booking and the remaining balance later instead of paying the full total immediately.', | |
| 524 | + '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.', | |
| 525 | + ), | |
| 526 | + array( | |
| 527 | + 'title' => 'Early Booking Adjustment', | |
| 528 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_early_booking_placeholder.png', | |
| 529 | + 'alt' => 'Prices inspector showing an Early Booking discount preview and qualifying date range', | |
| 530 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 531 | + 'purpose' => 'Use Early Booking Adjustment to encourage advance reservations by reducing the price when check-in is sufficiently far away.', | |
| 532 | + '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.', | |
| 533 | + ), | |
| 534 | + array( | |
| 535 | + 'title' => 'Late Booking Adjustment', | |
| 536 | + 'image' => '11.7/wp_booking_calendar__prices_catalog_last_minute_placeholder.png', | |
| 537 | + 'alt' => 'Prices inspector showing a Last-Minute discount preview and near-term qualifying date range', | |
| 538 | + 'minimum_edition' => 'Booking Calendar Business Medium or higher.', | |
| 539 | + 'purpose' => 'Use Late Booking Adjustment to help fill near-term availability by reducing the price for check-ins inside a short booking window.', | |
| 540 | + '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.', | |
| 541 | + ), | |
| 542 | + ); | |
| 543 | + | |
| 544 | + $obj->expand_section_start( $section_param_arr ); | |
| 545 | + ?> | |
| 546 | + <div class="wpbc_wn_container"> | |
| 547 | + <div class="wpbc_wn_section"> | |
| 548 | + <h2><?php echo 'A New Prices Catalog'; ?></h2> | |
| 549 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 550 | + <?php // Replace this placeholder with the final 11.7 Prices Catalog screenshot before release. ?> | |
| 551 | + <img | |
| 552 | + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__prices_catalog_overview_placeholder.png' ) ); ?>" | |
| 553 | + alt="<?php echo 'Prices Catalog showing Resource pricing summaries, previews, filters, layouts, and the right-side inspector'; ?>" | |
| 554 | + style="margin:10px 0;width:98%;" | |
| 555 | + /> | |
| 556 | + </div> | |
| 557 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 558 | + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Business Medium or higher.'; ?></p> | |
| 559 | + <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> | |
| 560 | + <ul> | |
| 561 | + <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> | |
| 562 | + <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> | |
| 563 | + <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> | |
| 564 | + <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> | |
| 565 | + <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> | |
| 566 | + </ul> | |
| 567 | + </div> | |
| 568 | + </div> | |
| 569 | + | |
| 570 | + <?php foreach ( $prices_inspector_sections as $prices_inspector_section ) { ?> | |
| 571 | + <div class="wpbc_wn_section"> | |
| 572 | + <h2><?php echo esc_html( $prices_inspector_section['title'] ); ?></h2> | |
| 573 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 574 | + <?php // Replace this placeholder with the final 11.7 inspector screenshot before release. ?> | |
| 575 | + <img | |
| 576 | + src="<?php echo esc_attr( $obj->section_img_url( $prices_inspector_section['image'] ) ); ?>" | |
| 577 | + alt="<?php echo esc_attr( $prices_inspector_section['alt'] ); ?>" | |
| 578 | + style="margin:10px 0;width:98%;" | |
| 579 | + /> | |
| 580 | + </div> | |
| 581 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 582 | + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo esc_html( $prices_inspector_section['minimum_edition'] ); ?></p> | |
| 583 | + <p><strong><?php echo 'Why use it:'; ?></strong> <?php echo esc_html( $prices_inspector_section['purpose'] ); ?></p> | |
| 584 | + <p><?php echo esc_html( $prices_inspector_section['description'] ); ?></p> | |
| 585 | + </div> | |
| 586 | + </div> | |
| 587 | + <?php } ?> | |
| 588 | + | |
| 589 | + <div class="wpbc_wn_section"> | |
| 590 | + <h2><?php echo 'Clearer Left Sidebar Navigation'; ?></h2> | |
| 591 | + <div class="wpbc_wn_col" style="flex: 1 1 40%;margin: 10px 0;"> | |
| 592 | + <p><strong><?php echo 'Minimum edition:'; ?></strong> <?php echo 'Booking Calendar Free. This improvement is available in every edition.'; ?></p> | |
| 593 | + <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> | |
| 594 | + <ul> | |
| 595 | + <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> | |
| 596 | + <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> | |
| 597 | + </ul> | |
| 598 | + </div> | |
| 599 | + <div class="wpbc_wn_col" style="flex: 1 1 50%;margin: 10px 0;"> | |
| 600 | + <?php // Replace this placeholder with the final 11.7 navigation screenshot before release. ?> | |
| 601 | + <img | |
| 602 | + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__left_sidebar_navigation_placeholder.png' ) ); ?>" | |
| 603 | + alt="<?php echo 'Booking Calendar administration showing the grouped left sidebar navigation and selected page'; ?>" | |
| 604 | + style="margin:10px 0;width:98%;" | |
| 605 | + /> | |
| 606 | + </div> | |
| 607 | + </div> | |
| 608 | + | |
| 609 | + <div class="wpbc_wn_section"> | |
| 610 | + <h2><?php echo 'More Improvements in 11.7'; ?></h2> | |
| 611 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 612 | + <?php // Replace these placeholders with the final 11.7 Cost correction screenshots before release. ?> | |
| 613 | + <img | |
| 614 | + src="<?php echo esc_attr( $obj->section_img_url( '11.7/wp_booking_calendar__add_booking_cost_correction_placeholder.png' ) ); ?>" | |
| 615 | + alt="<?php echo 'Add Booking inspector showing the Cost correction number and slider controls'; ?>" | |
| 616 | + style="margin:10px 0;width:98%;" | |
| 617 | + /> | |
| 618 | + </div> | |
| 619 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 620 | + <p><strong><?php echo 'Minimum edition for Cost correction:'; ?></strong> <?php echo 'Booking Calendar Business Small or higher.'; ?></p> | |
| 621 | + <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> | |
| 622 | + <ul> | |
| 623 | + <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> | |
| 624 | + <li><?php echo 'Applied Cost corrections continue through the established deposit, balance, notification, and cost-note workflow.'; ?></li> | |
| 625 | + <li><?php echo 'All editions: Full Screen preferences now remain consistent between Booking Calendar pages, including WordPress installations in subdirectories.'; ?></li> | |
| 626 | + <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> | |
| 627 | + <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> | |
| 628 | + </ul> | |
| 629 | + </div> | |
| 630 | + </div> | |
| 631 | + </div> | |
| 632 | + <?php | |
| 633 | + $obj->expand_section_end( $section_param_arr ); | |
| 634 | +} | |
| 635 | + | |
| 636 | +/** | |
| 637 | + * What's New section for Booking Calendar 11.6. | |
| 638 | + * | |
| 639 | + * @param object $obj Welcome-page renderer. | |
| 640 | + * | |
| 641 | + * @return void | |
| 642 | + */ | |
| 643 | +function wpbc_welcome_section_11_6( $obj ) { | |
| 644 | + $section_param_arr = array( 'version_num' => '11.6', 'show_expand' => true ); | |
| 645 | + | |
| 646 | + $obj->expand_section_start( $section_param_arr ); | |
| 647 | + | |
| 648 | + // $obj->asset_path = 'http://beta/assets/'; // TODO: comment this in production. | |
| 649 | + ?> | |
| 650 | + <div class="wpbc_wn_container"> | |
| 651 | + | |
| 652 | + <div class="wpbc_wn_section"> | |
| 653 | + <h2><?php echo 'A New Booking Resources Catalog'; ?></h2> | |
| 654 | + | |
| 655 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 656 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 657 | + <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%;" /> | |
| 658 | + <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> | |
| 659 | + </div> | |
| 660 | + | |
| 661 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 662 | + <ul> | |
| 663 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Find and organize Booking Resources faster with **search, filtering, sorting, pagination, saved views, and customizable columns**.' ) ); ?></li> | |
| 664 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Choose the **Default, Compact, or Cards layout** while keeping the same Resource information and management tools.' ) ); ?></li> | |
| 665 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Use responsive, keyboard-friendly controls with improved mobile, RTL, wide-table, and shortened-text handling.' ) ); ?></li> | |
| 666 | + </ul> | |
| 667 | + </div> | |
| 668 | + </div> | |
| 669 | + | |
| 670 | + <div class="wpbc_wn_section"> | |
| 671 | + <h2><?php echo( 'A Native Seasons Catalog' ); ?></h2> | |
| 672 | + | |
| 673 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 674 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 675 | + <img | |
| 676 | + src="<?php echo esc_attr( $obj->section_img_url( '11.6/wp_booking_calendar__seasons_02.png' ) ); ?>" | |
| 677 | + alt="<?php echo( 'Seasons catalog showing reusable date rules and their usage' ); ?>" | |
| 678 | + style="margin:10px 0;width:98%;" | |
| 679 | + /> | |
| 680 | + </div> | |
| 681 | + | |
| 682 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 683 | + <ul> | |
| 684 | + <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> | |
| 685 | + <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> | |
| 686 | + <li><?php echo( 'Select Seasons and review server-approved safe title changes inline or in bulk before applying them.' ); ?></li> | |
| 687 | + <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> | |
| 688 | + <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> | |
| 689 | + </ul> | |
| 690 | + </div> | |
| 691 | + </div> | |
| 692 | + | |
| 693 | + <div class="wpbc_wn_section"> | |
| 694 | + <h2><?php echo 'Richer Resource Profiles and Publishing'; ?></h2> | |
| 695 | + | |
| 696 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 697 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 698 | + <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%;" /> | |
| 699 | + <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> | |
| 700 | + </div> | |
| 701 | + | |
| 702 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 703 | + <ul> | |
| 704 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Add a recognizable **title, photo, and description** to each Booking Resource.' ) ); ?></li> | |
| 705 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Review booking, publishing, pricing, structure, ownership, and availability information without leaving the catalog.' ) ); ?></li> | |
| 706 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Free version users can edit and publish the included Booking Resource directly from the catalog.' ) ); ?></li> | |
| 707 | + </ul> | |
| 708 | + </div> | |
| 709 | + </div> | |
| 710 | + | |
| 711 | + <div class="wpbc_wn_section"> | |
| 712 | + <h2><?php echo 'New Resource Catalog Layouts for Booking Pages'; ?></h2> | |
| 713 | + | |
| 714 | + <div class="wpbc_wn_col" style="flex: 1 1 48%;"> | |
| 715 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 716 | + <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%;" /> | |
| 717 | + </div> | |
| 718 | + <div class="wpbc_wn_col" style="flex: 1 1 48%;"> | |
| 719 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 720 | + <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%;" /> | |
| 721 | + </div> | |
| 722 | + <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> | |
| 723 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 724 | + <ul> | |
| 725 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Transform the **[booking_resource_selector]** shortcode into a visual, searchable **Resource Catalog** for your booking pages.' ) ); ?></li> | |
| 726 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Choose a responsive **Grid or List layout** that adapts to desktop, tablet, and mobile screens.' ) ); ?></li> | |
| 727 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Configure Resource images, descriptions, hierarchy, availability, and price summaries to help customers compare their options.' ) ); ?></li> | |
| 728 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Customers can search the catalog and select the right Resource before its native booking calendar and form open on the same page.' ) ); ?></li> | |
| 729 | + </ul> | |
| 730 | + </div> | |
| 731 | + </div> | |
| 732 | + | |
| 733 | + <div class="wpbc_wn_section"> | |
| 734 | + <h2><?php echo 'A More Flexible Services Catalog'; ?></h2> | |
| 735 | + | |
| 736 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 737 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 738 | + <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%;" /> | |
| 739 | + <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> | |
| 740 | + </div> | |
| 741 | + | |
| 742 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 743 | + <ul> | |
| 744 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Manage Services in responsive **Default, Compact, or Cards layouts**, with search, Provider filtering, sorting, and customizable columns.' ) ); ?></li> | |
| 745 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• 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> | |
| 746 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Review changes in the same clear **before-and-after cards** used by Booking Resources and Seasons before applying them.' ) ); ?></li> | |
| 747 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Permanently delete unreferenced Services through a reviewed impact and confirmation step; protected Services provide authorized links to affected Appointments or saved Appointment pages.' ) ); ?></li> | |
| 748 | + </ul> | |
| 749 | + </div> | |
| 750 | + </div> | |
| 751 | + | |
| 752 | + <div class="wpbc_wn_section"> | |
| 753 | + <h2><?php echo 'Faster and Safer Resource Management'; ?></h2> | |
| 754 | + | |
| 755 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 756 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 757 | + <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%;" /> | |
| 758 | + <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> | |
| 759 | + </div> | |
| 760 | + | |
| 761 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 762 | + <ul> | |
| 763 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Select rows, edit safe fields inline, or use the **right-side Resource editor** while staying in the catalog.' ) ); ?></li> | |
| 764 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Paid versions add guided single or batch creation and reviewed bulk changes for the fields available in each edition.' ) ); ?></li> | |
| 765 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Preview important changes in consistent **before-and-after cards** before applying them, with server-side permission, ownership, edition, and stale-review checks.' ) ); ?></li> | |
| 766 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Reviewed deletion warns about existing bookings, links authorized users to the affected records, and protects parent and child Resource relationships.' ) ); ?></li> | |
| 767 | + </ul> | |
| 768 | + </div> | |
| 769 | + </div> | |
| 770 | + | |
| 771 | + <div class="wpbc_wn_section"> | |
| 772 | + <h2><?php echo 'Hierarchy and Capacity Tools (Business Large and Higher Editions)'; ?></h2> | |
| 773 | + | |
| 774 | + <div class="wpbc_wn_col" style="flex: 1 1 48%;"> | |
| 775 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 776 | + <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%;" /> | |
| 777 | + </div> | |
| 778 | + <div class="wpbc_wn_col" style="flex: 1 1 48%;"> | |
| 779 | + <?php // Replace this placeholder with the final 11.6 screenshot or GIF before release. ?> | |
| 780 | + <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%;" /> | |
| 781 | + </div> | |
| 782 | + | |
| 783 | + <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> | |
| 784 | + <ul> | |
| 785 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Manage parent and child Booking Resources in expandable groups that stay together while searching, sorting, and changing pages.' ) ); ?></li> | |
| 786 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **Adjust capacity** by creating inherited child Resources or by reviewing which children become independent or are permanently deleted.' ) ); ?></li> | |
| 787 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Capacity now represents the parent calendar and its child Resource calendars instead of the Maximum visitors setting.' ) ); ?></li> | |
| 788 | + </ul> | |
| 789 | + </div> | |
| 790 | + </div> | |
| 791 | + </div> | |
| 792 | + <?php | |
| 793 | + $obj->expand_section_end( $section_param_arr ); | |
| 794 | +} | |
| 795 | + | |
| 796 | +/** | |
| 7 | 797 | * What's New section for Booking Calendar 11.5. |
| 8 | 798 | * |
| 9 | 799 | * @param object $obj Welcome-page renderer. |
| 10 | 800 | * |
| @@ -10,9 +800,9 @@ | ||
| 10 | 800 | * |
| 11 | 801 | * @return void |
| 12 | 802 | */ |
| 13 | 803 | function wpbc_welcome_section_11_5( $obj ) { |
| 14 | - $section_param_arr = array( 'version_num' => '11.5', 'show_expand' => false ); | |
| 804 | + $section_param_arr = array( 'version_num' => '11.5', 'show_expand' => !false ); | |
| 15 | 805 | // Keep empty image slots out of the markup until final 11.5 screenshots are available. |
| 16 | 806 | $image_urls = array( |
| 17 | 807 | 'appointment_booking' => '', |
| 18 | 808 | 'appointment_admin' => '', |
| @@ -27,9 +817,9 @@ | ||
| 27 | 817 | ?> |
| 28 | 818 | <div class="wpbc_wn_container"> |
| 29 | 819 | |
| 30 | 820 | <div class="wpbc_wn_section"> |
| 31 | - <h2><?php esc_html_e( 'Services and the New Appointment Booking Flow', 'booking' ); ?></h2> | |
| 821 | + <h2><?php echo 'Services and the New Appointment Booking Flow'; ?></h2> | |
| 32 | 822 | |
| 33 | 823 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 34 | 824 | <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%;" /> |
| 35 | 825 | </div> |
| @@ -34,10 +824,10 @@ | ||
| 34 | 824 | <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%;" /> |
| 35 | 825 | </div> |
| 36 | 826 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 37 | 827 | <ul> |
| 38 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **NEW Services catalogue**: Create Services with a picture, description, duration, buffers, price, status, Booking Form, and compatible Providers.', 'booking' ) ) ); ?></li> | |
| 39 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **Clear Provider overview**: Search and sort Services, review assigned Providers and weekly availability, and open the relevant availability settings directly.', 'booking' ) ) ); ?></li> | |
| 828 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **NEW Services catalogue**: Create Services with a picture, description, duration, buffers, price, status, Booking Form, and compatible Providers.' ) ); ?></li> | |
| 829 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **Clear Provider overview**: Search and sort Services, review assigned Providers and weekly availability, and open the relevant availability settings directly.' ) ); ?></li> | |
| 40 | 830 | </ul> |
| 41 | 831 | </div> |
| 42 | 832 | |
| 43 | 833 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| @@ -46,18 +836,18 @@ | ||
| 46 | 836 | </div> |
| 47 | 837 | |
| 48 | 838 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 49 | 839 | <ul> |
| 50 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **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.', 'booking' ) ) ); ?></li> | |
| 51 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• A new **Start Over** field in the Booking Form Builder lets customers restart the Appointment flow without reloading the page.', 'booking' ) ) ); ?></li> | |
| 52 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• A new **Appointments and Services Flow** template and **Weekday Start Time** field provide an Appointment-ready Form Builder starting point.', 'booking' ) ) ); ?></li> | |
| 53 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **Reliable scheduling**: Service duration, buffers, and Provider-specific overrides are checked on the server before an Appointment is saved.', 'booking' ) ) ); ?></li> | |
| 840 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **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> | |
| 841 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• A new **Start Over** field in the Booking Form Builder lets customers restart the Appointment flow without reloading the page.' ) ); ?></li> | |
| 842 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• A new **Appointments and Services Flow** template and **Weekday Start Time** field provide an Appointment-ready Form Builder starting point.' ) ); ?></li> | |
| 843 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **Reliable scheduling**: Service duration, buffers, and Provider-specific overrides are checked on the server before an Appointment is saved.' ) ); ?></li> | |
| 54 | 844 | </ul> |
| 55 | 845 | </div> |
| 56 | 846 | </div> |
| 57 | 847 | |
| 58 | 848 | <div class="wpbc_wn_section"> |
| 59 | - <h2><?php esc_html_e( 'Administration Modes and QuickStart', 'booking' ); ?></h2> | |
| 849 | + <h2><?php echo 'Administration Modes and QuickStart'; ?></h2> | |
| 60 | 850 | |
| 61 | 851 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 62 | 852 | <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%;" /> |
| 63 | 853 | </div> |
| @@ -64,18 +854,18 @@ | ||
| 64 | 854 | |
| 65 | 855 | <div class="wpbc_wn_col" style="flex: 1 1 100%;"> |
| 66 | 856 | |
| 67 | 857 | <ul> |
| 68 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Choose **Classic**, **Appointments**, or **Rentals** to use familiar terminology and focused navigation without changing existing bookings, resources, availability, or page URLs.', 'booking' ) ) ); ?></li> | |
| 69 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Mode selection is stored for the active Booking Calendar owner, including supported MultiUser owner contexts.', 'booking' ) ) ); ?></li> | |
| 70 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Explicit **Appointment QuickStart** and **Rental QuickStart** actions can reuse or prepare the minimum booking page setup and remain safe to run again.', 'booking' ) ) ); ?></li> | |
| 71 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• The **mode-aware Setup Wizard** follows the selected booking profile through the relevant Service, Provider, form, availability, appearance, publish, and test-page steps.', 'booking' ) ) ); ?></li> | |
| 858 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Choose **Classic**, **Appointments**, or **Rentals** to use familiar terminology and focused navigation without changing existing bookings, resources, availability, or page URLs.' ) ); ?></li> | |
| 859 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Mode selection is stored for the active Booking Calendar owner, including supported MultiUser owner contexts.' ) ); ?></li> | |
| 860 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Explicit **Appointment QuickStart** and **Rental QuickStart** actions can reuse or prepare the minimum booking page setup and remain safe to run again.' ) ); ?></li> | |
| 861 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• The **mode-aware Setup Wizard** follows the selected booking profile through the relevant Service, Provider, form, availability, appearance, publish, and test-page steps.' ) ); ?></li> | |
| 72 | 862 | </ul> |
| 73 | 863 | </div> |
| 74 | 864 | </div> |
| 75 | 865 | |
| 76 | 866 | <div class="wpbc_wn_section"> |
| 77 | - <h2><?php esc_html_e( 'Resource-first Booking Flow', 'booking' ); ?> ( Pro Versions)</h2> | |
| 867 | + <h2><?php echo 'Resource-first Booking Flow'; ?> ( Pro Versions)</h2> | |
| 78 | 868 | |
| 79 | 869 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 80 | 870 | <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%;" /> |
| 81 | 871 | <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> |
| @@ -82,10 +872,10 @@ | ||
| 82 | 872 | </div> |
| 83 | 873 | |
| 84 | 874 | <div class="wpbc_wn_col" style="flex: 1 1 100%;"> |
| 85 | 875 | <ul> |
| 86 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• 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.', 'booking' ) ) ); ?></li> | |
| 87 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• 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.', 'booking' ) ) ); ?></li> | |
| 876 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• 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> | |
| 877 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• 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> | |
| 88 | 878 | </ul> |
| 89 | 879 | </div> |
| 90 | 880 | </div> |
| 91 | 881 | |
| @@ -90,9 +880,9 @@ | ||
| 90 | 880 | </div> |
| 91 | 881 | |
| 92 | 882 | <div class="wpbc_wn_section" style="gap:1%"> |
| 93 | 883 | <div class="wpbc_wn_col" style="flex: 1 1 48%;"> |
| 94 | - <h3><?php esc_html_e( 'Appointment Administration', 'booking' ); ?></h3> | |
| 884 | + <h3><?php echo 'Appointment Administration'; ?></h3> | |
| 95 | 885 | |
| 96 | 886 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding:5px;"> |
| 97 | 887 | <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%;" /> |
| 98 | 888 | </div> |
| @@ -99,22 +889,22 @@ | ||
| 99 | 889 | |
| 100 | 890 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 101 | 891 | <?php if ( ! empty( $image_urls['appointment_admin'] ) ) { ?> |
| 102 | 892 | <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?> |
| 103 | - <img src="<?php echo esc_url( $image_urls['appointment_admin'] ); ?>" alt="<?php esc_attr_e( 'Appointment administration', 'booking' ); ?>" style="margin:10px 0;width:98%;" /> | |
| 893 | + <img src="<?php echo esc_url( $image_urls['appointment_admin'] ); ?>" alt="<?php echo 'Appointment administration'; ?>" style="margin:10px 0;width:98%;" /> | |
| 104 | 894 | <?php } ?> |
| 105 | 895 | </div> |
| 106 | 896 | |
| 107 | 897 | <ul> |
| 108 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **NEW Add Appointment page**: Create an Appointment through the same Service-first flow from a focused admin canvas with contextual inspector panels.', 'booking' ) ) ); ?></li> | |
| 109 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Filter the Booking Listing by **Services and Providers** using reusable searchable multi-select controls.', 'booking' ) ) ); ?></li> | |
| 110 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Appointment details, Service and Provider snapshots, duration, buffers, and blocked time are available in administration details and supported outputs.', 'booking' ) ) ); ?></li> | |
| 111 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Providers remain existing **Booking Resources**, preserving established availability, permissions, and ownership behavior.', 'booking' ) ) ); ?></li> | |
| 898 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **NEW Add Appointment page**: Create an Appointment through the same Service-first flow from a focused admin canvas with contextual inspector panels.' ) ); ?></li> | |
| 899 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Filter the Booking Listing by **Services and Providers** using reusable searchable multi-select controls.' ) ); ?></li> | |
| 900 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Appointment details, Service and Provider snapshots, duration, buffers, and blocked time are available in administration details and supported outputs.' ) ); ?></li> | |
| 901 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Providers remain existing **Booking Resources**, preserving established availability, permissions, and ownership behavior.' ) ); ?></li> | |
| 112 | 902 | </ul> |
| 113 | 903 | </div> |
| 114 | 904 | |
| 115 | 905 | <div class="wpbc_wn_col" style="flex: 1 1 48%;"> |
| 116 | - <h3><?php esc_html_e( 'Redesigned Add Booking Page', 'booking' ); ?></h3> | |
| 906 | + <h3><?php echo 'Redesigned Add Booking Page'; ?></h3> | |
| 117 | 907 | |
| 118 | 908 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;padding:5px;"> |
| 119 | 909 | <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%;" /> |
| 120 | 910 | </div> |
| @@ -121,16 +911,16 @@ | ||
| 121 | 911 | |
| 122 | 912 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 123 | 913 | <?php if ( ! empty( $image_urls['add_booking'] ) ) { ?> |
| 124 | 914 | <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?> |
| 125 | - <img src="<?php echo esc_url( $image_urls['add_booking'] ); ?>" alt="<?php esc_attr_e( 'Redesigned Add Booking administration page', 'booking' ); ?>" style="margin:10px 0;width:98%;" /> | |
| 915 | + <img src="<?php echo esc_url( $image_urls['add_booking'] ); ?>" alt="<?php echo 'Redesigned Add Booking administration page'; ?>" style="margin:10px 0;width:98%;" /> | |
| 126 | 916 | <?php } ?> |
| 127 | 917 | </div> |
| 128 | 918 | |
| 129 | 919 | <ul> |
| 130 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **Focused booking canvas**: The standard Booking Form remains in the main workspace while setup and actions move into a consistent right-side inspector.', 'booking' ) ) ); ?></li> | |
| 131 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **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.', 'booking' ) ) ); ?></li> | |
| 132 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **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.', 'booking' ) ) ); ?></li> | |
| 920 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **Focused booking canvas**: The standard Booking Form remains in the main workspace while setup and actions move into a consistent right-side inspector.' ) ); ?></li> | |
| 921 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **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> | |
| 922 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **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> | |
| 133 | 923 | </ul> |
| 134 | 924 | |
| 135 | 925 | </div> |
| 136 | 926 | </div> |
| @@ -136,9 +926,9 @@ | ||
| 136 | 926 | </div> |
| 137 | 927 | |
| 138 | 928 | <div class="wpbc_wn_section"> |
| 139 | 929 | |
| 140 | - <h2><?php esc_html_e( 'Consistent Form Styles and Accent Colors', 'booking' ); ?></h2> | |
| 930 | + <h2><?php echo 'Consistent Form Styles and Accent Colors'; ?></h2> | |
| 141 | 931 | |
| 142 | 932 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 143 | 933 | <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%;" /> |
| 144 | 934 | </div> |
| @@ -145,17 +935,17 @@ | ||
| 145 | 935 | |
| 146 | 936 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 147 | 937 | <?php if ( ! empty( $image_urls['form_appearance'] ) ) { ?> |
| 148 | 938 | <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?> |
| 149 | - <img src="<?php echo esc_url( $image_urls['form_appearance'] ); ?>" alt="<?php esc_attr_e( 'Form Styles and accent colors', 'booking' ); ?>" style="margin:10px 0;width:98%;" /> | |
| 939 | + <img src="<?php echo esc_url( $image_urls['form_appearance'] ); ?>" alt="<?php echo 'Form Styles and accent colors'; ?>" style="margin:10px 0;width:98%;" /> | |
| 150 | 940 | <?php } ?> |
| 151 | 941 | </div> |
| 152 | 942 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 153 | 943 | <ul> |
| 154 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Choose an optional **Custom accent color** for primary buttons, secondary-button hover borders, focused fields, selected choices, navigation, and compatible time slots.', 'booking' ) ) ); ?></li> | |
| 155 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• 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.', 'booking' ) ) ); ?></li> | |
| 156 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• The new **Automatic - Match Booking Form** time-slot style follows the selected Form Style while existing time-picker skins keep their own colors.', 'booking' ) ) ); ?></li> | |
| 157 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Custom button controls and unified primary, secondary, submit, and wizard styles provide consistent dimensions, borders, hover behavior, dark-theme colors, and accessible keyboard focus.', 'booking' ) ) ); ?></li> | |
| 944 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Choose an optional **Custom accent color** for primary buttons, secondary-button hover borders, focused fields, selected choices, navigation, and compatible time slots.' ) ); ?></li> | |
| 945 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• 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> | |
| 946 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• The new **Automatic - Match Booking Form** time-slot style follows the selected Form Style while existing time-picker skins keep their own colors.' ) ); ?></li> | |
| 947 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• 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> | |
| 158 | 948 | </ul> |
| 159 | 949 | </div> |
| 160 | 950 | |
| 161 | 951 | </div> |
| @@ -161,22 +951,22 @@ | ||
| 161 | 951 | </div> |
| 162 | 952 | |
| 163 | 953 | <div class="wpbc_wn_section"> |
| 164 | 954 | <div class="wpbc_wn_col" style="flex: 1 1 100%;"> |
| 165 | - <h3><?php esc_html_e( 'Compatibility and Extensibility', 'booking' ); ?></h3> | |
| 955 | + <h3><?php echo 'Compatibility and Extensibility'; ?></h3> | |
| 166 | 956 | |
| 167 | 957 | <div class="wpbc_wn_col" style="flex: 1 1 100%;margin: 0;"> |
| 168 | 958 | <?php if ( ! empty( $image_urls['compatibility'] ) ) { ?> |
| 169 | 959 | <?php // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage ?> |
| 170 | - <img src="<?php echo esc_url( $image_urls['compatibility'] ); ?>" alt="<?php esc_attr_e( 'Booking Calendar compatibility and extensibility', 'booking' ); ?>" style="margin:10px 0;width:98%;" /> | |
| 960 | + <img src="<?php echo esc_url( $image_urls['compatibility'] ); ?>" alt="<?php echo 'Booking Calendar compatibility and extensibility'; ?>" style="margin:10px 0;width:98%;" /> | |
| 171 | 961 | <?php } ?> |
| 172 | 962 | </div> |
| 173 | 963 | |
| 174 | 964 | <ul> |
| 175 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Existing **Booking Resources, availability, Booking Forms, pricing, payments, and bookings remain authoritative**; the Appointment experience builds on them instead of replacing them.', 'booking' ) ) ); ?></li> | |
| 176 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• Appointment information is included in supported confirmations, emails, Booking Listing details, print views, and CSV exports.', 'booking' ) ) ); ?></li> | |
| 177 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• **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.', 'booking' ) ) ); ?></li> | |
| 178 | - <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( __( '• New filters and hooks allow commercial editions and extensions to adapt capabilities, Service and Provider catalogues, and Appointment form routing.', 'booking' ) ) ); ?></li> | |
| 965 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Existing **Booking Resources, availability, Booking Forms, pricing, payments, and bookings remain authoritative**; the Appointment experience builds on them instead of replacing them.' ) ); ?></li> | |
| 966 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• Appointment information is included in supported confirmations, emails, Booking Listing details, print views, and CSV exports.' ) ); ?></li> | |
| 967 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• **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> | |
| 968 | + <li><?php echo wp_kses_post( wpbc_replace_to_strong_symbols( '• New filters and hooks allow commercial editions and extensions to adapt capabilities, Service and Provider catalogues, and Appointment form routing.' ) ); ?></li> | |
| 179 | 969 | </ul> |
| 180 | 970 | </div> |
| 181 | 971 | </div> |
| 182 | 972 | </div> |