🏨 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>
98 lines
4.3 KiB
CSS
98 lines
4.3 KiB
CSS
@font-face {
|
|
font-family: 'revicons';
|
|
src: url('../fonts/revicons.eot?5510888');
|
|
src: url('../fonts/revicons.eot?5510888#iefix') format('embedded-opentype'),
|
|
url('../fonts/revicons.woff?5510888') format('woff'),
|
|
url('../fonts/revicons.ttf?5510888') format('truetype'),
|
|
url('../fonts/revicons.svg?5510888#revicons') format('svg');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
.testrevicon { display:inline-block}
|
|
.testrevicon:before { font-family: inherit; content: '\e824';font-size:15px; color:#fff; display:block; line-height: 40px; text-align: center;}
|
|
.testloadedicon .testrevicon:before { font-family: 'revicons'; content: '\e824';font-size:15px; color:#fff; display:block; line-height: 40px; text-align: center;}
|
|
|
|
[class^="revicon-"]:before, [class*=" revicon-"]:before {
|
|
font-family: "revicons";
|
|
font-style: normal;
|
|
font-weight: normal;
|
|
speak: never;
|
|
speak-as: spell-out;
|
|
display: inline-block;
|
|
text-decoration: inherit;
|
|
width: 1em;
|
|
margin-right: .2em;
|
|
text-align: center;
|
|
|
|
/* For safety - reset parent styles, that can break glyph codes*/
|
|
font-variant: normal;
|
|
text-transform: none;
|
|
|
|
/* fix buttons height, for twitter bootstrap */
|
|
line-height: 1em;
|
|
|
|
/* Animation center compensation - margins should be symmetric */
|
|
/* remove if not needed */
|
|
margin-left: .2em;
|
|
|
|
/* you can be more comfortable with increased icons size */
|
|
/* font-size: 120%; */
|
|
|
|
/* Uncomment for 3D effect */
|
|
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
|
}
|
|
sr7-module [class^="revicon-"], sr7-module [class*=" revicon-"],
|
|
.rb-modal-wrapper [class^="revicon-"], .rb-modal-wrapper [class*=" revicon-"]{
|
|
display: inline-block;
|
|
font: normal normal normal 14px/1 FontAwesome;
|
|
font-size: inherit;
|
|
text-rendering: auto;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
.revicon-search-1:before { content: '\e802'; } /* '' */
|
|
.revicon-pencil-1:before { content: '\e831'; } /* '' */
|
|
.revicon-picture-1:before { content: '\e803'; } /* '' */
|
|
.revicon-cancel:before { content: '\e80a'; } /* '' */
|
|
.revicon-info-circled:before { content: '\e80f'; } /* '' */
|
|
.revicon-trash:before { content: '\e801'; } /* '' */
|
|
.revicon-left-dir:before { content: '\e817'; } /* '' */
|
|
.revicon-right-dir:before { content: '\e818'; } /* '' */
|
|
.revicon-down-open:before { content: '\e83b'; } /* '' */
|
|
.revicon-left-open:before { content: '\e819'; } /* '' */
|
|
.revicon-right-open:before { content: '\e81a'; } /* '' */
|
|
.revicon-angle-left:before { content: '\e820'; } /* '' */
|
|
.revicon-angle-right:before { content: '\e81d'; } /* '' */
|
|
.revicon-left-big:before { content: '\e81f'; } /* '' */
|
|
.revicon-right-big:before { content: '\e81e'; } /* '' */
|
|
.revicon-magic:before { content: '\e807'; } /* '' */
|
|
.revicon-picture:before { content: '\e800'; } /* '' */
|
|
.revicon-export:before { content: '\e80b'; } /* '' */
|
|
.revicon-cog:before { content: '\e832'; } /* '' */
|
|
.revicon-login:before { content: '\e833'; } /* '' */
|
|
.revicon-logout:before { content: '\e834'; } /* '' */
|
|
.revicon-video:before { content: '\e805'; } /* '' */
|
|
.revicon-arrow-combo:before { content: '\e827'; } /* '' */
|
|
.revicon-left-open-1:before { content: '\e82a'; } /* '' */
|
|
.revicon-right-open-1:before { content: '\e82b'; } /* '' */
|
|
.revicon-left-open-mini:before { content: '\e822'; } /* '' */
|
|
.revicon-right-open-mini:before { content: '\e823'; } /* '' */
|
|
.revicon-left-open-big:before { content: '\e824'; } /* '' */
|
|
.revicon-right-open-big:before { content: '\e825'; } /* '' */
|
|
.revicon-left:before { content: '\e836'; } /* '' */
|
|
.revicon-right:before { content: '\e826'; } /* '' */
|
|
.revicon-ccw:before { content: '\e808'; } /* '' */
|
|
.revicon-arrows-ccw:before { content: '\e806'; } /* '' */
|
|
.revicon-palette:before { content: '\e829'; } /* '' */
|
|
.revicon-list-add:before { content: '\e80c'; } /* '' */
|
|
.revicon-doc:before { content: '\e809'; } /* '' */
|
|
.revicon-left-open-outline:before { content: '\e82e'; } /* '' */
|
|
.revicon-left-open-2:before { content: '\e82c'; } /* '' */
|
|
.revicon-right-open-outline:before { content: '\e82f'; } /* '' */
|
|
.revicon-right-open-2:before { content: '\e82d'; } /* '' */
|
|
.revicon-equalizer:before { content: '\e83a'; } /* '' */
|
|
.revicon-layers-alt:before { content: '\e804'; } /* '' */
|
|
.revicon-popup:before { content: '\e828'; } /* '' */ |