Files
Hotel Raxa Dev 5b1e2453c7 Hotel Raxa - Advanced Booking System Implementation
🏨 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>
2025-07-11 07:43:22 +02:00

359 lines
7.4 KiB
SCSS

.block-editor-page {
.postbox{
&.closed .el {
&:before {
content: ""!important;
}
}
.el{
&:before{
content: ""
}
}
}
}
.postbox {
.redux_field_th {
padding-bottom: 0 !important;
}
.redux-group-tab {
margin-bottom: 0 !important;
}
.redux-container {
filter: none;
border: none;
-moz-border-radius: 0;
/* Firefox */
-webkit-border-radius: 0;
/* Safari, Chrome */
border-radius: 0;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
.redux-group-menu .active a {
background: #FFF;
}
.redux-section-title {
padding-left: 0 !important;
margin-bottom: 15px !important;
}
.redux-section-desc {
margin-bottom: 20px;
}
.redux_main {
border-left: 1px solid #D8D8D8;
-webkit-box-shadow: none;
box-shadow: none;
input[type=text] {
width: 95%;
}
}
&.redux-no-sections {
margin: 0;
background: none;
.redux-main {
background: none;
margin-left: inherit;
padding: inherit;
border-left: none !important;
min-height: 0 !important;
tr {
&:last-child {
border-bottom: none;
}
&:last-child {
th,
td {
padding-bottom: 0;
}
}
td {
//padding-top: 20px !important;
padding-top: 10px !important;
width: 100%;
}
}
.form-table:first-child tr:first-child td {
padding-top: 0 !important;
}
.redux-field {
margin-bottom: 10px !important;
}
.redux-field:last-child {
margin-bottom: 0 !important;
}
}
}
&.redux-has-sections {
.redux-main {
background: #fff;
span.description {
padding-bottom: 20px;
}
}
}
}
.redux-main h3 {
cursor: text !important;
-webkit-user-select: inherit !important;
-moz-user-select: inherit !important;
user-select: inherit !important;
padding-left: 0 !important;
}
}
.redux-box-side {
.redux-main {
.redux-field-container {
padding: 5px 0 0;
.select2-container,
select {
width: 100% !important;
}
}
}
.form-table {
tr {
td {
padding: 15px 0 !important;
}
&:last-child td {
padding-bottom: 0 !important;
}
&:first-child td {
padding-top: 5px !important;
}
}
}
}
#poststuff .redux-metabox h3.hndle,
.metabox-holder .redux-metabox h3.hndle {
cursor: pointer;
border-bottom: 0;
}
.display-group {
display: inherit !important;
}
/* Metaboxes CSS overrides */
@media (min-width: 1125px) and (max-width: 1405px) {
.postbox {
table.form-table,
.form-table > thead,
.form-table > tbody,
.form-table > tbody > tr > th,
.form-table > tbody > tr > td,
.form-table > tbody > tr {
display: block !important;
width: 100% !important;
padding: 0 !important;
&.hide {
display: none !important;
}
}
.form-table > tbody > tr {
> th,
> td {
padding: 10px !important;
}
}
.form-table > tbody > tr > th {
width: 35%;
}
}
}
.redux-metabox .form-table th,
.redux-metabox .form-table td {
margin: 0;
padding: 0;
/* width: auto;*/
}
.redux-box-side .redux-main .redux-field-container {
.select2-container,
select {
width: 96% !important;
}
}
@media (max-width: 1405px) {
.redux-box-side .redux-main .redux-field-container {
.select2-container,
select {
width: 92% !important;
}
}
}
@media (max-width: 1125px) {
.redux-box-side .redux-main .redux-field-container {
.select2-container,
select {
width: 100% !important;
}
}
}
@media (max-width: 1405px) {
.redux-main {
.form-table > tbody > tr > td {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.redux-field-container {
padding: 0 0 20px 0 !important;
padding-bottom: 10px !important;
}
}
.postbox .form-table > tbody > tr > th {
padding-bottom: 0 !important;
}
.redux_field_th {
padding-top: 0 !important;
padding-bottom: 10px !important;
}
}
.redux-no-sections .redux-group-tab {
display: block !important;
}
@mixin metaboxesAdminThemeColorOverrides ($darkColor, $textColor) {
#poststuff .redux-metabox h3.hndle,
.metabox-holder .redux-metabox h3.hndle {
background: $darkColor;
color: $textColor;
}
}
/* Light fresh theme */
.admin-color-fresh {
@include metaboxesAdminThemeColorOverrides(#222222, #fff);
}
/* Light admin theme */
.admin-color-light {
@include metaboxesAdminThemeColorOverrides(#888888, #fff);
}
/* Blue admin theme */
.admin-color-blue {
@include metaboxesAdminThemeColorOverrides(#096484, #fff);
}
/* Coffee admin theme */
.admin-color-coffee {
@include metaboxesAdminThemeColorOverrides(#46403c, #fff);
}
/* Ectoplasm admin theme */
.admin-color-ectoplasm {
@include metaboxesAdminThemeColorOverrides(#413256, #fff);
}
/* Midnight admin theme */
.admin-color-midnight {
@include metaboxesAdminThemeColorOverrides(#363b3f, #fff);
}
/* Ocean admin theme */
.admin-color-ocean {
@include metaboxesAdminThemeColorOverrides(#627c83, #fff);
}
/* Sunrise admin theme */
.admin-color-sunrise {
@include metaboxesAdminThemeColorOverrides(#b43c38, #fff);
}
.redux-notices {
margin-bottom: 0;
border: 0;
}
.redux-metabox {
.redux-container {
margin-top: 0;
}
.inside {
margin: 0 !important;
padding: 0 !important;
}
.redux-no-sections {
.redux-main {
padding: 6px 15px 15px 15px !important;
.default_br {
display: none;
}
.redux-field-container {
padding: 10px 0 20px !important;
}
.redux_field_th {
padding-top: 5px !important;
}
}
&.redux-box-side {
.redux-main {
padding: 6px 8px 8px 8px !important;
input[type=text] {
width: 100% !important;
}
}
}
}
}
.wp-color-result {
margin: 0 6px 0 0 !important;
}
.redux-container .ui-button-text-only .ui-button-text {
padding: 0;
}
.wpseotab tr {
display: table-row !important
}