Files

27 lines
305 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
/*!
PLUGIN: SLIDER REVOLUTION 7.0
MODULE: MAIN PAGE MODULE
VERSION: 1.0.0
DATE: 2023-01-03
AUTHOR: Krisztian H. & Sahil P.
COMPANY: ThemePunch OHG.
UPDATES & DOCS: https://www.themepunch.com/support-center ║
GET LICENSE: https://www.themepunch.com/links/slider_revolution_wordpre ║
ss_regular_license
LICENSE:
Copyright (c) 2023, ThemePunch. All rights reserved.
This work is subject to the terms at:
https://www.themepunch.com/links/slider_revolution_wordpress_regular_licen ║
se (Regular / Extended)
*/
!function(){"use strict";window.SR7??={},window._tpt??={},SR7.F??={},SR7.G??={},SR7.G.breakPoints??=[1600,1240,1024,778,480],SR7.version="Slider Revolution 7.0.0",SR7.F.init=function(){if(void 0===_tpt.removeEmptyTags)return setTimeout(SR7.F.init,49);if(SR7.initialised)return void(SR7.E.elementorBackend&&_tpt.checkResources(["DOM","sr7min","module","tpgsap","canvas","draw","save","csssr7"]).then((()=>{SR7.F.module.collect()})));const e=document.getElementsByClassName("rs-p-wp-fix");Array.from(e).forEach((e=>{null!==e.parentNode&&void 0!==e.parentNode&&(_tpt.removeEmptyTags(e.querySelectorAll("span")),_tpt.removeEmptyTags(e.parentNode.querySelectorAll('p:not([role="status"])')))}));let t=!0;for(let e in SR7.PMH){if(!_tpt.hop(SR7.PMH,e))continue;t=!0===SR7.PMH[e].state,SR7.PMH[e].cn>99&&SR7.PMH[e].fn()}if(t&&(SR7.devMode||2===_tpt.R?.module?.status)){SR7.initialised=!0,_tpt.regResource({id:"DOM"});for(let e of SR7.E.modules)SR7.E.resources[e]??=SR7.E.plugin_url+"public/js/"+e+".js";for(let e of SR7.E.libs)SR7.E.resources[e]??=SR7.E.plugin_url+"public/js/libs/"+e.toLowerCase()+".js";for(let e of SR7.E.css)SR7.E.resources[e]??=SR7.E.plugin_url+"public/css/"+e.replace("css","sr7.")+".css";SR7.E.resources.csssr7=SR7.E.plugin_url+"public/css/sr7.css";for(let e in SR7.E.resources)_tpt.hop(SR7.E.resources,e)&&("css"==SR7.E.resources[e].slice(-3)?_tpt.regResource({id:e,css:SR7.E.resources[e]}):_tpt.regResource({id:e,url:SR7.E.resources[e]}));2!==_tpt.R?.csssr7?.status&&"1"===getComputedStyle(document.body).getPropertyValue("--sr-7-css-loaded")&&(_tpt.R.csssr7={status:2}),_tpt.checkResources(["DOM","sr7min","module","tpgsap","canvas","draw","save","csssr7"]).then((()=>{SR7.F.module.collect()}))}else setTimeout(SR7.F.init,19)},SR7.F.regAddonResources=e=>{for(let t in e)if(_tpt.hop(e,t)){let s=t.replace("revslider-","").replace("-addon","");SR7.E.resources[s]=e[t],"css"==SR7.E.resources[s].slice(-3)?_tpt.regResource({id:s,css:SR7.E.resources[t]}):_tpt.regResource({id:s,url:SR7.E.resources[t]})}},SR7.F.modal={register:e=>{let{alias:t,id:s,speed:i,bg:a,pS:r,h:o,v:l}=e;if(s??=SR7.F.module.getIdByAlias(t),void 0!==s&&void 0!==SR7.M[s]&&SR7.M?.[s]?.c?.module?.dataset?.modal){let e=_tpt.strSetToObj(SR7.M?.[s]?.c?.module?.dataset?.modal??"");void 0!==e.bg&&(a=e.bg),void 0!==e.sp&&(i=parseInt(e.sp)/1e3),e.pS,e.h,e.v}SR7.F.modal.modals??={},SR7.F.modal.modals[t]={id:s,alias:t,speed:i,bg:a,pS:r,h:o,v:l},SR7.M[s]&&(SR7.M[s].modalRegistered=!0)},build:()=>{document.querySelector("sr7-modals")||(SR7.F.modal.wrap=document.createElement("sr7-modals"),SR7.F.modal.wrap.innerHTML="<sr7-modal-underlay></sr7-modal-underlay>",SR7.F.modal.cover=SR7.F.modal.wrap.getElementsByTagName("sr7-modal-underlay")[0],SR7.F.modal.cover.style.opacity=0,SR7.F.modal.cover.style.zIndex=0,document.body.appendChild(SR7.F.modal.wrap),SR7.F.modal.wrap.addEventListener("click",(e=>{"SR7-MODAL-UNDERLAY"!=e.target.tagName&&"SR7-MODALS"!=e.target.tagName||SR7.F.modal.close()})))},updatePos:()=>{let e=SR7.F.module.getIdByAlias(SR7.F.modal.requested),t=SR7.M?.[e]??void 0,s=SR7.F.modal.modals[SR7.F.modal.requested],i=t?.c?.module?.style??void 0;if(null==i)return;i.display="block",i.opacity=1,i.position="absolute";let a=SR7.gVal?.(t.settings.size.width,e,0,!1)??t.settings.size.width[0]??"100%";i.width="center"!==s.h?"auto":t.settings.size.fullWidth?"100%":a+"px",i.left="center"!=s.h||t.settings.size.fullWidth?"right"!==s.h?"0px":"auto":"50%",i.right="right"==s.h?"0px":"auto";let r="center"!=s.h||t.settings.size.fullWidth?"0px":"-50%";if(t.dims.module.h<_tpt.winH)return i.transform="middle"==s.v?"translate("+r+", -50%)":"translate("+r+", 0px)",void("center"!=s.h||t.settings.size.fullWidth?i.inset="middle"==s.v?"50% 0px auto":"top"==s.v?"0px 0px auto 0px":"auto 0px 0px 0px":i.inset="middle"==s.v?"50% 50% auto 50%":"top"==s.v?"0px 50% auto 50%":"auto 50% 0px 50%");i.top="0px",i.transform="translate("+r+", 0px)"},underlay:e=>{let t=SR7.M?.[SR7.F.module.getIdByAlias(SR7.F.modal.requested)]??void 0,s=SR7.F.modal?.modals?.[SR7.F.modal.requested],i=t?.c?.module??void 0,a=SR7.F.modal.wrap.s