🏨 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
3.2 KiB
Plaintext
1 line
3.2 KiB
Plaintext
{"version":3,"sources":["redux-media.css","redux-media.scss"],"names":[],"mappings":"AACA,kCAEQ,UAAU,ECFlB,qBAOI,EDHI,iBAAiB,EAAA;;AAJzB,4CAQQ,iBAAiB,EAAA;;AARzB,6DAWY,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,gBAAgB,EAChB,eAAe,EACf,WAAW,EAAA;;AAhBvB,0DAoBY,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAAA;;AAtB9B,gEAyBgB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EAAA;;AA3B3B,uFAgCwB,WAAW,EAAA;;AArBnC,ykCAAykC","file":"redux-media.css","sourcesContent":[".redux-main .redux-media-slider { width: 40%; display: inline-block; margin-left: 30px; }\n\n.redux-main .redux-media-filter-container { padding-top: 20px; }\n\n.redux-main .redux-media-filter-container .container-label { margin-bottom: 20px; padding-bottom: 1px; border-bottom: 1px solid #e7e7e7; font-weight: 600; font-size: 12px; color: #999; }\n\n.redux-main .redux-media-filter-container .media-filter { display: inline-block; width: 47%; margin-bottom: 5px; }\n\n.redux-main .redux-media-filter-container .media-filter label { display: inline-block; width: 130px; color: #999; }\n\n.redux-main .redux-media-filter-container .media-filter label.disabled .filter-value { color: #ccc; }\n\n/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdXgtbWVkaWEuY3NzIiwic291cmNlcyI6WyJyZWR1eC1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLEFBQ0ksV0FETyxDQUNQLG1CQUFtQixDQUFDLEVBQ2hCLEtBQUssRUFBRSxHQUFHLEVBQ1YsT0FBTyxFQUFFLFlBQVksRUFDckIsV0FBVyxFQUFFLElBQUksR0FDcEI7O0FBTEwsQUFPSSxXQVBPLENBT1AsNkJBQTZCLENBQUMsRUFDMUIsV0FBVyxFQUFFLElBQUksR0E2QnBCOztBQXJDTCxBQVVRLFdBVkcsQ0FPUCw2QkFBNkIsQ0FHekIsZ0JBQWdCLENBQUMsRUFDYixhQUFhLEVBQUUsSUFBSSxFQUNuQixjQUFjLEVBQUUsR0FBRyxFQUNuQixhQUFhLEVBQUUsaUJBQWlCLEVBQ2hDLFdBQVcsRUFBRSxHQUFHLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLEVBQ2YsS0FBSyxFQUFFLElBQUksR0FDZDs7QUFqQlQsQUFtQlEsV0FuQkcsQ0FPUCw2QkFBNkIsQ0FZekIsYUFBYSxDQUFDLEVBQ1YsT0FBTyxFQUFFLFlBQVksRUFDckIsS0FBSyxFQUFFLEdBQUcsRUFDVixhQUFhLEVBQUUsR0FBRyxHQWNyQjs7QUFwQ1QsQUF3QlksV0F4QkQsQ0FPUCw2QkFBNkIsQ0FZekIsYUFBYSxDQUtULEtBQUssQ0FBQyxFQUNGLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxLQUFLLEVBQ1osS0FBSyxFQUFFLElBQUksR0FRZDs7QUFuQ2IsQUErQm9CLFdBL0JULENBT1AsNkJBQTZCLENBWXpCLGFBQWEsQ0FLVCxLQUFLLEFBS0EsU0FBUyxDQUVOLGFBQWEsQ0FBQyxFQUNWLEtBQUssRUFBRSxJQUFJLEdBQ2QifQ== */\n\n/*# sourceMappingURL=redux-media.css.map */\n","//removeIf(core)\r\n.redux-main {\r\n .redux-media-slider {\r\n width: 40%;\r\n display: inline-block;\r\n margin-left: 30px;\r\n }\r\n\r\n .redux-media-filter-container {\r\n padding-top: 20px;\r\n\r\n .container-label {\r\n margin-bottom: 20px;\r\n padding-bottom: 1px;\r\n border-bottom: 1px solid #e7e7e7;\r\n font-weight: 600;\r\n font-size: 12px;\r\n color: #999;\r\n }\r\n\r\n .media-filter {\r\n display: inline-block;\r\n width: 47%;\r\n margin-bottom: 5px;\r\n\r\n label {\r\n display: inline-block;\r\n width: 130px;\r\n color: #999;\r\n\r\n &.disabled {\r\n\r\n .filter-value {\r\n color: #ccc;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n//removeIf(core)\r\n"]} |