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

58 lines
1.8 KiB
JavaScript

(function ($) {
"use strict";
/* Document is Raedy */
$(document).ready(function () {
function media_upload(button_class) {
'use strict';
$('body').on('click', button_class, function (e) {
var upload_button = $(this);
// If the media frame already exists, reopen it.
if (frame) {
frame.open();
return;
}
// Create a new media frame
var frame = wp.media({
library: {
type: 'image'
},
multiple: false
});
frame.on('select', function () {
// Get media attachment details from the frame state
var attachment = frame.state().get('selection').first().toJSON();
upload_button.parent(".upload-item").find('.custom_media_id').val(attachment.id);
upload_button.parent(".upload-item").find('.custom_media_image').attr('src', attachment.url).css('display', 'block');
$('.components-button').removeAttr("disabled");
upload_button.parent(".upload-item").find('.custom_media_id').trigger('change');
});
frame.open();
return false;
});
}
media_upload('.custom_media_upload');
$('body').on('click', ".custom_media_upload_remove", function (e) {
$(this).parent(".upload-item").find('.custom_media_id').val("");
$(this).parent(".upload-item").find('.custom_media_id').trigger('change');
$(this).parent(".upload-item").find('.custom_media_image').css('display', 'none');
});
});
})(jQuery);