🏨 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>
2 lines
1.9 KiB
JavaScript
2 lines
1.9 KiB
JavaScript
/*! elementor - v3.24.0 - 15-10-2024 */
|
|
(()=>{"use strict";var e,t,a,i={38003:e=>{e.exports=wp.i18n}},n={};function __webpack_require__(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return i[e](a,a.exports,__webpack_require__),a.exports}a=__webpack_require__(38003).__,e=jQuery,t={cacheElements:function cacheElements(){this.cache={$deactivateLink:e("#the-list").find('[data-slug="elementor"] span.deactivate a'),$dialogHeader:e("#elementor-deactivate-feedback-dialog-header"),$dialogForm:e("#elementor-deactivate-feedback-dialog-form")}},bindEvents:function bindEvents(){var e=this;e.cache.$deactivateLink.on("click",(function(t){t.preventDefault(),e.getModal().show()}))},deactivate:function deactivate(){location.href=this.cache.$deactivateLink.attr("href")},initModal:function initModal(){var t,i=this;i.getModal=function(){return t||(t=elementorCommon.dialogsManager.createWidget("lightbox",{id:"elementor-deactivate-feedback-modal",headerMessage:i.cache.$dialogHeader,message:i.cache.$dialogForm,hide:{onButtonClick:!1},position:{my:"center",at:"center"},onReady:function onReady(){DialogsManager.getWidgetType("lightbox").prototype.onReady.apply(this,arguments),this.addButton({name:"submit",text:a("Submit & Deactivate","elementor"),callback:i.sendFeedback.bind(i)}),this.addButton({name:"skip",text:a("Skip & Deactivate","elementor"),callback:function callback(){i.deactivate()}})},onShow:function onShow(){var t=e("#elementor-deactivate-feedback-modal"),a=".elementor-deactivate-feedback-dialog-input";t.find(a).on("change",(function(){t.attr("data-feedback-selected",e(this).val())})),t.find(a+":checked").trigger("change")}})),t}},sendFeedback:function sendFeedback(){var t=this.cache.$dialogForm.serialize();this.getModal().getElements("submit").text("").addClass("elementor-loading"),e.post(ajaxurl,t,this.deactivate.bind(this))},init:function init(){this.initModal(),this.cacheElements(),this.bindEvents()}},e((function(){t.init()}))})(); |