HEX
Server: Apache/2.4.65 (Unix) OpenSSL/3.0.2
System: Linux baggio 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User: mkanyafarm (1045)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /srv/users/mkanyafarm/apps/mkanyafarm/public/wp-content/plugins/booking/core/wpbc-css.php
<?php /**
 * @version 1.0
 * @package 
 * @category Core
 * @author wpdevelop
 *
 * @web-site https://wpbookingcalendar.com/
 * @email info@wpbookingcalendar.com 
 * 
 * @modified 2013.10.16
 */

class WPBC_CSS extends WPBC_JS_CSS {

	public function define() {

		$this->setType( 'css' );

		/**
		 * // Exmaples of usage Font Avesome: http://fontawesome.io/icons/
		 *
		 * $this->add( array(
		 *                'handle' => 'font-awesome',
		 *                'src' => WPBC_PLUGIN_URL . 'assets/libs/font-awesome-4.3.0/css/font-awesome.css' ,
		 *                'deps' => false,
		 *                'version' => '4.3.0',
		 *                'where_to_load' => array( 'admin' ),
		 *                'condition' => false
		 *      ) );
		 *
		 * // Exmaples of usage Font Avesome 3.2.1 (benefits of this version - support IE7): http://fontawesome.io/3.2.1/examples/
		 * $this->add( array(
		 *                'handle' => 'font-awesome',
		 *                'src' => WPBC_PLUGIN_URL . '/assets/libs/font-awesome/css/font-awesome.css' ,
		 *                'deps' => false,
		 *                'version' => '3.2.1',
		 *                'where_to_load' => array( 'admin' ),
		 *                'condition' => false
		 *      ) );
		 * $this->add( array(
		 *                'handle' => 'font-awesome-ie7',
		 *                'src' => WPBC_PLUGIN_URL . '/assets/libs/font-awesome/css/font-awesome-ie7.css' ,
		 *                'deps' => array('font-awesome'),
		 *                'version' => '3.2.1',
		 *                'where_to_load' => array( 'admin' ),
		 *                'condition' => 'IE 7'                               // CSS condition. Exmaple: <!--[if IE 7]>
		 *      ) );
		 */
	}


