🏨 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
2.7 KiB
CSS
1 line
2.7 KiB
CSS
.sr7-btn,.sr7-btn:visited{outline:0;box-shadow:none;text-decoration:none;box-sizing:border-box;cursor:pointer}.sr7-btn.sr7-uppercase,.sr7-btn.sr7-uppercase:visited{text-transform:uppercase}.sr7-btn i,.sr7-btn.sr7-hiddenicon i{font-size:inherit;font-weight:400;position:relative;top:0;transition:opacity .2s ease-out,margin .2s ease-out;margin-left:0}.sr7-btn i{line-height:inherit}.sr7-btn.sr7-hiddenicon i{opacity:0;width:0}.sr7-btn.sr7-hiddenicon:hover i{opacity:1;margin-left:10px;width:auto}.sr7-brg{position:relative;box-sizing:border-box;padding:22px 14px 22px 14px;border-radius:50%;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;cursor:pointer}.sr7-brg span{display:block;width:30px;height:3px;background:#333;transition:.7s;pointer-events:none;transform-style:flat!important}.sr7-brg span:nth-child(2){margin:3px 0}.sr7-brg.sr7-white{border:2px solid rgba(255,255,255,.2)}.open .sr7-brg :first-child,.open.sr7-brg :first-child{transform:translateY(6px) rotate(-45deg)}.open .sr7-brg :nth-child(2),.open.sr7-brg :nth-child(2){transform:rotate(-45deg);opacity:0}.open .sr7-brg :last-child,.open.sr7-brg :last-child{transform:translateY(-6px) rotate(-135deg)}.sr7-brg.sr7-darkfull span,.sr7-brg.sr7-white span,.sr7-brg.sr7-whitefull,.sr7-brg.sr7-whitenoborder span,.sr7-light span{background:#fff}.sr7-brg.sr7-darknoborder,.sr7-brg.sr7-whitenoborder{border:0}.sr7-brg.sr7-darkfull,.sr7-brg.sr7-darknoborder span,.sr7-brg.sr7-whitefull span,.sr7-dark span{background:#333}.sr7-brg.sr7-darkfull,.sr7-brg.sr7-whitefull{border:none}@keyframes sr7-ani-mouse{0%{opacity:1;top:29%}15%{opacity:1;top:70%}50%{opacity:0;top:70%}100%{opacity:0;top:29%}}.sr7-scroll-btn{display:inline-block;position:relative;left:0;right:0;text-align:center;cursor:pointer;width:35px;height:55px;box-sizing:border-box;border:3px solid #fff;border-radius:23px}.sr7-scroll-btn>*{display:inline-block;line-height:18px;font-size:13px;font-weight:400;color:#7f8c8d;color:#fff;font-family:proxima-nova,"Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:2px}.sr7-scroll-btn>.active,.sr7-scroll-btn>:focus,.sr7-scroll-btn>:hover{color:#fff}.sr7-scroll-btn>.active,.sr7-scroll-btn>:active,.sr7-scroll-btn>:focus,.sr7-scroll-btn>:hover{opacity:.8}.sr7-scroll-btn.revs-fulldark span,.sr7-scroll-btn.revs-fullwhite{background:#fff}.sr7-scroll-btn.revs-dark span,.sr7-scroll-btn.revs-fulldark,.sr7-scroll-btn.revs-fullwhite span,.sr7-scroll-btn.sr7-dark span{background:#333}.sr7-scroll-btn.revs-fulldark{border:none}.sr7-scroll-btn span{position:absolute;display:block;top:29%;left:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;animation:sr7-ani-mouse 2.5s linear infinite;background:#fff}.sr7-scroll-btn.sr7-dark{border-color:#333} |