# booking/11.8/includes/wpbc-include.php

Booking Calendar, version 11.8. 492 lines.

- Page: https://pluginprobe.com/plugins/booking/11.8/code/includes/wpbc-include.php
- Raw: https://pluginprobe.com/plugins/booking/11.8/raw/includes/wpbc-include.php
- Modified: 2026-09-10T16:09:30+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/booking/11.8/code/includes/wpbc-include.php#L10-L20`.

```php
<?php
/**
 * Include Files of Booking Calendar.
 *
 * @version 1.0
 * @package Booking Calendar
 * @subpackage Files Loading
 * @category Bookings
 *
 * @author wpdevelop
 * @link https://wpbookingcalendar.com/
 * @email info@wpbookingcalendar.com
 *
 * @modified 29.09.2015
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;  // Exit if accessed directly.
}

// =====================================================================================================================
// ==  L O A D   F I L E S  ==
// =====================================================================================================================

require_once WPBC_PLUGIN_DIR . '/core/wpbc-debug.php';                       // Debug                                            = Package: WPBC =.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-core.php';                        // Core.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/feature-flags.php';      // Release gates for functionality under development.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/starter-assets.php';     // Local or remote starter-image URLs.

/**
 * Register a fail-closed diagnostic when no complete booking-mode engine exists.
 *
 * The production package contains one booking-mode engine. An incomplete V3
 * package must stop before registering partial navigation, services, or assets.
 * Translation remains inside the later notice callback so this early bootstrap
 * does not load the text domain prematurely.
 *
 * @param array<int,string> $errors Preflight or package-integrity errors.
 *
 * @return void
 */
function wpbc_booking_modes_register_missing_engine_diagnostic( $errors ) {
	$GLOBALS['wpbc_booking_modes_missing_engine_errors'] = is_array( $errors ) ? $errors : array();
	add_action( 'admin_notices', 'wpbc_booking_modes_render_missing_engine_diagnostic' );
}

/**
 * Render the administrator-only missing-engine package diagnostic.
 *
 * @return void
 */
function wpbc_booking_modes_render_missing_engine_diagnostic() {
	if ( ! current_user_can( 'activate_plugins' ) ) {
		return;
	}

	$errors = isset( $GLOBALS['wpbc_booking_modes_missing_engine_errors'] ) && is_array( $GLOBALS['wpbc_booking_modes_missing_engine_errors'] )
		? $GLOBALS['wpbc_booking_modes_missing_engine_errors']
		: array();
	?>
	<div class="notice notice-error">
		<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>
		<?php if ( ! empty( $errors ) ) : ?>
			<ul>
				<?php foreach ( array_slice( $errors, 0, 10 ) as $error_message ) : ?>
					<li><?php echo esc_html( $error_message ); ?></li>
				<?php endforeach; ?>
			</ul>
		<?php endif; ?>
	</div>
	<?php
}

/**
 * Register a migration notice for the removed development engine selector.
 *
 * The constant is intentionally ignored after cutover. Keeping a late notice
 * gives administrators an actionable upgrade path without loading translations
 * during the early plugin bootstrap.
 *
 * @return void
 */
function wpbc_booking_modes_register_obsolete_selector_diagnostic() {
	add_action( 'admin_notices', 'wpbc_booking_modes_render_obsolete_selector_diagnostic' );
}

/**
 * Render the administrator-only obsolete-selector migration notice.
 *
 * @return void
 */
function wpbc_booking_modes_render_obsolete_selector_diagnostic() {
	if ( ! current_user_can( 'activate_plugins' ) ) {
		return;
	}
	?>
	<div class="notice notice-warning is-dismissible">
		<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>
	</div>
	<?php
}

if ( defined( 'WPBC_BOOKING_MODE' ) ) {
	wpbc_booking_modes_register_obsolete_selector_diagnostic();
}

$wpbc_booking_modes_v3_preflight_file = WPBC_PLUGIN_DIR . '/includes/booking_modes_v3/preflight.php';
$wpbc_booking_modes_v3_result         = array(
	'ready'  => false,
	'errors' => array(),
);

if ( is_readable( $wpbc_booking_modes_v3_preflight_file ) ) {
	require_once $wpbc_booking_modes_v3_preflight_file;
	$wpbc_booking_modes_v3_result = wpbc_booking_modes_v3_preflight();
} else {
	$wpbc_booking_modes_v3_result['errors'][] = 'Missing or unreadable V3 component: preflight.php';
}

if ( ! empty( $wpbc_booking_modes_v3_result['ready'] ) ) {
	if ( ! defined( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE' ) ) {
		define( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE', 'v3' );
	}
	require_once WPBC_PLUGIN_DIR . '/includes/booking_modes_v3/booking_modes.php';
} else {
	if ( ! defined( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE' ) ) {
		define( 'WPBC_BOOKING_MODES_ACTIVE_ENGINE', 'none' );
	}

	$wpbc_booking_modes_missing_engine_errors = isset( $wpbc_booking_modes_v3_result['errors'] ) && is_array( $wpbc_booking_modes_v3_result['errors'] )
		? $wpbc_booking_modes_v3_result['errors']
		: array();
	wpbc_booking_modes_register_missing_engine_diagnostic( $wpbc_booking_modes_missing_engine_errors );

	unset(
		$wpbc_booking_modes_v3_preflight_file,
		$wpbc_booking_modes_v3_result,
		$wpbc_booking_modes_missing_engine_errors
	);
	return;
}

unset(
	$wpbc_booking_modes_v3_preflight_file,
	$wpbc_booking_modes_v3_result
);

require_once WPBC_PLUGIN_DIR . '/core/any/class-css-js.php';                 // Abstract. Loading CSS & JS files                 = Package: Any =.
require_once WPBC_PLUGIN_DIR . '/core/any/class-admin-settings-api.php';     // Abstract. Settings API.

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 .
require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-menu-structure.php';                                        // Abstract. Page Structure in Admin Panel    // 2025-02-09.
require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-page-structure.php';                                        // Abstract. Page Structure in Admin Panel    // 2024-12-23.
require_once WPBC_PLUGIN_DIR . '/includes/ui_settings/class-sidebar-panels.php';                                       // Common right sidebar panels and collapsible groups.

// -----------------------------------------------------------------------------------------------------------------
// Booking Listing templates.
// -----------------------------------------------------------------------------------------------------------------
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_listing_row.php';
// Booking Actions.
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/booking_note.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/booking_cost.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/payment_status.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/payment_request.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/change_resource.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/duplicate_booking.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/change_locale.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/booking_action/set_unavailable_times.php';
// Booking Listing - Filters - ...
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/bo_listing_toolbar.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/sort_by.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/expand_colapse_all.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_filters/resource_choosen.php';
// Booking Listing - Actions - Bulk Actions.
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/bulk_actions_dropdown.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_approve.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_pending.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_trash.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_restore.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_delete.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_read.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/selected_bookings_unread.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/bulk_print.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/empty_trash.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/set_read_all.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/export_csv.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/listing_actions/import_google_calendar.php';


require_once WPBC_PLUGIN_DIR . '/core/any/class-admin-menu.php';                                                        // CLASS. Menus of plugin.
require_once WPBC_PLUGIN_DIR . '/core/any/admin-bs-ui.php';                                                             // Functions. Toolbar BS UI Elements.
if ( is_admin() ) {
	require_once WPBC_PLUGIN_DIR . '/core/class/wpbc-class-notices.php';        // Class - Showing different messages and alerts. Including some predefined static messages.
	require_once WPBC_PLUGIN_DIR . '/core/class/wpbc-class-welcome.php';        // Class - Welcome Page - info  about  new version.
}

// =====================================================================================================================
// Functions
// =====================================================================================================================
require_once WPBC_PLUGIN_DIR . '/includes/_functions/class-wpbc-action-scheduler-compatibility.php';                    // Class to Increase Memory and Time.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/woocommerce-compatibility.php';                                   // Allow public Booking Calendar AJAX requests through WooCommerce admin-access protection.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/nonce_func.php';                // Nonce functions - front-end excluding.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/str_regex.php';                 // String and Regex functions for shortcodes.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_table_exist.php';            // Is DB Tables Exists.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/is_dismissed.php';              // Is Dismissed.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking_data__parse.php';       // Booking form data parsing and replacement.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking_data__get.php';         // Booking details | replace / fields functions.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/simple_html_tags.php';          // Simple HTML Tags             -   Custom Shortcodes.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin_menu_url.php';            // Admin Menu Pages & URLs.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin_top_bar.php';             // Admin Top Bar.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/admin-cost-correction.php';     // Shared Add Booking and Add Appointment exact-total control.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/news_version.php';              // News, Version.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/versions.php';                  // Versions.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/booking-resources-catalog-compatibility.php'; // Temporary 11.6 Resources catalog compatibility.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/sanitizing.php';                // Sanitizing.
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.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/city_list.php';                 // City list.
require_once WPBC_PLUGIN_DIR . '/includes/save-user-meta/save-user-meta.php';        // Saving custom user data.
require_once WPBC_PLUGIN_DIR . '/includes/save-load-option/save-load-option.php';    // Ajax Options Saver / Loader.
require_once WPBC_PLUGIN_DIR . '/includes/_functions/calendar_scripts.php';    		 // Calendar Scripts.

require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions.php';                               // Functions.
require_once WPBC_PLUGIN_DIR . '/core/wpbc_functions_dates.php';                         // Function Dates                       New in 9.8.
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-booking-context.php';       // Signed native Booking Form context for AJAX availability and booking requests.
require_once WPBC_PLUGIN_DIR . '/core/form_parser.php';                                  // Parser for booking form              New in 9.8.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-dates.php';                                   // Dates.
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/date-hints.php';                    // Front-end date hints for Free.       // FixIn: 10.15.6.2.
require_once WPBC_PLUGIN_DIR . '/core/wpbc_welcome.php';                                 // Welcome Panel Functions.
require_once WPBC_PLUGIN_DIR . '/includes/_working_time/working_time.php';               // Working Time settings and availability helpers.

// New Engine       // FixIn: 9.8.0.4.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/wpbc_cache.php';                     // Caching different requests to DB                                 // FixIn: 9.8.0.4.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/booking_date_class.php';             // Functions for booking dates.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/dates_times_support.php';            // Functions for booking DATES & TIME.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/resource_support.php';               // Functions for resources support.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/capacity.php';                       // Get Dates from DB  - Capacity, Availability and more ...
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/get_times_fields.php';               // Get Times Fields options from  Booking Form.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/aggregate.php';                      // Aggregate functions  for 'aggregate' parameter in shortcode.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/where_to_save.php';                  // Check  where to  save booking.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/create_booking.php';                 // Functions to create new bookings.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation.php';                   // Confirmation section - get data.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/confirmation_page.php';              // Confirmation Page.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/calendar_load.php';                  // Scripts to  load calendar.
require_once WPBC_PLUGIN_DIR . '/includes/_capacity/captcha_simple_text.php';            // Simple text captcha checking.

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...
// FixIn: 8.9.4.12.
if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php' ) ) {

	require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations.php';    // All Translation Terms.

	// FixIn: 8.7.3.6.
	if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php' ) ) {
		require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations1.php';
	}
	if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php' ) ) {
		require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations2.php';
	}
	if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php' ) ) {
		require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations3.php';
	}
	if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php' ) ) {
		require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations4.php';
	}
	if ( file_exists( WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php' ) ) {
		require_once WPBC_PLUGIN_DIR . '/core/lang/wpbc_all_translations5.php';
	}
}

require_once WPBC_PLUGIN_DIR . '/core/wpbc-frontend-messages.php';           // Visitor-facing form messages and multilingual overrides.

require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publisher.php'; // Neutral Booking Form page publishing service.
require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-create-pages.php';                // Create pages for different purposes                  // FixIn: 9.6.2.10.
require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-ajax.php'; // Authorized AJAX publishing endpoint.
require_once WPBC_PLUGIN_DIR . '/includes/publish/class-wpbc-booking-form-publish-modal.php'; // Shared native publishing modal.
require_once WPBC_PLUGIN_DIR . '/includes/publish/wpbc-publish-shortcode.php';           // Publish  Booking Calendar shortcodes into the Pages   // FixIn: 9.8.15.5.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-emails.php';                                  // Emails.
// JS & CSS.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-css.php';                                     // Load CSS.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-js.php';                                      // Load JavaScript.
require_once WPBC_PLUGIN_DIR . '/core/wpbc-js-vars.php';                                 // Define JavaScript Vars.
// Admin UI.
require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-toolbars.php';                          // Toolbar - BS UI Elements.
require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-sql.php';                               // Data Engine for Booking Listing / Calendar Overview pages.
// FixIn: 9.6.3.5    // FixIn: 8.6.1.13.
require_once WPBC_PLUGIN_DIR . '/core/timeline/flex-timeline.php';                       // New. Flex. Timeline.

require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php';                          // Dashboard Widget.
require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__component.php';              // Reusable Add Booking component.
require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__modal.php';                  // Add Booking modal in Booking Listing.

// ---------------------------------------------------------------------------------------------------------------------
// Admin Pages
// ---------------------------------------------------------------------------------------------------------------------

// FixIn: 9.2.1 // FixIn: 9.6.3.5.
require_once WPBC_PLUGIN_DIR . '/includes/_booking_hash/booking_hash.php';                                       // FixIn: 9.2.3.3.

require_once WPBC_PLUGIN_DIR . '/includes/_news/wpbc_news.php';

// UI Elements.
require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/flex_ui_elements.php';
require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/chosen_filter/chosen_filter.php';
require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__settings_panel.php';
require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php';
require_once WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/ui__form_steps_timeline.php';  // FixIn: 10.9.6.6.

// Booking Listing.
require_once WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php';
require_once WPBC_PLUGIN_DIR . '/includes/print/bookings_print.php';

require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__sql.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php';

// WP Booking Calendar > Availability > Days Availability page.
require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__activation.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__toolbar_ui.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__class.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__resource.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability/availability__page.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/availability_general__page.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__save.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-general/ajax/availability_general__preview.php';

// WP Booking Calendar > Availability > Times Availability page.  // FixIn: 10.16.1.
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__front.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__activate.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/ajax/availability_timeslots__save.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-availability-timeslots/availability_timeslots__page.php';

if ( wpbc_is_11_6_features_enabled() ) {
	// Edition-neutral Booking Resource identity and presentation storage.
	require_once WPBC_PLUGIN_DIR . '/includes/booking-resources/class-wpbc-booking-resource-content-repository.php';
}

// Domain-neutral template-driven catalog mechanics shared by all registered catalogs.
require_once WPBC_PLUGIN_DIR . '/includes/_shared-ui-catalog/wpbc-ui-catalog.php';

if ( wpbc_is_11_6_features_enabled() ) {
	// Independent template-driven Booking Resources catalog.
	require_once WPBC_PLUGIN_DIR . '/includes/page-catalog-booking-resources/booking-resources-catalog.php';
}

// WP Booking Calendar > Services and Appointment details.
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__activate.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__functions.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/repository/appointment_services__repository.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-request.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-service-catalog-dto.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/class-wpbc-appointment-services-catalog-provider.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog-config.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/catalog/appointment-services-catalog.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/class-wpbc-catalog-inline-fields.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-editor.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/mutations/class-wpbc-appointment-services-catalog-deleter.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__booking.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__ui.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__list.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__load.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__save.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__duplicate.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__archive.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__catalog_edit.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/ajax/appointment_services__delete.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-appointment-services/appointment_services__page.php';

require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/bfb-include.php';                                       // Booking Form Builder - @since: 11.0.0.
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.
require_once WPBC_PLUGIN_DIR . '/includes/page-form-builder/form-render/bfb-form-render.php';


// Elementor Addons:   https://developers.elementor.com/docs/getting-started/first-addon/.
 require_once WPBC_PLUGIN_DIR . '/includes/elementor-booking-form/wpbc-elementor.php';

// ---------------------------------------------------------------------------------------------------------------------

// FixIn: 9.6.3.5.
require_once WPBC_PLUGIN_DIR . '/core/admin/page-timeline.php';                      // Timeline.
require_once WPBC_PLUGIN_DIR . '/includes/page-add-booking/add_booking__page.php';                           // Add New Booking page.

require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-settings-functions.php';    // Support functions for Booking > Settings General page.
require_once WPBC_PLUGIN_DIR . '/core/admin/page-settings.php';              // Settings page.
require_once WPBC_PLUGIN_DIR . '/core/admin/api-settings.php';               // Settings API.
require_once WPBC_PLUGIN_DIR . '/includes/page-resource-capacity/page-resource-capacity.php';                          // Resource Capacity Settings.


require_once WPBC_PLUGIN_DIR . '/core/admin/wpbc-gutenberg.php';              // Settings page.

// ---------------------------------------------------------------------------------------------------------------------

if ( file_exists( WPBC_PLUGIN_DIR . '/inc/_ps/personal.php' ) ) {
	require_once WPBC_PLUGIN_DIR . '/inc/_ps/personal.php';
} else {
	require_once WPBC_PLUGIN_DIR . '/includes/page-resource-free/page-resource-free.php';        // Resource page for Free version.

	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-admin.php';   // Email - New admin.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-new-visitor.php'; // Email - New visitor.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-deny.php';        // Email - Deny - set  pending.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-approved.php';    // Email - Approved.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-trash.php';       // Email - Trash.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-email-deleted.php';     // Email - Deleted / completely erase.

	require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-general.php';        // General ICS Help Settings page.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-import.php';         // Import ICS Help Settings page.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-ics-export.php';         // Export ICS Feeds Settings page.
	require_once WPBC_PLUGIN_DIR . '/core/admin/page-import-gcal.php';        // Import from  Google Calendar Settings page .
}

require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/settings_themes__page.php';                                                // Appearance / Theme Settings.
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__save.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-themes/ajax/settings_themes__preview.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/settings_calendar__page.php';                                             // Calendar Settings.
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__save.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-calendar/ajax/settings_calendar__preview.php';
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/settings_messages__page.php';                                      // Visitor-facing Form Messages settings.
require_once WPBC_PLUGIN_DIR . '/includes/page-settings-messages/ajax/settings_messages__save.php';

// Booking > Setup page                                                         // FixIn: 10.2.0.1.
// FixIn: 9.8.0.2.
require_once WPBC_PLUGIN_DIR . '/includes/page-setup/setup__page.php';
require_once WPBC_PLUGIN_DIR . '/includes/_tour/wpbc_tour.php';              // FixIn: 10.4.0.1.


require_once WPBC_PLUGIN_DIR . '/includes/_feedback/feedback.php';                                                      // FixIn: 9.2.3.6.
require_once WPBC_PLUGIN_DIR . '/includes/_feedback_deactivation/feedback.php';                                         // FixIn: 10.12.3.4.

// Old Working.
require_once WPBC_PLUGIN_DIR . '/core/lib/wpdev-booking-widget.php';            // W i d g e t s.
require_once WPBC_PLUGIN_DIR . '/js/captcha/captcha.php';                       // C A P T C H A.

require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-calendar-legend.php';            // Calendar Legend                      // FixIn: 9.4.3.6.
/* Frontend renderers. */
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-shortcode-params.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-inline-css-js.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-shortcodes.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-form-source-resolver.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/form-style-presets.php';
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/hooks/class-fe-bfb-settings-hooks.php';   // Apply BFB settings to rendered booking form HTML.
require_once WPBC_PLUGIN_DIR . '/includes/_front_end/class-fe-render-form-body.php';
require_once WPBC_PLUGIN_DIR . '/includes/_custom_forms/class-custom-forms-helper.php';        // Custom forms Helpers.

// Service-first, AJAX Appointment booking shortcode built on the existing resource-bound renderer.
require_once WPBC_PLUGIN_DIR . '/includes/booking-appointment/booking-appointment.php';
// Dedicated administrator workflow built on the same Appointment controller.
require_once WPBC_PLUGIN_DIR . '/includes/page-add-appointment/add_appointment__page.php';

// Resource-first public workflow with a shared frontend catalog boundary.
require_once WPBC_PLUGIN_DIR . '/includes/booking-resource-selector/booking-resource-selector.php';

require_once WPBC_PLUGIN_DIR . '/core/lib/wpdev-booking-class.php';             // C L A S S    B o o k i n g.
require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-booking-new.php';                // N e w.
require_once WPBC_PLUGIN_DIR . '/core/lib/wpbc-cron.php';                       // CRON  @since: 5.2.0.


if ( is_admin() ) {
	// FixIn: 9.9.0.15.
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/shortcode_tpl_js_loader.php';                            // Templates JS Loader.
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking.php';                                     // Booking  -   Shortcode Config Content.
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_calendar.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_select.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_timeline.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_form.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_search.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_other.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_import.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/sh_tpl_booking_listing.php';
	require_once WPBC_PLUGIN_DIR . '/includes/ui_modal__shortcodes/tiny-button-popup.php';                                  // PopUp for shortcodes     and     Buttons in Edit toolbar.
}

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.
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.

require_once WPBC_PLUGIN_DIR . '/core/any/activation.php';
require_once WPBC_PLUGIN_DIR . '/core/wpbc-activation.php';

require_once WPBC_PLUGIN_DIR . '/core/wpbc-dev-api.php';                     // API for Booking Calendar integrations.

// Development-only tests are disabled when the removable _tests bootstrap is unavailable.
$wpbc_tests_bootstrap_file = WPBC_PLUGIN_DIR . '/_tests/wpbc-tests.php';
if ( is_admin() && is_readable( $wpbc_tests_bootstrap_file ) ) {
	require_once $wpbc_tests_bootstrap_file;
}
unset( $wpbc_tests_bootstrap_file );

wpbc_prevent_incompatible_pro_version_loading();

make_bk_action( 'wpbc_loaded_php_files' );
do_action( 'wpbc_loaded_php_files' );

```