    public function enqueue( $where_to_load ) {
	    //FixIn: 9.8.1.
	    wp_enqueue_style( 'wpdevelop-bts',              wpbc_plugin_url( '/assets/libs/bootstrap-css/css/bootstrap.css' ),                  array(), WP_BK_VERSION_NUM );   // FixIn: 9.0.1.1.1.
	    wp_enqueue_style( 'wpdevelop-bts-theme',        wpbc_plugin_url( '/assets/libs/bootstrap-css/css/bootstrap-theme.css' ),            array(), WP_BK_VERSION_NUM );
	    wp_enqueue_style( 'wpbc-tippy-popover',         wpbc_plugin_url( '/assets/libs/tippy.js/themes/wpbc-tippy-popover.css' ),           array(), WP_BK_VERSION_NUM );
	    wp_enqueue_style( 'wpbc-tippy-times',           wpbc_plugin_url( '/assets/libs/tippy.js/themes/wpbc-tippy-times.css' ),             array(), WP_BK_VERSION_NUM );
	    wp_enqueue_style( 'wpbc-material-design-icons', wpbc_plugin_url( '/assets/libs/material-design-icons/material-design-icons.css' ),  array(), WP_BK_VERSION_NUM );   // FixIn: 9.2.1.4.
	    wp_enqueue_style( 'wpbc-ui-both',               wpbc_plugin_url( '/css/wpbc_ui_both.css' ),                                         array(), WP_BK_VERSION_NUM );   // FixIn: 10.0.0.25.

		if ( 'admin' === $where_to_load ) {                                                                                                                           // Admin CSS files.
			wp_enqueue_style( 'wpbc-bootstrap-icons', wpbc_plugin_url( '/assets/libs/bootstrap-icons/bootstrap-icons.css' ), array(), WP_BK_VERSION_NUM );            // FixIn: 9.0.1.1.
			// Several concataned css files.
			wp_enqueue_style( 'wpbc-all-admin', wpbc_plugin_url( '/_dist/all/_out/wpbc_all_admin.min.css' ), array(), WP_BK_VERSION_NUM );

            wp_enqueue_style( 'wpbc-admin-support',         wpbc_plugin_url( '/core/any/css/admin-support.css' ),       array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-admin-menu',            wpbc_plugin_url( '/core/any/css/admin-menu.css' ),          array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-admin-toolbar',         wpbc_plugin_url( '/core/any/css/admin-toolbar.css' ),       array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-settings-page',         wpbc_plugin_url( '/core/any/css/settings-page.css' ),       array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-admin-listing-table',   wpbc_plugin_url( '/core/any/css/admin-listing-table.css' ), array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-br-table',              wpbc_plugin_url( '/core/any/css/admin-br-table.css' ),      array(), WP_BK_VERSION_NUM);
			// Flex: Booking resources Table    // FixIn: 9.9.0.7.
			wp_enqueue_style( 'wpbc-flex-table',            wpbc_plugin_url( '/core/any/css/wpbc_flextable.css' ),      array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-admin-modal-popups',    wpbc_plugin_url( '/css/modal.css' ),                        array(), WP_BK_VERSION_NUM);
            wp_enqueue_style( 'wpbc-admin-pages',           wpbc_plugin_url( '/css/admin.css' ),                        array(), WP_BK_VERSION_NUM);
			wp_enqueue_style( 'wpbc-admin-skin',            wpbc_plugin_url( '/css/admin-skin.css' ),                   array( 'wpbc-admin-pages' ), WP_BK_VERSION_NUM );           // FixIn: 8.0.2.4.


			$wpbc_inline_css = '';
			if ( ( ! class_exists( 'wpdev_bk_personal' ) ) || ( wpbc_mu__is_simulated_login_as_user() ) ) {             // FixIn: 10.1.5.2.
				// FixIn: 10.1.3.1.
				//$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(-n+1) a { color: #adc636; } ";
				if ( 'hide' !== get_bk_option( 'booking_menu_go_pro' ) ) {
					// Mark last item in menu 'Get Pro' as a button
					//$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(1) a { font-weight: 600;background-color: #0b9300;color: #fff;margin: 10px 10px 0;display: block;text-align: center;border-radius: 3px;transition: all .3s;box-shadow: none; } ";
					$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(1) a { font-weight: 600;background-color: #075c00;color: #fff;margin: 10px 10px 0;display: block;text-align: center;border-radius: 3px;transition: all .3s;box-shadow: none; } ";
					$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(1) { margin-top: 10px;border-top: 1px solid #535454; } ";
				}
			} else {
				// Horizontal Lines in Menu. // FixIn: 10.1.3.1.
				$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-child(4) a { border-top: 1px solid #535454;padding-top: 10px;margin-top: 6px; } ";
				$wpbc_inline_css .= " #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(1) a { border-top: 1px solid #535454;padding-top: 10px;margin-top: 6px; } ";
			}
			wp_add_inline_style( 'wpbc-admin-pages', $wpbc_inline_css );

        }



		$server_request_uri = ( ( isset( $_SERVER['REQUEST_URI'] ) ) ? sanitize_text_field( $_SERVER['REQUEST_URI'] ) : '' );  /* phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.MissingUnslash */ /* FixIn: sanitize_unslash */
		if (
			( 'admin' !== $where_to_load ) ||
			( wpbc_is_new_booking_page() ) ||
			( wpbc_is_setup_wizard_page() ) ||
			( wpbc_is_settings_form_page() ) ||
			( wpbc_is_settings_color_themes_page() ) ||
			( ( wpbc_is_settings_page() ) && ( strpos( $server_request_uri, 'tab=payment' ) !== false ) )
			// || ( wpbc_is_availability_page() )     // FixIn: 10.0.0.5  Error at  -> WP Booking Calendar > Availability > Season Availability page.
		) {
			// Client or Add New Booking page.

			if ( ( 'On' === get_bk_option( 'booking_timeslot_picker' ) ) || ( wpbc_is_setup_wizard_page() ) ) {                                                // FixIn: 8.7.11.10.
				wp_enqueue_style( 'wpbc-time_picker', wpbc_plugin_url( '/css/wpbc_time-selector.css' ), array(), WP_BK_VERSION_NUM );

				$time_picker_skin_path = wpbc_get_time_picker_skin_url();
				if ( ! empty( $time_picker_skin_path ) ) {
					wp_enqueue_style( 'wpbc-time_picker-skin', $time_picker_skin_path, array( 'wpbc-time_picker' ), WP_BK_VERSION_NUM );
				}
			}
			wp_enqueue_style( 'wpbc-client-pages', wpbc_plugin_url( '/css/client.css' ), array(), WP_BK_VERSION_NUM );
			// Several concataned css files.
			wp_enqueue_style( 'wpbc-all-client', wpbc_plugin_url( '/_dist/all/_out/wpbc_all_client.css' ), array( 'wpbc-client-pages' ), WP_BK_VERSION_NUM );
		}

		wp_enqueue_style( 'wpbc-calendar', wpbc_plugin_url( '/css/calendar.css' ), array(), WP_BK_VERSION_NUM );
		// Calendar Skins.
		$calendar_skin_path = wpbc_get_calendar_skin_url();
		if ( ! empty( $calendar_skin_path ) ) {
			wp_enqueue_style( 'wpbc-calendar-skin', $calendar_skin_path, array(), WP_BK_VERSION_NUM );
		}

		do_action( 'wpbc_enqueue_css_files', $where_to_load );
	}


	public function remove_conflicts( $where_to_load ) {

		// FixIn: 8.1.3.12.
		if (
			wpbc_is_bookings_page() || wpbc_is_new_booking_page() || wpbc_is_setup_wizard_page() || wpbc_is_settings_form_page() || wpbc_is_settings_color_themes_page() || wpbc_is_resources_page() || wpbc_is_settings_page() ) {
			if ( function_exists( 'wp_dequeue_style' ) ) {
				/**
				// wp_dequeue_style( 'cs-alert' );
				// wp_dequeue_style( 'cs-framework' );
				// wp_dequeue_style( 'cs-font-awesome' );
				// wp_dequeue_style( 'icomoon' );
				*/
				wp_dequeue_style( 'chosen' );
				wp_dequeue_style( 'toolset-font-awesome-css' );                          // Remove this script sitepress-multilingual-cms/res/css/font-awesome.min.css?ver=3.1.6, which is load by the "sitepress-multilingual-cms".
				wp_dequeue_style( 'toolset-font-awesome' );                              // FixIn: 5.4.5.8.
				wp_dequeue_style( 'the7-fontello-css' );
				wp_dequeue_style( 'dt-awsome-fonts-back-css' );                          // FixIn: 8.2.1.10             fix conflict  with https://the7.io/.
				wp_dequeue_style( 'dt-awsome-fonts-css' );
				wp_dequeue_style( 'dt-fontello-css' );
				wp_dequeue_style( 'cs_icons_data_css_default' );                         // FixIn: 8.1.3.12.
				wp_dequeue_style( 'icons-style' );                                       // FixIn: 8.2.1.22.
				wp_dequeue_style( 'fontawesome-style' );                                 // FixIn: 8.2.1.22.
				wp_dequeue_style( 'bootstrap-style' );                                   // FixIn: 8.2.1.22.
				wp_dequeue_style( 'bootstrap-theme-style' );                             // FixIn: 8.2.1.22.
			}
		}
	}
}


/**
 * Get URL to  Calendar Skin ( CSS file )
 *
 * @return string - URL to  calendar skin
 */
function wpbc_get_calendar_skin_url() {

    // -- Old 'inc' path -> Re-update                                                                                  // FixIn: 8.7.11.11.
	$check_skin_path = get_bk_option( 'booking_skin' );
	if ( false !== strpos( $check_skin_path, 'inc/skins/' ) ) {
		$check_skin_path = str_replace( 'inc/skins/', 'css/skins/', $check_skin_path );
		update_bk_option( 'booking_skin', $check_skin_path );
	}
	// -- Absolute Path - Remove                                                                                        // FixIn: 8.9.4.8.
	if ( false !== strpos( $check_skin_path, WPBC_PLUGIN_DIR ) ) {
		$check_skin_path = str_replace( WPBC_PLUGIN_DIR, '', $check_skin_path );
		update_bk_option( 'booking_skin', $check_skin_path );
	}


	$calendar_skin_path = false;
	// -----------------------------------------------------------------------------------------------------------------
    // Check if this skin exist in Usual folder
	// -----------------------------------------------------------------------------------------------------------------
    if ( file_exists( WPBC_PLUGIN_DIR . str_replace( WPBC_PLUGIN_URL, '', get_bk_option( 'booking_skin') ) ) ) {
        $calendar_skin_path = WPBC_PLUGIN_URL . str_replace( WPBC_PLUGIN_URL, '', get_bk_option( 'booking_skin') );
    }

	// -----------------------------------------------------------------------------------------------------------------
    // Check if skin exist in the Custom User folder at  the        http://example.com/wp-content/uploads/wpbc_skins/
	// -----------------------------------------------------------------------------------------------------------------
    $upload_dir = wp_upload_dir();
    $custom_user_skin_folder = $upload_dir['basedir'] ;
    $custom_user_skin_url    = $upload_dir['baseurl'] ;             //$custom_user_skin_url = str_replace( 'http:', 'https:', $custom_user_skin_url );

    if ( file_exists( $custom_user_skin_folder . str_replace(  array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_skin') ) ) ) {
        $calendar_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') );
    }

	// -----------------------------------------------------------------------------------------------------------------
	// If still no file, then Default
	// -----------------------------------------------------------------------------------------------------------------
	if ( empty( $calendar_skin_path ) ) {
		$calendar_skin_path = WPBC_PLUGIN_URL . '/css/skins/24_9__light.css';
	}

    return $calendar_skin_path;
}


function wpbc_get_time_picker_skin_url(){                                                                               // FixIn: 8.7.11.10.

	// time_picker Skin ///////////////////////////////////////////////////////
	$time_picker_skin_path = false;

	// Just  default value,  if previously  was not saved any  options.
	if ( empty( get_bk_option( 'booking_timeslot_picker_skin' ) ) ) {
		// update_bk_option( 'booking_timeslot_picker_skin', '/css/time_picker_skins/grey.css' );
		update_bk_option( 'booking_timeslot_picker_skin', '/css/time_picker_skins/light__24_8.css' );      	            // FixIn: 10.4.0.1.
	}

    // Check if this skin exist in the plugin  folder //////////////////////
    if ( file_exists( WPBC_PLUGIN_DIR . str_replace( WPBC_PLUGIN_URL, '', get_bk_option( 'booking_timeslot_picker_skin') ) ) ) {
        $time_picker_skin_path = WPBC_PLUGIN_URL . str_replace( WPBC_PLUGIN_URL, '', get_bk_option( 'booking_timeslot_picker_skin') );
    }

    // Check  if this skin exist  in the Custom User folder at  the http://example.com/wp-content/uploads/wpbc_skins/
    $upload_dir = wp_upload_dir();
    $custom_user_skin_folder = $upload_dir['basedir'] ;
    $custom_user_skin_url    = $upload_dir['baseurl'] ;
    if ( file_exists( $custom_user_skin_folder . str_replace(  array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_timeslot_picker_skin') ) ) ) {
        $time_picker_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_timeslot_picker_skin') );
    }

    return $time_picker_skin_path;
}