Files

1 line
8.0 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
(function(a){a(document).ready(function(){jQuery("#booking-form").on("submit",function(u){var t=jQuery("#eagle_booking_name");var q=jQuery("#eagle_booking_surname");var s=jQuery("#eagle_booking_email");var r=jQuery("#eagle_booking_phone");var v=jQuery("#eagle_booking_terms");if(t.val()===""){t.addClass("empty");u.preventDefault()}if(q.val()===""){q.addClass("empty");u.preventDefault()}if(s.val()===""){s.addClass("empty");u.preventDefault()}if(r.val()===""){r.addClass("empty");u.preventDefault()}if(!v.is(":checked")){v.addClass("empty");u.preventDefault()}a("#booking-form .form-control, #eagle_booking_terms").on("focus",function(){a(this).removeClass("empty")})});jQuery("#room-booking-form, #search-form").on("submit",function(r){var q=jQuery("#eagle_booking_dates");if(q.val()===""){r.preventDefault();a(".datepicker").click()}});var e=a(".checkout-payment-tabs");if(e.length){e.tabs()}var c=a("#wpadminbar");var i=a("header");var j=a(".sticky-sidebar");if(c.length&&c.is(":visible")){var g=c.height()}else{var g=0}if(i.hasClass("fixed")){var f=i.height()}else{var f=10}var l=g+f;if(j.length){var b=new StickySidebar(".sticky-sidebar",{topSpacing:l,bottomSpacing:0,containerSelector:".container",minWidth:991})}var n=new Date(),d=eb_js_settings.eagle_booking_date_format.toUpperCase(),k=a(".datepicker");a(".search-booking-dates").each(function(){var r=Cookies.get("eagle_booking_checkin"),q=Cookies.get("eagle_booking_checkout");a(".search-booking-dates").daterangepicker({autoUpdateInput:false,autoApply:true,alwaysShowCalendars:true,minDate:n}),a(".search-booking-dates").on("apply.daterangepicker",function(w,v){var s=v.startDate.format(d),u=v.endDate.format(d);a(this).val(s+" → "+u),a('input[name="eagle_booking_checkin"]').val(s),a('input[name="eagle_booking_checkout"]').val(u),Cookies.set("eagle_booking_checkin",s,{expires:7}),Cookies.set("eagle_booking_checkout",u,{expires:7});if(a("div").hasClass("search-filters")){m()}if(a("div").hasClass("search-filters")||a("div").hasClass("calendar")){h()}})});function h(){var q=a('input[name="eagle_booking_checkin').val();var v=a('input[name="eagle_booking_checkout').val();var u=moment(q,d);var r=moment(v,d);var s=(new Date(r))-(new Date(u));var t=s/(1000*60*60*24);if(t<0){var t="0"}a("#eagle_booking_nights").val(t)}a("#eagle_booking_slider_range").ionRangeSlider({type:"double",skin:"round",grid:true,min:0,max:1000,from:eb_js_settings.eagle_booking_price_range_min,to:eb_js_settings.eagle_booking_price_range_max,prefix:"$",onChange:function(q){m()},});a("#eagle_booking_slider_range").ionRangeSlider({disable:true,});function o(){var q=jQuery("#eagle_booking_checkbox_services").val();var r=jQuery("#eagle_booking_form_trip_price").val();jQuery.get(eagle_booking_my_vars_final_price.eagle_booking_ajaxurl_final_price,{action:"eagle_booking_final_price_php",eagle_booking_checkbox_services:q,eagle_booking_form_final_price:r},function(s){jQuery("#eagle_booking_final_trip_price span").empty();jQuery("#eagle_booking_final_trip_price span").text(s);jQuery("#eagle_booking_form_final_price").val(s)})}a(".eagle_booking_checkbox_service").change(function(){if(a(this).is(":checked")){var s=a(this).val();var v=a("#eagle_booking_checkbox_services").val();a("#eagle_booking_checkbox_services").val(s+v);var q=a(this).attr("data-id");var r=a("#eagle_booking_checkbox_services_id").val();a("#eagle_booking_checkbox_services_id").val(q+r);o()}else{var s=a(this).val();var v=a("#eagle_booking_checkbox_services").val();var u=v.replace(s,"");a("#eagle_booking_checkbox_services").val(u);var q=a(this).attr("data-id");var r=a("#eagle_booking_checkbox_services_id").val();var t=r.replace(q,"");a("#eagle_booking_checkbox_services_id").val(t);o()}});a(".eagle_booking_search_service").change(function(){if(a(this).is(":checked")){var q=a(this).val();var s=a("#eagle_booking_services").val();a("#eagle_booking_services").val(q+s);m()}else{var q=a(this).val();var s=a("#eagle_booking_services").val();var r=s.replace(q,"");a("#eagle_booking_services").val(r);m()}});a(".eagle_booking_toogle_services_open_content").click(function(){a(