Hotel Raxa - Advanced Booking System Implementation
🏨 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>
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
|
||||
<div class="form-panel">
|
||||
<h2 class="title"><?php echo __('Arrival Time','eagle-booking') ?></h2>
|
||||
<div class="eb-arrival-slots">
|
||||
|
||||
<?php
|
||||
|
||||
$eb_arrival_slots = eb_get_option('arrival_slots');
|
||||
|
||||
if ( $eb_arrival_slots ) foreach ( $eb_arrival_slots as $eb_arrival_slot ) {
|
||||
|
||||
echo '<div class="time-slot eb-radio-box">';
|
||||
echo '<input type="radio" name="eb_user_arrival" id="'.str_replace(" ","",$eb_arrival_slot).'" value="'.$eb_arrival_slot.'">';
|
||||
echo '<label for="'.str_replace(" ","",$eb_arrival_slot).'" >' . $eb_arrival_slot . '</label>';
|
||||
echo '</div>';
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* The Template for the coupon code
|
||||
*
|
||||
* This template can be overridden by copying it to yourtheme/eb-templates/booking/form/coupon.php.
|
||||
*
|
||||
* Author: Eagle Themes
|
||||
* Package: Eagle-Booking/Templates
|
||||
* Version: 1.1
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
|
||||
<div class="form-panel">
|
||||
|
||||
<h2 class="title"><?php echo __('Coupon','eagle-booking') ?></h2>
|
||||
|
||||
<div id="eb_coupon_code_response" class="eb-alert eb-alert-small eb-alert-icon" style="display: none" role="alert">
|
||||
<span id="eb_coupon_code_response_text"></span>
|
||||
</div>
|
||||
|
||||
<div id="eb_coupon_code_group" class="eb-g-5-2">
|
||||
<div>
|
||||
<input name="eb_coupon" type="text" id="eb_coupon" class="eb-field eb-coupon" style="margin-bottom: 0;" placeholder="<?php echo __('Enter coupon code if you have one', 'eagle-booking') ?>">
|
||||
<input type="hidden" id="eb_coupon_code" name="eb_coupon_code">
|
||||
<input type="hidden" id="eb_coupon_value">
|
||||
</div>
|
||||
<div>
|
||||
<button id="eb_validate_coupon" class="btn eb-btn btn-full btn-coupon">
|
||||
<span class="eb-btn-text"><?php echo __('Validate Code', 'eagle-booking') ?></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<div class="form-panel">
|
||||
|
||||
<h2 class="title"><?php echo __('Special Requests','eagle-booking') ?></h2>
|
||||
<textarea name="eb_user_requests" id="eagle_booking_requests" class="eb-field" rows="6" placeholder="<?php echo __('Let us know if you have any special requests.', 'eagle-booking') ?>"></textarea>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* The Template for the guest form
|
||||
*
|
||||
* This template can be overridden by copying it to yourtheme/eb-templates/booking/form/coupon.php.
|
||||
*
|
||||
* Author: Eagle Themes
|
||||
* Package: Eagle-Booking/Templates
|
||||
* Version: 1.0
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
|
||||
<div class="eb-tab-content guest" data-tab="guest">
|
||||
<div class="eb-g-lg-2 eb-g-md-1">
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_first_name" class="eb-field">
|
||||
<label><?php echo __('First Name','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_last_name" class="eb-field">
|
||||
<label><?php echo __('Last Name','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="email" id="eb_guest_email" class="eb-field">
|
||||
<label><?php echo __('Email','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
|
||||
<input type="tel" id="eb_guest_phone" class="eb_user_phone_field eb-field" placeholder="<?php echo __('Phone','eagle-booking') ?> *">
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['address'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_address" class="eb-field">
|
||||
<label><?php echo __('Address','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['city'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_city" class="eb-field">
|
||||
<label><?php echo __('City','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['country'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_country" class="eb-field">
|
||||
<label><?php echo __('Country','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['zip'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_guest_zip" class="eb-field">
|
||||
<label><?php echo __('ZIP','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/**
|
||||
* The Template for the signed in user
|
||||
*
|
||||
* This template can be overridden by copying it to yourtheme/eb-templates/booking/form/coupon.php.
|
||||
*
|
||||
* Author: Eagle Themes
|
||||
* Package: Eagle-Booking/Templates
|
||||
* Version: 1.1
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
|
||||
<div id="eb_signed_in_user" style="<?php if ( !is_user_logged_in() ) echo esc_attr('display: none;') ?>">
|
||||
|
||||
<div class="eb-alert eb-alert-success eb-alert-small eb-alert-icon mb25">
|
||||
<span id="eb_signed_in_user_text"><?php echo __('Logged in as', 'eagle-booking') ?>, <?php echo $eb_current_user->user_login ?>!</span>
|
||||
<span id="eb_user_sign_out" class="pull-right" style="cursor: pointer;"><?php echo __('Log Out', 'eagle-booking') ?></span>
|
||||
</div>
|
||||
|
||||
<div class="eb-g-lg-2 eb-g-md-1">
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_first_name" class="eb-field" value="<?php eb_user('first_name') ?>">
|
||||
<label><?php echo __('First Name','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_last_name" class="eb-field" value="<?php eb_user('last_name') ?>">
|
||||
<label><?php echo __('Last Name','eagle-booking') ?> </label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="email" id="eb_signed_in_user_email" class="eb-field" value="<?php eb_user('user_email') ?>">
|
||||
<label><?php echo __('Email','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
|
||||
<input type="tel" id="eb_signed_in_user_phone" class="eb_user_phone_field eb-field" placeholder="<?php echo __('Phone','eagle-booking') ?> *" value="<?php eb_user('user_phone') ?>">
|
||||
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['address'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_address" class="eb-field" value="<?php eb_user('user_address') ?>">
|
||||
<label><?php echo __('Address','eagle-booking') ?><label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['city'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_city" class="eb-field" value="<?php eb_user('user_city') ?>">
|
||||
<label><?php echo __('City','eagle-booking') ?><label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['country'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_country" class="eb-field" value="<?php eb_user('user_country') ?>">
|
||||
<label><?php echo __('Country','eagle-booking') ?><label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['zip'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_signed_in_user_zip" class="eb-field" value="<?php eb_user('user_zip') ?>">
|
||||
<label><?php echo __('ZIP','eagle-booking') ?><label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* The Template for the signin form
|
||||
*
|
||||
* This template can be overridden by copying it to yourtheme/eb-templates/booking/form/coupon.php.
|
||||
*
|
||||
* Author: Eagle Themes
|
||||
* Package: Eagle-Booking/Templates
|
||||
* Version: 1.1
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
|
||||
<div class="eb-tab-content signin" data-tab="signin">
|
||||
|
||||
<div id="eb_user_sign_in_response" class="eb-alert eb-alert-small mb20" style="display: none">
|
||||
<span id="eb_user_sign_in_response_text"></span>
|
||||
</div>
|
||||
|
||||
<form class="eb-g-3-3-1 eb-g-m-1" id="eb_user_sign_in_form">
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_in_username" class="eb-field">
|
||||
<label><?php echo __('Username or Email Address', 'eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="password" id="eb_user_sign_in_password" class="eb-field" autocomplete="on">
|
||||
<label><?php echo __('Password', 'eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<button id="eb_user_sign_in" class="btn eb-btn btn-full" type="submit">
|
||||
<span class="eb-btn-text"><?php echo __('Sign In','eagle-booking') ?></span>
|
||||
</button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/**
|
||||
* The Template for the signup form
|
||||
*
|
||||
* This template can be overridden by copying it to yourtheme/eb-templates/booking/form/coupon.php.
|
||||
*
|
||||
* Author: Eagle Themes
|
||||
* Package: Eagle-Booking/Templates
|
||||
* Version: 1.0
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
?>
|
||||
|
||||
<div class="eb-tab-content signup" data-tab="signup">
|
||||
<form id="eb_user_signup_booking_form" action="" method="POST">
|
||||
|
||||
<div id="eb_user_sign_up_response" class="eb-alert eb-alert-small mb20" role="alert" style="display:none">
|
||||
<span id="eb_user_sign_up_response_text"></span>
|
||||
</div>
|
||||
|
||||
<div class="eb-g-lg-2 eb-g-md-1">
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="email" id="eb_user_sign_up_username" class="eb-field">
|
||||
<label><?php echo __('Username','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="email" id="eb_user_sign_up_email" class="eb-field">
|
||||
<label><?php echo __('Email','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="password" id="eb_user_sign_up_password" class="eb-field" autocomplete="on">
|
||||
<label><?php echo __('Password','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_first_name" class="eb-field">
|
||||
<label><?php echo __('First Name','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_last_name" class="eb-field">
|
||||
<label><?php echo __('Last Name','eagle-booking') ?></label>
|
||||
</div>
|
||||
|
||||
<input type="tel" id="eb_user_sign_up_phone" class="eb_user_phone_field eb-field" placeholder="<?php echo __('Phone','eagle-booking') ?> *">
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['address'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_address" class="eb-field">
|
||||
<label><?php echo __('Address','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['city'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_city" class="eb-field">
|
||||
<label><?php echo __('City','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['country'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_country" class="eb-field">
|
||||
<label><?php echo __('Country','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ( eb_get_option('eb_booking_form_fields')['zip'] == true ) : ?>
|
||||
<div class="eb-form-col">
|
||||
<input type="text" id="eb_user_sign_up_zip" class="eb-field">
|
||||
<label><?php echo __('ZIP','eagle-booking') ?></label>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
<!-- Terms -->
|
||||
<div class="mt50 gdpr">
|
||||
<input type="checkbox" id="eb_terms" value="0">
|
||||
<label for="eb_terms"><?php echo __('I agree to the', 'eagle-booking') ?> <a class="terms-conditions" target="_blank" href="<?php echo eagle_booking_terms_page() ?>"><?php echo __('Terms and Conditions','eagle-booking') ?></a></label>
|
||||
</div>
|
||||
Reference in New Issue
Block a user