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>
This commit is contained in:
90
wp-includes/blocks/columns/block.json
Normal file
90
wp-includes/blocks/columns/block.json
Normal file
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"$schema": "https://schemas.wp.org/trunk/block.json",
|
||||
"apiVersion": 3,
|
||||
"name": "core/columns",
|
||||
"title": "Columns",
|
||||
"category": "design",
|
||||
"allowedBlocks": [ "core/column" ],
|
||||
"description": "Display content in multiple columns, with blocks added to each column.",
|
||||
"textdomain": "default",
|
||||
"attributes": {
|
||||
"verticalAlignment": {
|
||||
"type": "string"
|
||||
},
|
||||
"isStackedOnMobile": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"templateLock": {
|
||||
"type": [ "string", "boolean" ],
|
||||
"enum": [ "all", "insert", "contentOnly", false ]
|
||||
}
|
||||
},
|
||||
"supports": {
|
||||
"anchor": true,
|
||||
"align": [ "wide", "full" ],
|
||||
"html": false,
|
||||
"color": {
|
||||
"gradients": true,
|
||||
"link": true,
|
||||
"heading": true,
|
||||
"button": true,
|
||||
"__experimentalDefaultControls": {
|
||||
"background": true,
|
||||
"text": true
|
||||
}
|
||||
},
|
||||
"spacing": {
|
||||
"blockGap": {
|
||||
"__experimentalDefault": "2em",
|
||||
"sides": [ "horizontal", "vertical" ]
|
||||
},
|
||||
"margin": [ "top", "bottom" ],
|
||||
"padding": true,
|
||||
"__experimentalDefaultControls": {
|
||||
"padding": true,
|
||||
"blockGap": true
|
||||
}
|
||||
},
|
||||
"layout": {
|
||||
"allowSwitching": false,
|
||||
"allowInheriting": false,
|
||||
"allowEditing": false,
|
||||
"default": {
|
||||
"type": "flex",
|
||||
"flexWrap": "nowrap"
|
||||
}
|
||||
},
|
||||
"__experimentalBorder": {
|
||||
"color": true,
|
||||
"radius": true,
|
||||
"style": true,
|
||||
"width": true,
|
||||
"__experimentalDefaultControls": {
|
||||
"color": true,
|
||||
"radius": true,
|
||||
"style": true,
|
||||
"width": true
|
||||
}
|
||||
},
|
||||
"typography": {
|
||||
"fontSize": true,
|
||||
"lineHeight": true,
|
||||
"__experimentalFontFamily": true,
|
||||
"__experimentalFontWeight": true,
|
||||
"__experimentalFontStyle": true,
|
||||
"__experimentalTextTransform": true,
|
||||
"__experimentalTextDecoration": true,
|
||||
"__experimentalLetterSpacing": true,
|
||||
"__experimentalDefaultControls": {
|
||||
"fontSize": true
|
||||
}
|
||||
},
|
||||
"interactivity": {
|
||||
"clientNavigation": true
|
||||
},
|
||||
"shadow": true
|
||||
},
|
||||
"editorStyle": "wp-block-columns-editor",
|
||||
"style": "wp-block-columns"
|
||||
}
|
||||
10
wp-includes/blocks/columns/editor-rtl.css
Normal file
10
wp-includes/blocks/columns/editor-rtl.css
Normal file
@@ -0,0 +1,10 @@
|
||||
.wp-block-columns :where(.wp-block){
|
||||
margin-left:0;
|
||||
margin-right:0;
|
||||
max-width:none;
|
||||
}
|
||||
|
||||
html :where(.wp-block-column){
|
||||
margin-bottom:0;
|
||||
margin-top:0;
|
||||
}
|
||||
1
wp-includes/blocks/columns/editor-rtl.min.css
vendored
Normal file
1
wp-includes/blocks/columns/editor-rtl.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}
|
||||
10
wp-includes/blocks/columns/editor.css
Normal file
10
wp-includes/blocks/columns/editor.css
Normal file
@@ -0,0 +1,10 @@
|
||||
.wp-block-columns :where(.wp-block){
|
||||
margin-left:0;
|
||||
margin-right:0;
|
||||
max-width:none;
|
||||
}
|
||||
|
||||
html :where(.wp-block-column){
|
||||
margin-bottom:0;
|
||||
margin-top:0;
|
||||
}
|
||||
1
wp-includes/blocks/columns/editor.min.css
vendored
Normal file
1
wp-includes/blocks/columns/editor.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0}
|
||||
74
wp-includes/blocks/columns/style-rtl.css
Normal file
74
wp-includes/blocks/columns/style-rtl.css
Normal file
@@ -0,0 +1,74 @@
|
||||
.wp-block-columns{
|
||||
align-items:normal !important;
|
||||
box-sizing:border-box;
|
||||
display:flex;
|
||||
flex-wrap:wrap !important;
|
||||
}
|
||||
@media (min-width:782px){
|
||||
.wp-block-columns{
|
||||
flex-wrap:nowrap !important;
|
||||
}
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-top{
|
||||
align-items:flex-start;
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-center{
|
||||
align-items:center;
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-bottom{
|
||||
align-items:flex-end;
|
||||
}
|
||||
@media (max-width:781px){
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
|
||||
flex-basis:100% !important;
|
||||
}
|
||||
}
|
||||
@media (min-width:782px){
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
|
||||
flex-basis:0;
|
||||
flex-grow:1;
|
||||
}
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{
|
||||
flex-grow:0;
|
||||
}
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile{
|
||||
flex-wrap:nowrap !important;
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{
|
||||
flex-basis:0;
|
||||
flex-grow:1;
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{
|
||||
flex-grow:0;
|
||||
}
|
||||
|
||||
:where(.wp-block-columns){
|
||||
margin-bottom:1.75em;
|
||||
}
|
||||
|
||||
:where(.wp-block-columns.has-background){
|
||||
padding:1.25em 2.375em;
|
||||
}
|
||||
|
||||
.wp-block-column{
|
||||
flex-grow:1;
|
||||
min-width:0;
|
||||
overflow-wrap:break-word;
|
||||
word-break:break-word;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-top{
|
||||
align-self:flex-start;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-center{
|
||||
align-self:center;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-bottom{
|
||||
align-self:flex-end;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-stretch{
|
||||
align-self:stretch;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{
|
||||
width:100%;
|
||||
}
|
||||
1
wp-includes/blocks/columns/style-rtl.min.css
vendored
Normal file
1
wp-includes/blocks/columns/style-rtl.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}
|
||||
74
wp-includes/blocks/columns/style.css
Normal file
74
wp-includes/blocks/columns/style.css
Normal file
@@ -0,0 +1,74 @@
|
||||
.wp-block-columns{
|
||||
align-items:normal !important;
|
||||
box-sizing:border-box;
|
||||
display:flex;
|
||||
flex-wrap:wrap !important;
|
||||
}
|
||||
@media (min-width:782px){
|
||||
.wp-block-columns{
|
||||
flex-wrap:nowrap !important;
|
||||
}
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-top{
|
||||
align-items:flex-start;
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-center{
|
||||
align-items:center;
|
||||
}
|
||||
.wp-block-columns.are-vertically-aligned-bottom{
|
||||
align-items:flex-end;
|
||||
}
|
||||
@media (max-width:781px){
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
|
||||
flex-basis:100% !important;
|
||||
}
|
||||
}
|
||||
@media (min-width:782px){
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{
|
||||
flex-basis:0;
|
||||
flex-grow:1;
|
||||
}
|
||||
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{
|
||||
flex-grow:0;
|
||||
}
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile{
|
||||
flex-wrap:nowrap !important;
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{
|
||||
flex-basis:0;
|
||||
flex-grow:1;
|
||||
}
|
||||
.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{
|
||||
flex-grow:0;
|
||||
}
|
||||
|
||||
:where(.wp-block-columns){
|
||||
margin-bottom:1.75em;
|
||||
}
|
||||
|
||||
:where(.wp-block-columns.has-background){
|
||||
padding:1.25em 2.375em;
|
||||
}
|
||||
|
||||
.wp-block-column{
|
||||
flex-grow:1;
|
||||
min-width:0;
|
||||
overflow-wrap:break-word;
|
||||
word-break:break-word;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-top{
|
||||
align-self:flex-start;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-center{
|
||||
align-self:center;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-bottom{
|
||||
align-self:flex-end;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-stretch{
|
||||
align-self:stretch;
|
||||
}
|
||||
.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{
|
||||
width:100%;
|
||||
}
|
||||
1
wp-includes/blocks/columns/style.min.css
vendored
Normal file
1
wp-includes/blocks/columns/style.min.css
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%}
|
||||
Reference in New Issue
Block a user