Files

3 lines
51 KiB
JavaScript
Raw Permalink Normal View History

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
/*! elementor - v3.24.0 - 15-10-2024 */
/*! For license information please see editor-modules.min.js.LICENSE.txt */
(()=>{var t={61909:(t,r,o)=>{"use strict";var i=o(38003).__,a=o(73203);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var l=a(o(7501)),u=a(o(40131)),c=a(o(78983)),d=a(o(42081)),p=a(o(77266)),h=a(o(58724)),v=a(o(71173)),y=a(o(74910)),g=a(o(93231)),m=a(o(42618)),_=a(o(63225)),b=a(o(40871));function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function _createSuperInternal(){var o,i=(0,y.default)(t);if(r){var a=(0,y.default)(this).constructor;o=Reflect.construct(i,arguments,a)}else o=i.apply(this,arguments);return(0,v.default)(this,o)}}var C=function(t){(0,h.default)(Container,t);var r=_createSuper(Container);function Container(t){var o;if((0,c.default)(this,Container),o=r.call(this,t),(0,g.default)((0,p.default)(o),"type",void 0),(0,g.default)((0,p.default)(o),"id",void 0),(0,g.default)((0,p.default)(o),"document",void 0),(0,g.default)((0,p.default)(o),"model",void 0),(0,g.default)((0,p.default)(o),"settings",void 0),(0,g.default)((0,p.default)(o),"view",void 0),(0,g.default)((0,p.default)(o),"parent",void 0),(0,g.default)((0,p.default)(o),"children",new b.default),(0,g.default)((0,p.default)(o),"dynamic",void 0),(0,g.default)((0,p.default)(o),"globals",void 0),(0,g.default)((0,p.default)(o),"label",void 0),(0,g.default)((0,p.default)(o),"controls",{}),(0,g.default)((0,p.default)(o),"repeaters",{}),(0,g.default)((0,p.default)(o),"renderer",void 0),(0,g.default)((0,p.default)(o),"panel",void 0),(0,g.default)((0,p.default)(o),"placeholders",{}),o.validateArgs(t),0===(t=Object.entries(t)).length)throw Error("Container cannot be empty.");return t.forEach((function(t){var r=(0,u.default)(t,2),i=r[0],a=r[1];o[i]=void 0===a?o[i]:a})),void 0===o.renderer&&(o.renderer=(0,p.default)(o)),o.document||(o.document=elementor.documents.getCurrent()),o.dynamic=new Backbone.Model(o.settings.get("__dynamic__")),o.globals=new Backbone.Model(o.settings.get("__globals__")),o.panel=new _.default((0,p.default)(o)),o.initialize(),o}return(0,d.default)(Container,[{key:"initialize",value:function initialize(){this.isViewElement()&&(this.addToParent(),this.handleChildrenRecursive(),this.view.on("destroy",this.removeFromParent.bind(this))),this.handleRepeaterChildren()}},{key:"validateArgs",value:function validateArgs(t){this.requireArgumentType("type","string",t),this.requireArgumentType("id","string",t),this.requireArgumentInstance("settings",Backbone.Model,t),this.requireArgumentInstance("model",Backbone.Model,t),!1!==t.parent&&this.requireArgumentInstance("parent",elementorModules.editor.Container,t)}},{key:"getGroupRelatedControls",value:function getGroupRelatedControls(t){var r=this,o={};return Object.keys(t).forEach((function(t){Object.values(r.controls).forEach((function(i){var a;if(t===i.name)o[i.name]=i;else if(null!==(a=r.controls[t])&&void 0!==a&&a.groupPrefix){var l=r.controls[t].groupPrefix;i.name.toString().startsWith(l)&&(o[i.name]=i)}}))})),o}},{key:"getAffectingControls",value:function getAffectingControls(){var t=this,r={},o=this.settings.getActiveControls();return Object.entries(o).forEach((function(o){var i,a=(0,u.default)(o,2),c=a[0],d=a[1],p=t.settings.get(d.name);if(d.global&&(null==p||!p.length)&&(null!==(i=t.globals.get(d.name))&&void 0!==i&&i.length||t.getGlobalDefault(c).length))return d.global.utilized=!0,void(r[c]=d);if(d.dynamic&&t.dynamic.get(c))return d.dynamic.utilized=!0,void(r[c]=d);p!==d.default&&p&&("object"===(0,l.default)(p)&&Object.values(p).join()===Object.values(d.default).join()||(r[c]=d))})),r}},{key:"getParentAncestry",value:function getParentAncestry(){for(var t=[],r=this;r;)t.push(r),r=r.parent;return t}},{key:"handleChildrenRecursive",value:function handleChildrenRecursive(){var t;null!==(t=this.view.children)&&void 0!==t&&t.length?Object.values(this.view.children._views).forEach((function(t){if(t.container){var r=t.contai