PluginProbe
Booking Calendar / 11.8
Booking Calendar v11.8
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 10.11 10.11.2 10.11.3 10.11.4 All 201 releases
booking / includes / wpbc-include.php

wpbc-include.php in Booking Calendar 11.8, at includes/wpbc-include.php

492 lines 32.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Include Files of Booking Calendar.
4 *
5 * @version 1.0
6 * @package Booking Calendar
7 * @subpackage Files Loading
8 * @category Bookings
9 *
10 * @author wpdevelop
11 * @link https://wpbookingcalendar.com/
12 * @email info@wpbookingcalendar.com
13 *
14 * @modified 29.09.2015
15 */
16
17 if ( ! defined( 'ABSPATH' ) ) {
18 exit; // Exit if accessed directly.
19 }
20
21 // =====================================================================================================================
22 // == L O A D F I L E S ==
23 // =====================================================================================================================
24
25 require_once WPBC_PLUGIN_DIR . '/core/wpbc-debug.php'; // Debug = Package: WPBC =.
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.
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
148 require_once WPBC_PLUGIN_DIR . '/core/any/class-css-js.php'; // Abstract. Loading CSS & JS files = Package: Any =.
149 require_once WPBC_PLUGIN_DIR . '/core/any/class-admin-settings-api.php'; // Abstract. Settings API.
150
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 .
152 require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-menu-structure.php'; // Abstract. Page Structure in Admin Panel // 2025-02-09.
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.
155
156 // -----------------------------------------------------------------------------------------------------------------
157 // Booking Listing templates.
158 // -----------------------------------------------------------------------------------------------------------------
159 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_listing_row.php';
160 // Booking Actions.
161 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/booking_note.php';
162 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/booking_cost.php';
163 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/payment_status.php';
164 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/payment_request.php';
165 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/change_resource.php';
166 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/duplicate_booking.php';
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';
169 // Booking Listing - Filters - ...
170 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/bo_listing_toolbar.php';
171 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/sort_by.php';
172 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/expand_colapse_all.php';
173 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/resource_choosen.php';
174 // Booking Listing - Actions - Bulk Actions.
175 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/bulk_actions_dropdown.php';
176 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_approve.php';
177 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_pending.php';
178 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_trash.php';
179 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_restore.php';
180 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_delete.php';
181 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_read.php';
182 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_unread.php';
183 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/bulk_print.php';
184 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/empty_trash.php';
185 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/set_read_all.php';
186 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/export_csv.php';
187 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/import_google_calendar.php';
188
189
190 require_once WPBC_PLUGIN_DIR . '/core/any/class-admin-menu.php'; // CLASS. Menus of plugin.
191 require_once WPBC_PLUGIN_DIR . '/core/any/admin-bs-ui.php'; // Functions. Toolbar BS UI Elements.
192 if ( is_admin() ) {
193 require_once WPBC_PLUGIN_DIR . '/core/class/wpbc-class-notices.php'; // Class - Showing different messages and alerts. Including some predefined static messages.
194 require_once WPBC_PLUGIN_DIR . '/core/class/wpbc-class-welcome.php'; // Class - Welcome Page - info about new version.
195 }
196
197 // =====================================================================================================================
198 // Functions
199 // =====================================================================================================================
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.
202 require_once WPBC_PLUGIN_DIR . '/includes/_functions/nonce_func.php'; // Nonce functions - front-end excluding.
203 require_once WPBC_PLUGIN_DIR . '/includes/_functions/str_regex.php'; // String and Regex functions for shortcodes.
204 require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_table_exist.php'; // Is DB Tables Exists.
205 require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_dismissed.php'; // Is Dismissed.
206 require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking_data__parse.php'; // Booking form data parsing and replacement.
207 require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking_data__get.php'; // Booking details | replace / fields functions.
208 require_once WPBC_PLUGIN_DIR . '/includes/_functions/simple_html_tags.php'; // Simple HTML Tags - Custom Shortcodes.
209 require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin_menu_url.php'; // Admin Menu Pages & URLs.
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.
212 require_once WPBC_PLUGIN_DIR . '/includes/_functions/news_version.php'; // News, Version.
213 require_once WPBC_PLUGIN_DIR . '/includes/_functions/versions.php'; // Versions.
214 require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking-resources-catalog-compatibility.php'; // Temporary 11.6 Resources catalog compatibility.
215 require_once WPBC_PLUGIN_DIR . '/includes/_functions/sanitizing.php'; // Sanitizing.
216 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.
217 require_once WPBC_PLUGIN_DIR . '/includes/_functions/city_list.php'; // City list.
218 require_once WPBC_PLUGIN_DIR . '/includes/save-user-meta/save-user-meta.php'; // Saving custom user data.
219 require_once WPBC_PLUGIN_DIR . '/includes/save-load-option/save-load-option.php'; // Ajax Options Saver / Loader.
220 require_once WPBC_PLUGIN_DIR . '/includes/_functions/calendar_scripts.php'; // Calendar Scripts.
221
222 require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions.php'; // Functions.
223 require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions_dates.php'; // Function Dates New in 9.8.
224 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-booking-context.php'; // Signed native Booking Form context for AJAX availability and booking requests.
225 require_once WPBC_PLUGIN_DIR . '/core/form_parser.php'; // Parser for booking form New in 9.8.
226 require_once WPBC_PLUGIN_DIR . '/core/wpbc-dates.php'; // Dates.
227 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/date-hints.php'; // Front-end date hints for Free. // FixIn: 10.15.6.2.
228 require_once WPBC_PLUGIN_DIR . '/core/wpbc_welcome.php'; // Welcome Panel Functions.
229 require_once WPBC_PLUGIN_DIR . '/includes/_working_time/working_time.php'; // Working Time settings and availability helpers.
230
231 // New Engine // FixIn: 9.8.0.4.
232 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/wpbc_cache.php'; // Caching different requests to DB // FixIn: 9.8.0.4.
233 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/booking_date_class.php'; // Functions for booking dates.
234 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/dates_times_support.php'; // Functions for booking DATES & TIME.
235 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/resource_support.php'; // Functions for resources support.
236 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/capacity.php'; // Get Dates from DB - Capacity, Availability and more ...
237 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/get_times_fields.php'; // Get Times Fields options from Booking Form.
238 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/aggregate.php'; // Aggregate functions for 'aggregate' parameter in shortcode.
239 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/where_to_save.php'; // Check where to save booking.
240 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/create_booking.php'; // Functions to create new bookings.
241 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation.php'; // Confirmation section - get data.
242 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation_page.php'; // Confirmation Page.
243 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/calendar_load.php'; // Scripts to load calendar.
244 require_once WPBC_PLUGIN_DIR . '/includes/_capacity/captcha_simple_text.php'; // Simple text captcha checking.
245
246 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...
247 // FixIn: 8.9.4.12.
248 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php' ) ) {
249
250 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php'; // All Translation Terms.
251
252 // FixIn: 8.7.3.6.
253 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php' ) ) {
254 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php';
255 }
256 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php' ) ) {
257 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php';
258 }
259 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php' ) ) {
260 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php';
261 }
262 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php' ) ) {
263 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php';
264 }
265 if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php' ) ) {
266 require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php';
267 }
268 }
269
270 require_once WPBC_PLUGIN_DIR . '/core/wpbc-frontend-messages.php'; // Visitor-facing form messages and multilingual overrides.
271
272 require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publisher.php'; // Neutral Booking Form page publishing service.
273 require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-create-pages.php'; // Create pages for different purposes // FixIn: 9.6.2.10.
274 require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-ajax.php'; // Authorized AJAX publishing endpoint.
275 require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-modal.php'; // Shared native publishing modal.
276 require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-publish-shortcode.php'; // Publish Booking Calendar shortcodes into the Pages // FixIn: 9.8.15.5.
277 require_once WPBC_PLUGIN_DIR . '/core/wpbc-emails.php'; // Emails.
278 // JS & CSS.
279 require_once WPBC_PLUGIN_DIR . '/core/wpbc-css.php'; // Load CSS.
280 require_once WPBC_PLUGIN_DIR . '/core/wpbc-js.php'; // Load JavaScript.
281 require_once WPBC_PLUGIN_DIR . '/core/wpbc-js-vars.php'; // Define JavaScript Vars.
282 // Admin UI.
283 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-toolbars.php'; // Toolbar - BS UI Elements.
284 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-sql.php'; // Data Engine for Booking Listing / Calendar Overview pages.
285 // FixIn: 9.6.3.5 // FixIn: 8.6.1.13.
286 require_once WPBC_PLUGIN_DIR . '/core/timeline/flex-timeline.php'; // New. Flex. Timeline.
287
288 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php'; // Dashboard Widget.
289 require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__component.php'; // Reusable Add Booking component.
290 require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__modal.php'; // Add Booking modal in Booking Listing.
291
292 // ---------------------------------------------------------------------------------------------------------------------
293 // Admin Pages
294 // ---------------------------------------------------------------------------------------------------------------------
295
296 // FixIn: 9.2.1 // FixIn: 9.6.3.5.
297 require_once WPBC_PLUGIN_DIR . '/includes/_booking_hash/booking_hash.php'; // FixIn: 9.2.3.3.
298
299 require_once WPBC_PLUGIN_DIR . '/includes/_news/wpbc_news.php';
300
301 // UI Elements.
302 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/flex_ui_elements.php';
303 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/chosen_filter/chosen_filter.php';
304 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__settings_panel.php';
305 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php';
306 require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__form_steps_timeline.php'; // FixIn: 10.9.6.6.
307
308 // Booking Listing.
309 require_once WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php';
310 require_once WPBC_PLUGIN_DIR . '/includes/print/bookings_print.php';
311
312 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__sql.php';
313 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php';
314 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php';
315 require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php';
316
317 // WP Booking Calendar > Availability > Days Availability page.
318 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__activation.php';
319 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__toolbar_ui.php';
320 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__class.php';
321 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__resource.php';
322 require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__page.php';
323 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/availability_general__page.php';
324 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__save.php';
325 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__preview.php';
326
327 // WP Booking Calendar > Availability > Times Availability page. // FixIn: 10.16.1.
328 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__front.php';
329 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__activate.php';
330 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__save.php';
331 require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__page.php';
332
333 if ( wpbc_is_11_6_features_enabled() ) {
334 // Edition-neutral Booking Resource identity and presentation storage.
335 require_once WPBC_PLUGIN_DIR . '/includes/booking-resources/class-wpbc-booking-resource-content-repository.php';
336 }
337
338 // Domain-neutral template-driven catalog mechanics shared by all registered catalogs.
339 require_once WPBC_PLUGIN_DIR . '/includes/_shared-ui-catalog/wpbc-ui-catalog.php';
340
341 if ( wpbc_is_11_6_features_enabled() ) {
342 // Independent template-driven Booking Resources catalog.
343 require_once WPBC_PLUGIN_DIR . '/includes/page-catalog-booking-resources/booking-resources-catalog.php';
344 }
345
346 // WP Booking Calendar > Services and Appointment details.
347 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__activate.php';
348 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__functions.php';
349 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/repository/appointment_services__repository.php';
350 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-request.php';
351 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-service-catalog-dto.php';
352 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-provider.php';
353 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog-config.php';
354 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog.php';
355 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/class-wpbc-catalog-inline-fields.php';
356 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-editor.php';
357 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-deleter.php';
358 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__booking.php';
359 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__ui.php';
360 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__list.php';
361 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__load.php';
362 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__save.php';
363 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__duplicate.php';
364 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__archive.php';
365 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__catalog_edit.php';
366 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__delete.php';
367 require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__page.php';
368
369 require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/bfb-include.php'; // Booking Form Builder - @since: 11.0.0.
370 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.
371 require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/bfb-form-render.php';
372
373
374 // Elementor Addons: https://developers.elementor.com/docs/getting-started/first-addon/.
375 require_once WPBC_PLUGIN_DIR . '/includes/elementor-booking-form/wpbc-elementor.php';
376
377 // ---------------------------------------------------------------------------------------------------------------------
378
379 // FixIn: 9.6.3.5.
380 require_once WPBC_PLUGIN_DIR . '/core/admin/page-timeline.php'; // Timeline.
381 require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__page.php'; // Add New Booking page.
382
383 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-settings-functions.php'; // Support functions for Booking > Settings General page.
384 require_once WPBC_PLUGIN_DIR . '/core/admin/page-settings.php'; // Settings page.
385 require_once WPBC_PLUGIN_DIR . '/core/admin/api-settings.php'; // Settings API.
386 require_once WPBC_PLUGIN_DIR . '/includes/page-resource-capacity/page-resource-capacity.php'; // Resource Capacity Settings.
387
388
389 require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-gutenberg.php'; // Settings page.
390
391 // ---------------------------------------------------------------------------------------------------------------------
392
393 if ( file_exists( WPBC_PLUGIN_DIR . '/inc/_ps/personal.php' ) ) {
394 require_once WPBC_PLUGIN_DIR . '/inc/_ps/personal.php';
395 } else {
396 require_once WPBC_PLUGIN_DIR . '/includes/page-resource-free/page-resource-free.php'; // Resource page for Free version.
397
398 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-admin.php'; // Email - New admin.
399 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-visitor.php'; // Email - New visitor.
400 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-deny.php'; // Email - Deny - set pending.
401 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-approved.php'; // Email - Approved.
402 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-trash.php'; // Email - Trash.
403 require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-deleted.php'; // Email - Deleted / completely erase.
404
405 require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-general.php'; // General ICS Help Settings page.
406 require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-import.php'; // Import ICS Help Settings page.
407 require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-export.php'; // Export ICS Feeds Settings page.
408 require_once WPBC_PLUGIN_DIR . '/core/admin/page-import-gcal.php'; // Import from Google Calendar Settings page .
409 }
410
411 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/settings_themes__page.php'; // Appearance / Theme Settings.
412 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__save.php';
413 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__preview.php';
414 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/settings_calendar__page.php'; // Calendar Settings.
415 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__save.php';
416 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__preview.php';
417 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/settings_messages__page.php'; // Visitor-facing Form Messages settings.
418 require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/ajax/settings_messages__save.php';
419
420 // Booking > Setup page // FixIn: 10.2.0.1.
421 // FixIn: 9.8.0.2.
422 require_once WPBC_PLUGIN_DIR . '/includes/page-setup/setup__page.php';
423 require_once WPBC_PLUGIN_DIR . '/includes/_tour/wpbc_tour.php'; // FixIn: 10.4.0.1.
424
425
426 require_once WPBC_PLUGIN_DIR . '/includes/_feedback/feedback.php'; // FixIn: 9.2.3.6.
427 require_once WPBC_PLUGIN_DIR . '/includes/_feedback_deactivation/feedback.php'; // FixIn: 10.12.3.4.
428
429 // Old Working.
430 require_once WPBC_PLUGIN_DIR . '/core/lib/wpdev-booking-widget.php'; // W i d g e t s.
431 require_once WPBC_PLUGIN_DIR . '/js/captcha/captcha.php'; // C A P T C H A.
432
433 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-calendar-legend.php'; // Calendar Legend // FixIn: 9.4.3.6.
434 /* Frontend renderers. */
435 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-shortcode-params.php';
436 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-inline-css-js.php';
437 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render.php';
438 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-shortcodes.php';
439 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-form-source-resolver.php';
440 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/form-style-presets.php';
441 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/hooks/class-fe-bfb-settings-hooks.php'; // Apply BFB settings to rendered booking form HTML.
442 require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render-form-body.php';
443 require_once WPBC_PLUGIN_DIR . '/includes/_custom_forms/class-custom-forms-helper.php'; // Custom forms Helpers.
444
445 // Service-first, AJAX Appointment booking shortcode built on the existing resource-bound renderer.
446 require_once WPBC_PLUGIN_DIR . '/includes/booking-appointment/booking-appointment.php';
447 // Dedicated administrator workflow built on the same Appointment controller.
448 require_once WPBC_PLUGIN_DIR . '/includes/page-add-appointment/add_appointment__page.php';
449
450 // Resource-first public workflow with a shared frontend catalog boundary.
451 require_once WPBC_PLUGIN_DIR . '/includes/booking-resource-selector/booking-resource-selector.php';
452
453 require_once WPBC_PLUGIN_DIR . '/core/lib/wpdev-booking-class.php'; // C L A S S B o o k i n g.
454 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-booking-new.php'; // N e w.
455 require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-cron.php'; // CRON @since: 5.2.0.
456
457
458 if ( is_admin() ) {
459 // FixIn: 9.9.0.15.
460 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/shortcode_tpl_js_loader.php'; // Templates JS Loader.
461 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking.php'; // Booking - Shortcode Config Content.
462 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_calendar.php';
463 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_select.php';
464 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_timeline.php';
465 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_form.php';
466 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_search.php';
467 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_other.php';
468 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_import.php';
469 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_listing.php';
470 require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/tiny-button-popup.php'; // PopUp for shortcodes and Buttons in Edit toolbar.
471 }
472
473 require_once WPBC_PLUGIN_DIR . '/core/sync/wpbc-gcal-class.php'; // DONE: in 7.0 // Google Calendar Feeds Import @since: 5.2.0 - v.3.0 API support @since: 5.4.0.
474 require_once WPBC_PLUGIN_DIR . '/core/sync/wpbc-gcal.php'; // DONE: in 7.0 // Sync Google Calendar Events with WPBC @since: 5.2.0 - v.3.0 API support @since: 5.4.0.
475
476 require_once WPBC_PLUGIN_DIR . '/core/any/activation.php';
477 require_once WPBC_PLUGIN_DIR . '/core/wpbc-activation.php';
478
479 require_once WPBC_PLUGIN_DIR . '/core/wpbc-dev-api.php'; // API for Booking Calendar integrations.
480
481 // Development-only tests are disabled when the removable _tests bootstrap is unavailable.
482 $wpbc_tests_bootstrap_file = WPBC_PLUGIN_DIR . '/_tests/wpbc-tests.php';
483 if ( is_admin() && is_readable( $wpbc_tests_bootstrap_file ) ) {
484 require_once $wpbc_tests_bootstrap_file;
485 }
486 unset( $wpbc_tests_bootstrap_file );
487
488 wpbc_prevent_incompatible_pro_version_loading();
489
490 make_bk_action( 'wpbc_loaded_php_files' );
491 do_action( 'wpbc_loaded_php_files' );
492