🏨 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
4.9 KiB
Plaintext
1 line
4.9 KiB
Plaintext
{"version":3,"sources":["redux-palette.scss","redux-palette.css"],"names":[],"mappings":"AAAA,iCAAA,6BACS,ECED,gBAAgB,EDHxB,sBACS,ECID,cAAc,EAAA;;ADLtB,qDCOY,UAAU,EDPtB,gBACI,ECQQ,UAAU,EDTtB,oBACI,EADJ,qBACI,EADJ,oBACI,EADJ,aACI,EAAA;;AADJ,6JCcgB,aAAY,EAAA;;ADd5B,0DCkBgB,aAAa,EACb,mBAAY,EAAZ,oBAAY,EAAZ,oBAAY,EAAZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,yCAAyC,EAIzC,iCAAiC,EAAA;;AD3BjD,gEC6BoB,mBAAY,EAAZ,oBAAY,EAAZ,oBAAY,EAAZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,uCAAuC,EAAA;;ADnC3D,iDCyCY,iCAAiC,EAAA;;AAK7C,4DAEQ,kBAAkB,EAAA;;AAlC1B,6nDAA6nD","file":"redux-palette.css","sourcesContent":[".redux-container-palette {\n label {\n border: 3px solid transparent;\n border-radius: 0;\n width: 100% !important;\n display: block;\n &.ui-button.ui-widget {\n width: 95%;\n background: none;\n padding: 0;\n display: flex;\n\n .ui-checkboxradio-icon,\n .ui-checkboxradio-icon-space {\n display:none;\n }\n\n span {\n padding: 10px;\n flex-grow: 1;\n font-size: 0;\n line-height: 10px;\n color: rgba(0, 0, 0, 0);\n -webkit-transition: all 200ms ease-in-out;\n -moz-transition: all 200ms ease-in-out;\n -ms-transition: all 200ms ease-in-out;\n -o-transition: all 200ms ease-in-out;\n transition: all 200ms ease-in-out;\n &:hover {\n flex-grow: 3;\n font-weight: bold;\n min-width: 60px;\n font-size: 12px;\n line-height: 10px;\n color: #333;\n text-shadow: 0 0 8px #fff, 0 0 8px #fff;\n }\n }\n }\n\n &.ui-state-active {\n border: 3px solid #333 !important;\n }\n }\n}\n\n.wp-customizer {\n .redux-main .redux-container-palette label {\n margin-bottom: 3px;\n }\n}\n\n",".redux-container-palette label { border: 3px solid transparent; border-radius: 0; width: 100% !important; display: block; }\n\n.redux-container-palette label.ui-button.ui-widget { width: 95%; background: none; padding: 0; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; }\n\n.redux-container-palette label.ui-button.ui-widget .ui-checkboxradio-icon, .redux-container-palette label.ui-button.ui-widget .ui-checkboxradio-icon-space { display: none; }\n\n.redux-container-palette label.ui-button.ui-widget span { padding: 10px; -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; font-size: 0; line-height: 10px; color: rgba(0, 0, 0, 0); -webkit-transition: all 200ms ease-in-out; transition: all 200ms ease-in-out; }\n\n.redux-container-palette label.ui-button.ui-widget span:hover { -webkit-box-flex: 3; -webkit-flex-grow: 3; -ms-flex-positive: 3; flex-grow: 3; font-weight: bold; min-width: 60px; font-size: 12px; line-height: 10px; color: #333; text-shadow: 0 0 8px #fff, 0 0 8px #fff; }\n\n.redux-container-palette label.ui-state-active { border: 3px solid #333 !important; }\n\n.wp-customizer .redux-main .redux-container-palette label { margin-bottom: 3px; }\n\n/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtcGFsZXR0ZS5jc3MiLCJzb3VyY2VzIjpbInJlZHV4LXBhbGV0dGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUNJLHdCQURvQixDQUNwQixLQUFLLENBQUMsRUFDRixNQUFNLEVBQUUscUJBQXFCLEVBQzdCLGFBQWEsRUFBRSxDQUFDLEVBQ2hCLEtBQUssRUFBRSxlQUFlLEVBQ3RCLE9BQU8sRUFBRSxLQUFLLEdBc0NqQjs7QUEzQ0wsQUFNUSx3QkFOZ0IsQ0FDcEIsS0FBSyxBQUtBLFVBQVUsQUFBQSxVQUFVLENBQUMsRUFDbEIsS0FBSyxFQUFFLEdBQUcsRUFDVixVQUFVLEVBQUUsSUFBSSxFQUNoQixPQUFPLEVBQUUsQ0FBQyxFQUNWLE9BQU8sRUFBRSxJQUFJLEdBNEJoQjs7QUF0Q1QsQUFZWSx3QkFaWSxDQUNwQixLQUFLLEFBS0EsVUFBVSxBQUFBLFVBQVUsQ0FNakIsc0JBQXNCLEVBWmxDLHdCQUF3QixDQUNwQixLQUFLLEFBS0EsVUFBVSxBQUFBLFVBQVUsQ0FPakIsNEJBQTRCLENBQUMsRUFDekIsT0FBTyxFQUFDLElBQUksR0FDZjs7QUFmYixBQWlCWSx3QkFqQlksQ0FDcEIsS0FBSyxBQUtBLFVBQVUsQUFBQSxVQUFVLENBV2pCLElBQUksQ0FBQyxFQUNELE9BQU8sRUFBRSxJQUFJLEVBQ2IsU0FBUyxFQUFFLENBQUMsRUFDWixTQUFTLEVBQUUsQ0FBQyxFQUNaLFdBQVcsRUFBRSxJQUFJLEVBQ2pCLEtBQUssRUFBRSxnQkFBZ0IsRUFDdkIsa0JBQWtCLEVBQUUscUJBQXFCLEVBQ3pDLGVBQWUsRUFBRSxxQkFBcUIsRUFDdEMsY0FBYyxFQUFFLHFCQUFxQixFQUNyQyxhQUFhLEVBQUUscUJBQXFCLEVBQ3BDLFVBQVUsRUFBRSxxQkFBcUIsR0FVcEM7O0FBckNiLEFBNEJnQix3QkE1QlEsQ0FDcEIsS0FBSyxBQUtBLFVBQVUsQUFBQSxVQUFVLENBV2pCLElBQUksQUFXQyxNQUFNLENBQUMsRUFDSixTQUFTLEVBQUUsQ0FBQyxFQUNaLFdBQVcsRUFBRSxJQUFJLEVBQ2pCLFNBQVMsRUFBRSxJQUFJLEVBQ2YsU0FBUyxFQUFFLElBQUksRUFDZixXQUFXLEVBQUUsSUFBSSxFQUNqQixLQUFLLEVBQUUsSUFBSSxFQUNYLFdBQVcsRUFBRSwwQkFBMEIsR0FDMUM7O0FBcENqQixBQXdDUSx3QkF4Q2dCLENBQ3BCLEtBQUssQUF1Q0EsZ0JBQWdCLENBQUMsRUFDZCxNQUFNLEVBQUUseUJBQXlCLEdBQ3BDOztBQUlULEFBQ0ksY0FEVSxDQUNWLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFDdkMsYUFBYSxFQUFFLEdBQUcsR0FDckIifQ== */\n\n/*# sourceMappingURL=redux-palette.css.map */\n"]} |