PluginProbe
Booking Calendar / 11.9
Booking Calendar v11.9
11.9 11.8.4 11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 All 205 releases
← All changes | includes/wpbc-include.php +218 -39 10.15.6 → 11.9 View file →
@@ -23,9 +23,129 @@
23 23 // =====================================================================================================================
24 24
25 25 require_once WPBC_PLUGIN_DIR . '/core/wpbc-debug.php'; // Debug = Package: WPBC =.
26 26 require_once WPBC_PLUGIN_DIR . '/core/wpbc-core.php'; // Core.
27 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/feature-flags.php'; // Release gates for functionality under development.
28 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/starter-assets.php'; // Local or remote starter-image URLs.
27 29
30 +/**
31 + * Register a fail-closed diagnostic when no complete booking-mode engine exists.
32 + *
33 + * The production package contains one booking-mode engine. An incomplete V3
34 + * package must stop before registering partial navigation, services, or assets.
35 + * Translation remains inside the later notice callback so this early bootstrap
36 + * does not load the text domain prematurely.
37 + *
38 + * @param array<int,string> $errors Preflight or package-integrity errors.
39 + *
40 + * @return void
41 + */
42 +function wpbc_booking_modes_register_missing_engine_diagnostic( $errors ) {
43 + $GLOBALS['wpbc_booking_modes_missing_engine_errors'] = is_array( $errors ) ? $errors : array();
44 + add_action( 'admin_notices', 'wpbc_booking_modes_render_missing_engine_diagnostic' );
45 +}
46 +
47 +/**
48 + * Render the administrator-only missing-engine package diagnostic.
49 + *
50 + * @return void
51 + */
52 +function wpbc_booking_modes_render_missing_engine_diagnostic() {
53 + if ( ! current_user_can( 'activate_plugins' ) ) {
54 + return;
55 + }
56 +
57 + $errors = isset( $GLOBALS['wpbc_booking_modes_missing_engine_errors'] ) && is_array( $GLOBALS['wpbc_booking_modes_missing_engine_errors'] )
58 + ? $GLOBALS['wpbc_booking_modes_missing_engine_errors']
59 + : array();
60 + ?>
61 + <div class="notice notice-error">
62 + <p><strong><?php esc_html_e( 'Booking Calendar could not start a complete booking-mode engine. Restore a complete plugin package before using Booking Calendar administration pages.', 'booking' ); ?></strong></p>
63 + <?php if ( ! empty( $errors ) ) : ?>
64 + <ul>
65 + <?php foreach ( array_slice( $errors, 0, 10 ) as $error_message ) : ?>
66 + <li><?php echo esc_html( $error_message ); ?></li>
67 + <?php endforeach; ?>
68 + </ul>
69 + <?php endif; ?>
70 + </div>
71 + <?php
72 +}
73 +
74 +/**
75 + * Register a migration notice for the removed development engine selector.
76 + *
77 + * The constant is intentionally ignored after cutover. Keeping a late notice
78 + * gives administrators an actionable upgrade path without loading translations
79 + * during the early plugin bootstrap.
80 + *
81 + * @return void
82 + */
83 +function wpbc_booking_modes_register_obsolete_selector_diagnostic() {
84 + add_action( 'admin_notices', 'wpbc_booking_modes_render_obsolete_selector_diagnostic' );
85 +}
86 +
87 +/**
88 + * Render the administrator-only obsolete-selector migration notice.
89 + *
90 + * @return void
91 + */
92 +function wpbc_booking_modes_render_obsolete_selector_diagnostic() {
93 + if ( ! current_user_can( 'activate_plugins' ) ) {
94 + return;
95 + }
96 + ?>
97 + <div class="notice notice-warning is-dismissible">
98 + <p><?php esc_html_e( 'Booking Calendar V3 is now the production booking-mode engine. Remove the obsolete WPBC_BOOKING_MODE constant from your configuration.', 'booking' ); ?></p>
99 + </div>
100 + <?php
101 +}
102 +
103 +if ( defined( 'WPBC_BOOKING_MODE' ) ) {
104 + wpbc_booking_modes_register_obsolete_selector_diagnostic();
105 +}
106 +
107 +$wpbc_booking_modes_v3_preflight_file = WPBC_PLUGIN_DIR . '/includes/booking_modes_v3/preflight.php';
108 +$wpbc_booking_modes_v3_result = array(
109 + 'ready' => false,
110 + 'errors' => array(),
111 +);
112 +
113 +if ( is_readable( $wpbc_booking_modes_v3_preflight_file ) ) {
114 + require_once $wpbc_booking_modes_v3_preflight_file;
115 + $wpbc_booking_modes_v3_result = wpbc_booking_modes_v3_preflight();
116 +} else {
117 + $wpbc_booking_modes_v3_result['errors'][] = 'Missing or unreadable V3 component: preflight.php';
118 +}
119 +
120 +if ( ! empty( $wpbc_booking_modes_v3_result['ready'] ) ) {
121 + if ( ! defined( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE' ) ) {
122 + define( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE', 'v3' );
123 + }
124 + require_once WPBC_PLUGIN_DIR . '/includes/booking_modes_v3/booking_modes.php';
125 +} else {
126 + if ( ! defined( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE' ) ) {
127 + define( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE', 'none' );
128 + }
129 +
130 + $wpbc_booking_modes_missing_engine_errors = isset( $wpbc_booking_modes_v3_result['errors'] ) && is_array( $wpbc_booking_modes_v3_result['errors'] )
131 + ? $wpbc_booking_modes_v3_result['errors']
132 + : array();
133 + wpbc_booking_modes_register_missing_engine_diagnostic( $wpbc_booking_modes_missing_engine_errors );
134 +
135 + unset(
136 + $wpbc_booking_modes_v3_preflight_file,
137 + $wpbc_booking_modes_v3_result,
138 + $wpbc_booking_modes_missing_engine_errors
139 + );
140 + return;
141 +}
142 +
143 +unset(
144 + $wpbc_booking_modes_v3_preflight_file,
145 + $wpbc_booking_modes_v3_result
146 +);
147 +
28 148 require_once WPBC_PLUGIN_DIR . '/core/any/class-css-js.php'; // Abstract. Loading CSS & JS files = Package: Any =.
29 149 require_once WPBC_PLUGIN_DIR . '/core/any/class-admin-settings-api.php'; // Abstract. Settings API.
30 150
31 151 require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-settings-page-parts.php'; // Settings Template - "Settins Parts", which used in the class-page-structure.php .
@@ -30,8 +150,9 @@
30 150
31 151 require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-settings-page-parts.php'; // Settings Template - "Settins Parts", which used in the class-page-structure.php .
32 152 require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-menu-structure.php'; // Abstract. Page Structure in Admin Panel // 2025-02-09.
33 153 require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-page-structure.php'; // Abstract. Page Structure in Admin Panel // 2024-12-23.
154 +require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-sidebar-panels.php'; // Common right sidebar panels and collapsible groups.
34 155
35 156 // -----------------------------------------------------------------------------------------------------------------
36 157 // Booking Listing templates.
37 158 // -----------------------------------------------------------------------------------------------------------------
@@ -43,8 +164,9 @@
43 164 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/payment_request.php';
44 165 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/change_resource.php';
45 166 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/duplicate_booking.php';
46 167 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/change_locale.php';
168 +require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/set_unavailable_times.php';
47 169 // Booking Listing - Filters - ...
48 170 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/bo_listing_toolbar.php';
49 171 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/sort_by.php';
50 172 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/expand_colapse_all.php';
@@ -75,8 +197,9 @@
75 197 // =====================================================================================================================
76 198 // Functions
77 199 // =====================================================================================================================
78 200 require_once WPBC_PLUGIN_DIR . '/includes/_functions/class-wpbc-action-scheduler-compatibility.php'; // Class to Increase Memory and Time.
201 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/woocommerce-compatibility.php'; // Allow public Booking Calendar AJAX requests through WooCommerce admin-access protection.
79 202 require_once WPBC_PLUGIN_DIR . '/includes/_functions/nonce_func.php'; // Nonce functions - front-end excluding.
80 203 require_once WPBC_PLUGIN_DIR . '/includes/_functions/str_regex.php'; // String and Regex functions for shortcodes.
81 204 require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_table_exist.php'; // Is DB Tables Exists.
82 205 require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_dismissed.php'; // Is Dismissed.
@@ -84,10 +207,13 @@
84 207 require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking_data__get.php'; // Booking details | replace / fields functions.
85 208 require_once WPBC_PLUGIN_DIR . '/includes/_functions/simple_html_tags.php'; // Simple HTML Tags - Custom Shortcodes.
86 209 require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin_menu_url.php'; // Admin Menu Pages & URLs.
87 210 require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin_top_bar.php'; // Admin Top Bar.
211 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin-cost-correction.php'; // Shared Add Booking and Add Appointment exact-total control.
88 212 require_once WPBC_PLUGIN_DIR . '/includes/_functions/news_version.php'; // News, Version.
213 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/class-wpbc-environment-policy.php'; // Shared environment identity and capability policy.
89 214 require_once WPBC_PLUGIN_DIR . '/includes/_functions/versions.php'; // Versions.
215 +require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking-resources-catalog-compatibility.php'; // Temporary 11.6 Resources catalog compatibility.
90 216 require_once WPBC_PLUGIN_DIR . '/includes/_functions/sanitizing.php'; // Sanitizing.
91 217 require_once WPBC_PLUGIN_DIR . '/includes/_functions/request.php'; // Class for sanitizing $_REQUEST parameters and saving or getting it from DB // FixIn: 9.3.1.2.
92 218 require_once WPBC_PLUGIN_DIR . '/includes/_functions/city_list.php'; // City list.
93 219 require_once WPBC_PLUGIN_DIR . '/includes/save-user-meta/save-user-meta.php'; // Saving custom user data.
@@ -95,12 +221,14 @@
95 221 require_once WPBC_PLUGIN_DIR . '/includes/_functions/calendar_scripts.php'; // Calendar Scripts.
96 222
97 223 require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions.php'; // Functions.
98 224 require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions_dates.php'; // Function Dates New in 9.8.
225 +require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-booking-context.php'; // Signed native Booking Form context for AJAX availability and booking requests.
99 226 require_once WPBC_PLUGIN_DIR . '/core/form_parser.php'; // Parser for booking form New in 9.8.
100 227 require_once WPBC_PLUGIN_DIR . '/core/wpbc-dates.php'; // Dates.
101 228 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/date-hints.php'; // Front-end date hints for Free. // FixIn: 10.15.6.2.
102 229 require_once WPBC_PLUGIN_DIR . '/core/wpbc_welcome.php'; // Welcome Panel Functions.
230 +require_once WPBC_PLUGIN_DIR . '/includes/_working_time/working_time.php'; // Working Time settings and availability helpers.
103 231
104 232 // New Engine // FixIn: 9.8.0.4.
105 233 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/wpbc_cache.php'; // Caching different requests to DB // FixIn: 9.8.0.4.
106 234 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/booking_date_class.php'; // Functions for booking dates.
@@ -109,8 +237,9 @@
109 237 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/capacity.php'; // Get Dates from DB - Capacity, Availability and more ...
110 238 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/get_times_fields.php'; // Get Times Fields options from Booking Form.
111 239 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/aggregate.php'; // Aggregate functions for 'aggregate' parameter in shortcode.
112 240 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/where_to_save.php'; // Check where to save booking.
241 +require_once WPBC_PLUGIN_DIR . '/includes/_capacity/booking_availability_guard.php'; // Serialize final availability validation and booking persistence on supported databases.
113 242 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/create_booking.php'; // Functions to create new bookings.
114 243 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation.php'; // Confirmation section - get data.
115 244 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation_page.php'; // Confirmation Page.
116 245 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/calendar_load.php'; // Scripts to load calendar.
@@ -116,32 +245,15 @@
116 245 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/calendar_load.php'; // Scripts to load calendar.
117 246 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/captcha_simple_text.php'; // Simple text captcha checking.
118 247
119 248 require_once WPBC_PLUGIN_DIR . '/core/wpbc-translation.php'; // Translation, must be loaded after '/core/wpbc-core.php', because there defined add_bk_filter(), etc...
120 -// FixIn: 8.9.4.12.
121 -if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php' ) ) {
122 249
123 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php'; // All Translation Terms.
250 +require_once WPBC_PLUGIN_DIR . '/core/wpbc-frontend-messages.php'; // Visitor-facing form messages and multilingual overrides.
124 251
125 - // FixIn: 8.7.3.6.
126 - if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php' ) ) {
127 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php';
128 - }
129 - if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php' ) ) {
130 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php';
131 - }
132 - if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php' ) ) {
133 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php';
134 - }
135 - if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php' ) ) {
136 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php';
137 - }
138 - if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php' ) ) {
139 - require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php';
140 - }
141 -}
142 -
252 +require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publisher.php'; // Neutral Booking Form page publishing service.
143 253 require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-create-pages.php'; // Create pages for different purposes // FixIn: 9.6.2.10.
254 +require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-ajax.php'; // Authorized AJAX publishing endpoint.
255 +require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-modal.php'; // Shared native publishing modal.
144 256 require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-publish-shortcode.php'; // Publish Booking Calendar shortcodes into the Pages // FixIn: 9.8.15.5.
145 257 require_once WPBC_PLUGIN_DIR . '/core/wpbc-emails.php'; // Emails.
146 258 // JS & CSS.
147 259 require_once WPBC_PLUGIN_DIR . '/core/wpbc-css.php'; // Load CSS.
@@ -153,8 +265,10 @@
153 265 // FixIn: 9.6.3.5 // FixIn: 8.6.1.13.
154 266 require_once WPBC_PLUGIN_DIR . '/core/timeline/flex-timeline.php'; // New. Flex. Timeline.
155 267
156 268 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php'; // Dashboard Widget.
269 +require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__component.php'; // Reusable Add Booking component.
270 +require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__modal.php'; // Add Booking modal in Booking Listing.
157 271
158 272 // ---------------------------------------------------------------------------------------------------------------------
159 273 // Admin Pages
160 274 // ---------------------------------------------------------------------------------------------------------------------
@@ -165,8 +279,9 @@
165 279 require_once WPBC_PLUGIN_DIR . '/includes/_news/wpbc_news.php';
166 280
167 281 // UI Elements.
168 282 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/flex_ui_elements.php';
283 +require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/chosen_filter/chosen_filter.php';
169 284 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__settings_panel.php';
170 285 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php';
171 286 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__form_steps_timeline.php'; // FixIn: 10.9.6.6.
172 287
@@ -178,21 +293,68 @@
178 293 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php';
179 294 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php';
180 295 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php';
181 296
182 -// Booking > Availability page.
297 +// WP Booking Calendar > Availability > Days Availability page.
183 298 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__activation.php';
184 299 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__toolbar_ui.php';
185 300 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__class.php';
186 301 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__resource.php';
187 302 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__page.php';
303 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/availability_general__page.php';
304 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__save.php';
305 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__preview.php';
188 306
189 -if ( WPBC_NEW_FORM_BUILDER ) {
190 - require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/bfb-include.php'; // Booking Form Builder - @since: 11.0.0.
191 - require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/class-wpbc-bfb-form-shortcode-engine.php'; // New Shortcode Parsers and Form Render. 11.0.1.
192 - require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/bfb-form-render.php';
307 +// WP Booking Calendar > Availability > Times Availability page. // FixIn: 10.16.1.
308 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__front.php';
309 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__activate.php';
310 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__save.php';
311 +require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__page.php';
312 +
313 +if ( wpbc_is_11_6_features_enabled() ) {
314 + // Edition-neutral Booking Resource identity and presentation storage.
315 + require_once WPBC_PLUGIN_DIR . '/includes/booking-resources/class-wpbc-booking-resource-content-repository.php';
193 316 }
194 317
318 +// Domain-neutral template-driven catalog mechanics shared by all registered catalogs.
319 +require_once WPBC_PLUGIN_DIR . '/includes/_shared-ui-catalog/wpbc-ui-catalog.php';
320 +
321 +// Reusable Booking Resources read/create domain used by production workflows.
322 +require_once WPBC_PLUGIN_DIR . '/includes/page-catalog-booking-resources/booking-resources-domain.php';
323 +
324 +if ( wpbc_is_11_6_features_enabled() ) {
325 + // Independent template-driven Booking Resources catalog.
326 + require_once WPBC_PLUGIN_DIR . '/includes/page-catalog-booking-resources/booking-resources-catalog.php';
327 +}
328 +
329 +// WP Booking Calendar > Services and Appointment details.
330 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__activate.php';
331 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__functions.php';
332 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/repository/appointment_services__repository.php';
333 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-request.php';
334 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-service-catalog-dto.php';
335 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-provider.php';
336 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog-config.php';
337 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog.php';
338 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/class-wpbc-catalog-inline-fields.php';
339 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-editor.php';
340 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-deleter.php';
341 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__booking.php';
342 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__ui.php';
343 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__list.php';
344 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__load.php';
345 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__save.php';
346 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__duplicate.php';
347 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__archive.php';
348 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__catalog_edit.php';
349 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__delete.php';
350 +require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__page.php';
351 +
352 +require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/bfb-include.php'; // Booking Form Builder - @since: 11.0.0.
353 +require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/class-wpbc-bfb-form-shortcode-engine.php'; // New Shortcode Parsers and Form Render. 11.0.1.
354 +require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/bfb-form-render.php';
355 +
356 +
195 357 // Elementor Addons: https://developers.elementor.com/docs/getting-started/first-addon/.
196 358 require_once WPBC_PLUGIN_DIR . '/includes/elementor-booking-form/wpbc-elementor.php';
197 359
198 360 // ---------------------------------------------------------------------------------------------------------------------
@@ -198,13 +360,14 @@
198 360 // ---------------------------------------------------------------------------------------------------------------------
199 361
200 362 // FixIn: 9.6.3.5.
201 363 require_once WPBC_PLUGIN_DIR . '/core/admin/page-timeline.php'; // Timeline.
202 -require_once WPBC_PLUGIN_DIR . '/core/admin/page-new.php'; // Add New Booking page.
364 +require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__page.php'; // Add New Booking page.
203 365
204 366 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-settings-functions.php'; // Support functions for Booking > Settings General page.
205 367 require_once WPBC_PLUGIN_DIR . '/core/admin/page-settings.php'; // Settings page.
206 368 require_once WPBC_PLUGIN_DIR . '/core/admin/api-settings.php'; // Settings API.
369 +require_once WPBC_PLUGIN_DIR . '/includes/page-resource-capacity/page-resource-capacity.php'; // Resource Capacity Settings.
207 370
208 371
209 372 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-gutenberg.php'; // Settings page.
210 373
@@ -209,20 +372,12 @@
209 372 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-gutenberg.php'; // Settings page.
210 373
211 374 // ---------------------------------------------------------------------------------------------------------------------
212 375
213 -// Functions from Free form that can be use in paid versions in Wizard Setup.
214 -
215 -require_once WPBC_PLUGIN_DIR . '/includes/page-form-simple/form_templates.php'; // Booking Form Templates // FixIn: 10.6.2.1.
216 -
217 -require_once WPBC_PLUGIN_DIR . '/includes/page-form-simple/form_simple__default.php';
218 -require_once WPBC_PLUGIN_DIR . '/includes/page-form-simple/form_simple__get_data.php';
219 -
220 376 if ( file_exists( WPBC_PLUGIN_DIR . '/inc/_ps/personal.php' ) ) {
221 377 require_once WPBC_PLUGIN_DIR . '/inc/_ps/personal.php';
222 378 } else {
223 379 require_once WPBC_PLUGIN_DIR . '/includes/page-resource-free/page-resource-free.php'; // Resource page for Free version.
224 - require_once WPBC_PLUGIN_DIR . '/includes/page-form-simple/page-form-simple.php'; // Booking Form Simple.
225 380
226 381 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-admin.php'; // Email - New admin.
227 382 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-visitor.php'; // Email - New visitor.
228 383 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-deny.php'; // Email - Deny - set pending.
@@ -235,14 +390,20 @@
235 390 require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-export.php'; // Export ICS Feeds Settings page.
236 391 require_once WPBC_PLUGIN_DIR . '/core/admin/page-import-gcal.php'; // Import from Google Calendar Settings page .
237 392 }
238 393
239 -require_once WPBC_PLUGIN_DIR . '/includes/page-settings-form-options/page-settings-form-options.php'; // Booking Form Opyions Settings.
240 -require_once WPBC_PLUGIN_DIR . '/includes/page-settings-color-themes/page-settings-color-themes.php'; // Appearance / Color Themes / Skins Settings.
394 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/settings_themes__page.php'; // Appearance / Theme Settings.
395 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__save.php';
396 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__preview.php';
397 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/settings_calendar__page.php'; // Calendar Settings.
398 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__save.php';
399 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__preview.php';
400 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/settings_messages__page.php'; // Visitor-facing Form Messages settings.
401 +require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/ajax/settings_messages__save.php';
241 402
242 403 // Booking > Setup page // FixIn: 10.2.0.1.
243 -// FixIn: 9.8.0.2.
244 -require_once WPBC_PLUGIN_DIR . '/includes/page-setup/setup__page.php';
404 +require_once WPBC_PLUGIN_DIR . '/includes/page-setup-wizard/first-run-launcher/class-wpbc-setup-wizard-first-install-state.php';
405 +require_once WPBC_PLUGIN_DIR . '/includes/page-setup-wizard/setup-wizard.php';
245 406 require_once WPBC_PLUGIN_DIR . '/includes/_tour/wpbc_tour.php'; // FixIn: 10.4.0.1.
246 407
247 408
248 409 require_once WPBC_PLUGIN_DIR . '/includes/_feedback/feedback.php'; // FixIn: 9.2.3.6.
@@ -258,12 +419,21 @@
258 419 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-inline-css-js.php';
259 420 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render.php';
260 421 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-shortcodes.php';
261 422 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-form-source-resolver.php';
423 +require_once WPBC_PLUGIN_DIR . '/includes/_front_end/form-style-presets.php';
262 424 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/hooks/class-fe-bfb-settings-hooks.php'; // Apply BFB settings to rendered booking form HTML.
263 425 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render-form-body.php';
264 426 require_once WPBC_PLUGIN_DIR . '/includes/_custom_forms/class-custom-forms-helper.php'; // Custom forms Helpers.
265 427
428 +// Service-first, AJAX Appointment booking shortcode built on the existing resource-bound renderer.
429 +require_once WPBC_PLUGIN_DIR . '/includes/booking-appointment/booking-appointment.php';
430 +// Dedicated administrator workflow built on the same Appointment controller.
431 +require_once WPBC_PLUGIN_DIR . '/includes/page-add-appointment/add_appointment__page.php';
432 +
433 +// Resource-first public workflow with a shared frontend catalog boundary.
434 +require_once WPBC_PLUGIN_DIR . '/includes/booking-resource-selector/booking-resource-selector.php';
435 +
266 436 require_once WPBC_PLUGIN_DIR . '/core/lib/wpdev-booking-class.php'; // C L A S S B o o k i n g.
267 437 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-booking-new.php'; // N e w.
268 438 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-cron.php'; // CRON @since: 5.2.0.
269 439
@@ -289,7 +459,16 @@
289 459 require_once WPBC_PLUGIN_DIR . '/core/any/activation.php';
290 460 require_once WPBC_PLUGIN_DIR . '/core/wpbc-activation.php';
291 461
292 462 require_once WPBC_PLUGIN_DIR . '/core/wpbc-dev-api.php'; // API for Booking Calendar integrations.
463 +
464 +// Development-only tests are disabled when the removable _tests bootstrap is unavailable.
465 +$wpbc_tests_bootstrap_file = WPBC_PLUGIN_DIR . '/_tests/wpbc-tests.php';
466 +if ( is_admin() && is_readable( $wpbc_tests_bootstrap_file ) ) {
467 + require_once $wpbc_tests_bootstrap_file;
468 +}
469 +unset( $wpbc_tests_bootstrap_file );
470 +
471 +wpbc_prevent_incompatible_pro_version_loading();
293 472
294 473 make_bk_action( 'wpbc_loaded_php_files' );
295 474 do_action( 'wpbc_loaded_php_files' );