🏨 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>
1 line
5.1 KiB
Plaintext
1 line
5.1 KiB
Plaintext
{"version":3,"sources":["redux-switch.scss","redux-switch.css"],"names":[],"mappings":"AAAA,0CAAA,gBACI,ECEI,kBAAkB,EAAA;;ADH1B,iDAAA,eAcI,EAAA;;AAdJ,gDAAA,aAkCI,EAAA;;AAlCJ,0EAAA,eAAuB,ECiBf,iBAAiB,EDjBzB,mBAqDI,EClCI,wBAAwB,EACxB,mBAAmB,EACnB,8BAAsB,EAAtB,sBAAsB,EAAA;;ADrB9B,oFCwBY,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EAAA;;AD9B7B,6JCsCQ,cAAc,EACd,WAAW,EAAA;;ADvCnB,qCC2CQ,eAAe,EACf,0BAA0B,EAC1B,+BAA+B,EAC/B,kCAAkC,EAAA;;AD9C1C,8CCiDY,WAAW,EAAA;;ADjDvB,sCCsDQ,cAAc,EACd,0BAA0B,EAC1B,+BAA+B,EAC/B,kCAAkC,EAAA;;ADzD1C,+CC4DY,WAAW,EAAA;;AAxCvB,iyDAAiyD","file":"redux-switch.css","sourcesContent":[".redux-container-switch {\n .switch-options {\n min-height: 30px;\n margin-right: 10px;\n\n .label {\n cursor: pointer;\n }\n\n input {\n display: none;\n }\n }\n\n .cb-enable,\n .cb-disable {\n padding: 0 10px;\n border-width: 1px;\n border-style: solid;\n -webkit-appearance: none;\n white-space: nowrap;\n box-sizing: border-box;\n\n span {\n line-height: 30px;\n display: block;\n font-weight: 700;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n }\n\n .cb-enable,\n .cb-disable,\n .cb-enable span,\n .cb-disable span {\n display: block;\n float: left;\n }\n\n .cb-enable {\n border-right: 0;\n border-radius: 3px 0 0 3px;\n -moz-border-radius: 3px 0 0 3px;\n -webkit-border-radius: 3px 0 0 3px;\n\n &.selected {\n color: #fff;\n }\n }\n\n .cb-disable {\n border-left: 0;\n border-radius: 0 3px 3px 0;\n -moz-border-radius: 0 3px 3px 0;\n -webkit-border-radius: 0 3px 3px 0;\n\n &.selected {\n color: #fff;\n }\n }\n}\n",".redux-container-switch .switch-options { min-height: 30px; margin-right: 10px; }\n\n.redux-container-switch .switch-options .label { cursor: pointer; }\n\n.redux-container-switch .switch-options input { display: none; }\n\n.redux-container-switch .cb-enable, .redux-container-switch .cb-disable { padding: 0 10px; border-width: 1px; border-style: solid; -webkit-appearance: none; white-space: nowrap; -webkit-box-sizing: border-box; box-sizing: border-box; }\n\n.redux-container-switch .cb-enable span, .redux-container-switch .cb-disable span { line-height: 30px; display: block; font-weight: 700; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }\n\n.redux-container-switch .cb-enable, .redux-container-switch .cb-disable, .redux-container-switch .cb-enable span, .redux-container-switch .cb-disable span { display: block; float: left; }\n\n.redux-container-switch .cb-enable { border-right: 0; border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; -webkit-border-radius: 3px 0 0 3px; }\n\n.redux-container-switch .cb-enable.selected { color: #fff; }\n\n.redux-container-switch .cb-disable { border-left: 0; border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; -webkit-border-radius: 0 3px 3px 0; }\n\n.redux-container-switch .cb-disable.selected { color: #fff; }\n\n/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtc3dpdGNoLmNzcyIsInNvdXJjZXMiOlsicmVkdXgtc3dpdGNoLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsQUFDSSx1QkFEbUIsQ0FDbkIsZUFBZSxDQUFDLEVBQ1osVUFBVSxFQUFFLElBQUksRUFDaEIsWUFBWSxFQUFFLElBQUksR0FTckI7O0FBWkwsQUFLUSx1QkFMZSxDQUNuQixlQUFlLENBSVgsTUFBTSxDQUFDLEVBQ0gsTUFBTSxFQUFFLE9BQU8sR0FDbEI7O0FBUFQsQUFTUSx1QkFUZSxDQUNuQixlQUFlLENBUVgsS0FBSyxDQUFDLEVBQ0YsT0FBTyxFQUFFLElBQUksR0FDaEI7O0FBWFQsQUFjSSx1QkFkbUIsQ0FjbkIsVUFBVSxFQWRkLHVCQUF1QixDQWVuQixXQUFXLENBQUMsRUFDUixPQUFPLEVBQUUsTUFBTSxFQUNmLFlBQVksRUFBRSxHQUFHLEVBQ2pCLFlBQVksRUFBRSxLQUFLLEVBQ25CLGtCQUFrQixFQUFFLElBQUksRUFDeEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsVUFBVSxFQUFFLFVBQVUsR0FXekI7O0FBaENMLEFBdUJRLHVCQXZCZSxDQWNuQixVQUFVLENBU04sSUFBSSxFQXZCWix1QkFBdUIsQ0FlbkIsV0FBVyxDQVFQLElBQUksQ0FBQyxFQUNELFdBQVcsRUFBRSxJQUFJLEVBQ2pCLE9BQU8sRUFBRSxLQUFLLEVBQ2QsV0FBVyxFQUFFLEdBQUcsRUFDaEIsbUJBQW1CLEVBQUUsSUFBSSxFQUN6QixnQkFBZ0IsRUFBRSxJQUFJLEVBQ3RCLGVBQWUsRUFBRSxJQUFJLEVBQ3JCLFdBQVcsRUFBRSxJQUFJLEdBQ3BCOztBQS9CVCxBQWtDSSx1QkFsQ21CLENBa0NuQixVQUFVLEVBbENkLHVCQUF1QixDQW1DbkIsV0FBVyxFQW5DZix1QkFBdUIsQ0FvQ25CLFVBQVUsQ0FBQyxJQUFJLEVBcENuQix1QkFBdUIsQ0FxQ25CLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFDYixPQUFPLEVBQUUsS0FBSyxFQUNkLEtBQUssRUFBRSxJQUFJLEdBQ2Q7O0FBeENMLEFBMENJLHVCQTFDbUIsQ0EwQ25CLFVBQVUsQ0FBQyxFQUNQLFlBQVksRUFBRSxDQUFDLEVBQ2YsYUFBYSxFQUFFLFdBQVcsRUFDMUIsa0JBQWtCLEVBQUUsV0FBVyxFQUMvQixxQkFBcUIsRUFBRSxXQUFXLEdBS3JDOztBQW5ETCxBQWdEUSx1QkFoRGUsQ0EwQ25CLFVBQVUsQUFNTCxTQUFTLENBQUMsRUFDUCxLQUFLLEVBQUUsSUFBSSxHQUNkOztBQWxEVCxBQXFESSx1QkFyRG1CLENBcURuQixXQUFXLENBQUMsRUFDUixXQUFXLEVBQUUsQ0FBQyxFQUNkLGFBQWEsRUFBRSxXQUFXLEVBQzFCLGtCQUFrQixFQUFFLFdBQVcsRUFDL0IscUJBQXFCLEVBQUUsV0FBVyxHQUtyQzs7QUE5REwsQUEyRFEsdUJBM0RlLENBcURuQixXQUFXLEFBTU4sU0FBUyxDQUFDLEVBQ1AsS0FBSyxFQUFFLElBQUksR0FDZCJ9 */\n\n/*# sourceMappingURL=redux-switch.css.map */\n"]} |