Files

3 lines
18 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 admin-modules.min.js.LICENSE.txt */
(()=>{var e={75389:(e,t,r)=>{"use strict";var n=r(73203);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(78983)),i=n(r(42081)),a=n(r(51121)),u=n(r(58724)),s=n(r(71173)),c=n(r(74910));function _createSuper(e){var t=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(e){return!1}}();return function _createSuperInternal(){var r,n=(0,c.default)(e);if(t){var o=(0,c.default)(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return(0,s.default)(this,r)}}var l=function(e){(0,u.default)(MenuHandler,e);var t=_createSuper(MenuHandler);function MenuHandler(){return(0,o.default)(this,MenuHandler),t.apply(this,arguments)}return(0,i.default)(MenuHandler,[{key:"getDefaultSettings",value:function getDefaultSettings(){return{selectors:{currentSubmenuItems:"#adminmenu .current"}}}},{key:"getDefaultElements",value:function getDefaultElements(){var e=this.getSettings();return{$currentSubmenuItems:jQuery(e.selectors.currentSubmenuItems),$adminPageMenuLink:jQuery('a[href="'.concat(e.path,'"]'))}}},{key:"highlightSubMenuItem",value:function highlightSubMenuItem(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:null)||this.elements.$adminPageMenuLink;this.elements.$currentSubmenuItems.length&&this.elements.$currentSubmenuItems.removeClass("current"),e.addClass("current"),e.parent().addClass("current")}},{key:"highlightTopLevelMenuItem",value:function highlightTopLevelMenuItem(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r="wp-has-current-submenu wp-menu-open current";e.parent().addClass(r).removeClass("wp-not-current-submenu"),t&&t.removeClass(r)}},{key:"onInit",value:function onInit(){(0,a.default)((0,c.default)(MenuHandler.prototype),"onInit",this).call(this);var e=this.getSettings();window.location.href.includes(e.path)&&this.highlightSubMenuItem()}}]),MenuHandler}(elementorModules.ViewModule);t.default=l},60834:(e,t,r)=>{"use strict";var n=r(73203);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(50824)),i=n(r(10029)),a=n(r(78983)),u=n(r(42081)),s=n(r(77266)),c=n(r(58724)),l=n(r(71173)),f=n(r(74910)),p=n(r(93231));function _createSuper(e){var t=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(e){return!1}}();return function _createSuperInternal(){var r,n=(0,f.default)(e);if(t){var o=(0,f.default)(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return(0,l.default)(this,r)}}var d=function(e){(0,c.default)(_default,e);var t,r=_createSuper(_default);function _default(){var e;(0,a.default)(this,_default);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return e=r.call.apply(r,[this].concat(n)),(0,p.default)((0,s.default)(e),"introductionMap",null),e.initDialog(),e}return(0,u.default)(_default,[{key:"setIntroductionMap",value:function setIntroductionMap(e){this.introductionMap=e}},{key:"getIntroductionMap",value:function getIntroductionMap(){return this.introductionMap||elementor.config.user.introduction}},{key:"getDefaultSettings",value:function getDefaultSettings(){return{dialogType:"buttons",dialogOptions:{effects:{hide:"hide",show:"show"},hide:{onBackgroundClick:!1}}}}},{key:"initDialog",value:function initDialog(){var e,t=this;this.getDialog=function(){if(!e){var r=t.getSettings();e=elementorCommon.dialogsManager.createWidget(r.dialogType,r.dialogOptions),r.onDialogInitCallback&&r.onDialogInitCallback.call(t,e)}return e}}},{key:"show",value:function show(e){if(!this.introductionViewed){var t=this.getDialog();e&&t.setSettings("position",{of:e}),t.show()}}},{key:"introductionViewed",get:function get(){var e=this.getSettings("introductionK