🏨 Hotel Booking Enhancements: - Implemented Eagle Booking Advanced Pricing add-on - Added Booking.com-style rate management system - Created professional calendar interface for pricing - Integrated deals and discounts functionality 💰 Advanced Pricing Features: - Dynamic pricing models (per room, per person, per adult) - Base rates, adult rates, and child rates management - Length of stay discounts and early bird deals - Mobile rates and secret deals implementation - Seasonal promotions and flash sales 📅 Availability Management: - Real-time availability tracking - Stop sell and restriction controls - Closed to arrival/departure functionality - Minimum/maximum stay requirements - Automatic sold-out management 💳 Payment Integration: - Maintained Redsys payment gateway integration - Seamless integration with existing Eagle Booking - No modifications to core Eagle Booking plugin 🛠️ Technical Implementation: - Custom database tables for advanced pricing - WordPress hooks and filters integration - AJAX-powered admin interface - Data migration from existing Eagle Booking - Professional calendar view for revenue management 📊 Admin Interface: - Booking.com-style management dashboard - Visual rate and availability calendar - Bulk operations for date ranges - Statistics and analytics dashboard - Modal dialogs for quick editing 🔧 Code Quality: - WordPress coding standards compliance - Secure database operations with prepared statements - Proper input validation and sanitization - Error handling and logging - Responsive admin interface 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
364 lines
13 KiB
PHP
364 lines
13 KiB
PHP
<?php
|
|
|
|
/*-----------------------------------------------------------
|
|
VARIABLES - THEME OPTIONS
|
|
-----------------------------------------------------------*/
|
|
$himara_main_font = himara_get_font_option( 'himara_main_font' );
|
|
$himara_nav_font = himara_get_font_option( 'himara_nav_font' );
|
|
$himara_h_font = himara_get_font_option( 'himara_h_font' );
|
|
$himara_menu_color = himara_get_option('menu_color');
|
|
$himara_sub_menu_color = himara_get_option('sub_menu_color');
|
|
$himara_submenu_menu_bg = himara_get_option('sub_menu_bg');
|
|
$himara_submenu_menu_hover_bg = himara_get_option('sub_menu_hover_bg');
|
|
$himara_submenu_menu_border = himara_get_option('sub_menu_border');
|
|
$himara_boxed_bg_color = himara_get_option('himara_boxed_bg_color');
|
|
$himara_boxed_bg_image = himara_get_option('himara_boxed_bg_image');
|
|
$himara_footer_link_color = himara_get_option( 'footer_links_color' )
|
|
|
|
?>
|
|
|
|
:root {
|
|
--text-color: #6d7991;
|
|
--heading-color: #32353c;
|
|
--main-color: <?php echo esc_attr( himara_get_option('primary_color')['regular'] ) ?>;
|
|
--main-color-hover: <?php echo esc_attr( himara_get_option('primary_color')['hover'] ) ?>;
|
|
--button-color: #32353c;
|
|
--menu-color: <?php echo esc_attr( $himara_menu_color['regular'] ) ?>;
|
|
--menu-color-hover: <?php echo esc_attr( $himara_menu_color['hover'] ) ?>;
|
|
--menu-color-active: <?php echo esc_attr( $himara_menu_color['active'] ) ?>;
|
|
--sub-menu-color: <?php echo esc_attr( $himara_sub_menu_color['regular'] ) ?>;
|
|
--sub-menu-color-hover: <?php echo esc_attr( $himara_sub_menu_color['hover'] ) ?>;
|
|
--sub-menu-color-active: <?php echo esc_attr( $himara_sub_menu_color['hover'] ) ?>;
|
|
}
|
|
|
|
body{
|
|
<?php if ( himara_get_option('himara_main_font') ) : ?>
|
|
font-family: <?php echo wp_kses_post($himara_main_font['font-family']); ?>;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5,
|
|
h6,
|
|
.widget_search .wp-block-search__label {
|
|
<?php if ( himara_get_option('himara_h_font') ) : ?>
|
|
font-family: <?php echo wp_kses_post($himara_h_font['font-family']); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.loader {
|
|
<?php if ( himara_get_option('preloader_bg_color') ) : ?>
|
|
background: <?php echo wp_kses_post( himara_get_option('preloader_bg_color') ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.loader1 .dot,
|
|
.loader2 .loader-inner span {
|
|
<?php if ( himara_get_option('preloader_color') ) : ?>
|
|
background: <?php echo wp_kses_post( himara_get_option('preloader_color') ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.loader3 .spin span {
|
|
<?php if ( himara_get_option('preloader_color') ) : ?>
|
|
border-left-color: <?php echo wp_kses_post( himara_get_option('preloader_color') ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.topbar {
|
|
<?php if ( himara_get_option('topbar_bg') ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('topbar_bg') ); ?> ;
|
|
<?php endif; ?>
|
|
<?php if ( himara_get_option('topbar_border') ) : ?>
|
|
border: 1px solid <?php echo esc_attr( himara_get_option('topbar_border') ); ?> ;
|
|
<?php endif; ?>
|
|
<?php if ( himara_get_option('topbar_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('topbar_color')['regular'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.topbar .top-menu li a {
|
|
<?php if ( himara_get_option('topbar_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('topbar_color')['regular'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.topbar .top-menu li i {
|
|
<?php if ( himara_get_option('topbar_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('topbar_color')['regular'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.topbar .top-menu li a:hover {
|
|
<?php if ( himara_get_option('topbar_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('topbar_color')['hover'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
.topbar .top-menu li a:active {
|
|
<?php if ( himara_get_option('topbar_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('topbar_color')['active'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.horizontal-header,
|
|
header.vertical-header,
|
|
.himara-vertical-header header {
|
|
<?php if ( himara_get_option('himara_nav_font') ) : ?>
|
|
font-family: <?php echo wp_kses_post($himara_nav_font['font-family']); ?>;
|
|
<?php endif; ?>
|
|
|
|
<?php if ( himara_get_option('header_bg') ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('header_bg') ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.header-fixed-top.scroll-header {
|
|
<?php if ( himara_get_option('header_bg') ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('header_bg') ); ?> ;
|
|
<?php endif; ?>
|
|
<?php if ( himara_get_option('header_border_bottom') ) : ?>
|
|
border-color: <?php echo esc_attr( himara_get_option('header_border_bottom') ) ?>;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.vertical-header {
|
|
<?php if ( himara_get_option('header_border_vertical') ) : ?>
|
|
border-color: <?php echo esc_attr( himara_get_option('header_border_vertical') ) ?>;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown .submenu,
|
|
header.vertical-header .main-menu .dropdown .submenu {
|
|
<?php if ( !empty( $himara_submenu_menu_bg ) ) : ?>
|
|
background: <?php echo esc_attr( $himara_submenu_menu_bg ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown.open .submenu .menu-item,
|
|
header.vertical-header .main-menu .menu .dropdown.open .submenu .menu-item {
|
|
<?php if ( !empty( himara_get_option('sub_menu_border') )) : ?>
|
|
border-color: <?php echo esc_attr( himara_get_option('sub_menu_border') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown.open .submenu .menu-item a:hover,
|
|
header.vertical-header .main-menu .menu .dropdown.open .submenu .menu-item a:hover {
|
|
<?php if ( himara_get_option('sub_menu_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('sub_menu_color')['hover'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown.open .submenu .menu-item a:active,
|
|
header.horizontal-header .main-menu .menu .dropdown.open .submenu .menu-item.open > a,
|
|
header.vertical-header .main-menu .menu .dropdown.open .submenu .menu-item a:active,
|
|
header.vertical-header .main-menu .menu .dropdown.open .submenu .menu-item.open > a {
|
|
<?php if ( himara_get_option('sub_menu_color') ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('sub_menu_color')['active'] ); ?> ;
|
|
<?php endif; ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown.open .submenu .menu-item:hover,
|
|
header.vertical-header .main-menu .menu .dropdown.open .submenu .menu-item:hover {
|
|
<?php if ( !empty( $himara_submenu_menu_hover_bg )) : ?>
|
|
background: <?php echo esc_attr( $himara_submenu_menu_hover_bg ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
header.horizontal-header .main-menu .menu .dropdown .submenu:after {
|
|
<?php if ( !empty( $himara_submenu_menu_bg ) ) : ?>
|
|
border-bottom-color: <?php echo esc_attr( $himara_submenu_menu_bg ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
header.vertical-header .main-menu .menu .dropdown .submenu:after {
|
|
<?php if ( !empty( $himara_submenu_menu_bg ) ) : ?>
|
|
border-right-color: <?php echo esc_attr( $himara_submenu_menu_bg ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
|
|
.toggle-menu-button .line {
|
|
<?php if(!empty( himara_get_option('menu_toggle_button_color') )) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('menu_toggle_button_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.transparent-header .toggle-menu-button .line {
|
|
<?php if(!empty( himara_get_option('menu_toggle_button_color_transparent') )) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('menu_toggle_button_color_transparent') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.scroll-header .toggle-menu-button .line {
|
|
<?php if(!empty( himara_get_option('menu_toggle_button_color_scroll') )) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('menu_toggle_button_color_scroll') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.page-title .inner,
|
|
.eb-page-header {
|
|
<?php if ( himara_get_option('page_header_padding_top') ) : ?>
|
|
padding-top: <?php echo esc_attr( himara_get_option('page_header_padding_top') ) ?>px;
|
|
padding-bottom: <?php echo esc_attr( himara_get_option('page_header_padding_bottom') ) ?>px;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.page-title .inner {
|
|
<?php if ( !empty( himara_get_option('page_header_aligment') ) ) : ?>
|
|
text-align: <?php echo esc_attr( himara_get_option('page_header_aligment') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.page-title .breadcrumb {
|
|
<?php if ( !empty( himara_get_option('page_header_aligment') ) ) : ?>
|
|
justify-content: <?php echo esc_attr( himara_get_option('page_header_aligment') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.page-title .inner h1,
|
|
.eb-page-header .title h1,
|
|
.page-title .breadcrumb,
|
|
.page-title .breadcrumb a,
|
|
.page-title .breadcrumb li:last-child,
|
|
.page-title .breadcrumb li:after,
|
|
.eb-page-header.eb-room-header .room-price,
|
|
.eb-page-header.eb-room-header .normal-price {
|
|
<?php if ( !empty( himara_get_option('page_header_color') ) ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('page_header_color') ) ?>
|
|
<?php endif ?>
|
|
}
|
|
|
|
.page-title,
|
|
.eb-page-header {
|
|
<?php if ( !empty( himara_get_option('page_header_color_bg') ) ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('page_header_color_bg') ) ?>;
|
|
border-bottom: 1px solid <?php echo esc_attr( himara_get_option('page_header_border_color') ) ?>;
|
|
border-top: 1px solid <?php echo esc_attr( himara_get_option('page_header_border_color') ) ?>
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer {
|
|
<?php if ( !empty( himara_get_option('footer_bg_color') ) ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('footer_bg_color') ) ?>;
|
|
border-top: 1px solid <?php echo esc_attr( himara_get_option('footer_border_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-widgets .widget-title,
|
|
footer .footer-widgets h2 {
|
|
<?php if( !empty( himara_get_option('footer_heading_color') )) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('footer_heading_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-widgets,
|
|
footer .footer-info,
|
|
footer .social-media a {
|
|
<?php if ( !empty( himara_get_option('footer_text_color') ) ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('footer_text_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-widgets ul li a {
|
|
<?php if(!empty( $himara_footer_link_color['regular'] )) : ?>
|
|
color: <?php echo esc_html( $himara_footer_link_color['regular'] ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-widgets ul li:hover a,
|
|
footer .footer-widgets ul li a:hover {
|
|
<?php if(!empty( $himara_footer_link_color['hover'] )) : ?>
|
|
color: <?php echo esc_html( $himara_footer_link_color['hover'] ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.footer-widgets ul li a:active {
|
|
<?php if(!empty( $himara_footer_link_color['active'] )) : ?>
|
|
color: <?php echo esc_html( $himara_footer_link_color['active'] ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-info .payment-methods .payment-methods-icons span {
|
|
<?php if ( !empty( himara_get_option('footer_text_color') ) ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('footer_text_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .subfooter {
|
|
<?php if ( !empty( himara_get_option('footer_border_color') ) ) : ?>
|
|
border-top: 1px solid <?php echo esc_attr( himara_get_option('footer_border_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .subfooter .copyrights,
|
|
footer .subfooter .copyrights a,
|
|
footer .himara-subfooter-menu a,
|
|
footer .subfooter .himara-subfooter-menu li a {
|
|
<?php if ( !empty( himara_get_option('footer_copyright_text_color') ) ) : ?>
|
|
color: <?php echo esc_attr( himara_get_option('footer_copyright_text_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .footer-widgets ul li a:after {
|
|
<?php if(!empty( himara_get_option('footer_underline_color') )) : ?>
|
|
background: <?php echo esc_html( himara_get_option('footer_underline_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
footer .subfooter .himara-subfooter-menu li:after {
|
|
<?php if ( !empty( himara_get_option('footer_copyright_text_color') ) ) : ?>
|
|
background: <?php echo esc_attr( himara_get_option('footer_copyright_text_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top {
|
|
<?php if(!empty( himara_get_option('back_to_top_bg_color') )) : ?>
|
|
background: <?php echo esc_html( himara_get_option('back_to_top_bg_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top i,
|
|
.back-to-top:hover i {
|
|
<?php if(!empty( himara_get_option('back_to_top_color') )) : ?>
|
|
color: <?php echo esc_html( himara_get_option('back_to_top_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top.active {
|
|
<?php if ( !empty( himara_get_option('back_to_top_bottom') ) ) : ?>
|
|
bottom: <?php echo esc_attr( himara_get_option('back_to_top_bottom') ) ?>px;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top.right {
|
|
<?php if ( !empty( himara_get_option('back_to_top_right') ) ) : ?>
|
|
right: <?php echo esc_attr( himara_get_option('back_to_top_right') ) ?>px;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top.left {
|
|
<?php if( !empty( himara_get_option('back_to_top_left') ) ) : ?>
|
|
left: <?php echo esc_attr( himara_get_option('back_to_top_left') ) ?>px;
|
|
<?php endif ?>
|
|
}
|
|
|
|
.back-to-top:hover {
|
|
<?php if(!empty( himara_get_option('back_to_top_bg_hover_color') )) : ?>
|
|
background: <?php echo esc_html( himara_get_option('back_to_top_bg_hover_color') ) ?>;
|
|
<?php endif ?>
|
|
}
|
|
|
|
|
|
@media (max-width: 991.98px) {
|
|
header .brand .logo .first-logo img,
|
|
header .brand .logo .second-logo img {
|
|
<?php if(!empty( himara_get_option('mobile_logo_height') )) : ?>
|
|
height: <?php echo esc_html( himara_get_option('mobile_logo_height') ) ?>px !important;
|
|
<?php endif ?>
|
|
}
|
|
}
|