Hotel Raxa Dev 5b1e2453c7 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

50 lines
995 B
PHP

<?php
namespace Elementor\App\Modules\Onboarding;
use Elementor\Tracker;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Features_Usage {
const ONBOARDING_FEATURES_OPTION = '_elementor_onboarding_features';
public function register() {
if ( ! Tracker::is_allow_track() ) {
return;
}
add_filter( 'elementor/tracker/send_tracking_data_params', function ( array $params ) {
$params['usages']['onboarding_features'] = $this->get_usage_data();
return $params;
} );
}
public function save_onboarding_features( $raw_post_data ) {
if ( empty( $raw_post_data ) ) {
return;
}
$post_data = json_decode( $raw_post_data, true );
if ( empty( $post_data['features'] ) ) {
return;
}
update_option( static::ONBOARDING_FEATURES_OPTION, $post_data['features'] );
return [
'status' => 'success',
'payload' => [],
];
}
private function get_usage_data() {
return get_option( static::ONBOARDING_FEATURES_OPTION, [] );
}
}