Files
Hotel Raxa Dev 5b1e2453c7 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>
2025-07-11 07:43:22 +02:00

95 lines
2.4 KiB
JavaScript

/* global jQuery, reduxSearch */
(function( $ ) {
$( document ).ready(
function() {
$( '.redux-container' ).each(
function( ) {
if ( ! $( this ).hasClass( 'redux-no-sections' ) ) {
$( this ).find( '.redux-main' ).prepend( '<input class="redux_field_search" id="redux_field_search" type="text" placeholder="' + reduxSearch.search + '"/>' );
}
}
);
$( '.redux_field_search' ).on(
'keypress',
function( evt ) {
// Determine where our character code is coming from within the event.
var charCode = evt.charCode || evt.keyCode;
if ( 13 === charCode ) { // Enter key's keycode.
return false;
}
}
).typeWatch(
{
callback: function( searchString ) {
var searchArray;
var parent;
var expanded_options;
searchString = searchString.toLowerCase();
searchArray = searchString.split( ' ' );
parent = $( this ).parents( '.redux-container:first' );
expanded_options = parent.find( '.expand_options' );
if ( '' !== searchString ) {
if ( ! expanded_options.hasClass( 'expanded' ) ) {
expanded_options.trigger( 'click' );
parent.find( '.redux-main' ).addClass( 'redux-search' );
}
} else {
if ( expanded_options.hasClass( 'expanded' ) ) {
expanded_options.trigger( 'click' );
parent.find( '.redux-main' ).removeClass( 'redux-search' );
}
parent.find( '.redux-section-field, .redux-info-field, .redux-notice-field, .redux-container-group, .redux-section-desc, .redux-group-tab h3' ).show();
}
parent.find( '.redux-field-container' ).each(
function() {
if ( '' !== searchString ) {
$( this ).parents( 'tr:first' ).hide();
} else {
$( this ).parents( 'tr:first' ).show();
}
}
);
parent.find( '.form-table tr' ).filter(
function() {
var isMatch = true, text = $( this ).find( '.redux_field_th' ).text().toLowerCase();
if ( ! text || '' === text ) {
return false;
}
$.each(
searchArray,
function( i, searchStr ) {
if ( -1 === text.indexOf( searchStr ) ) {
isMatch = false;
}
}
);
if ( isMatch ) {
$( this ).show();
}
return isMatch;
}
).show();
},
wait: 400,
highlight: false,
captureLength: 0
}
);
}
);
} )( jQuery );