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

1 line
1.6 KiB
JavaScript

!function(c){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.select=redux.field_objects.select||{},redux.field_objects.select.init=function(e){e=c.redux.getSelector(e,"select"),c(e).each(function(){var d={},n=c(this),e=n;(e=n.hasClass("redux-field-container")?e:n.parents(".redux-field-container:first")).is(":hidden")||e.hasClass("redux-field-init")&&(e.removeClass("redux-field-init"),n.find("select.redux-select-item").each(function(){var t,s,a,e,i;c(this).hasClass("font-icons")&&(d=c.extend({},{templateResult:redux.field_objects.select.addIcon,templateSelection:redux.field_objects.select.addIcon,escapeMarkup:function(e){return e}},d)),c(this).data("ajax")&&(t=c(this).data("action"),s=c(this).data("nonce"),a=c(this).data("wp-data"),e=c(this).data("min-input-length"),i={},c(this).data("args")&&(i=JSON.stringify(c(this).data("args"))),d={minimumInputLength:e="true"===e?1:e,ajax:{url:ajaxurl,dataType:"json",delay:250,data:function(e){return{nonce:s,data:a,q:e.term,page:e.page||1,action:t,data_args:i}},processResults:function(e,t){return t.page=t.page||1,!0===e.success?{results:e.data}:!1===e.success?(alert(e.data),{results:e.data}):void 0},cache:!0}}),c(this).select2(d),n.find(".select2-search__field").width("auto"),c(this).hasClass("select2-sortable")&&(d={bindOrder:"sortableStop",sortableOptions:{axis:"x",placeholder:!1}},c(this).select2Sortable(d)),c(this).on("select2:select",function(){redux_change(c(c(this))),c(this).select2SortableOrder()})}))})},redux.field_objects.select.addIcon=function(e){if(e.hasOwnProperty("id"))return'<span class="elusive"><i class="'+e.id+'"></i>&nbsp;&nbsp;'+e.text+"</span>"}}(jQuery);