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

89 lines
2.6 KiB
PHP

<?php
/*
Plugin Name: CMB2 Field Type: Font Awesome
Plugin URI: https://github.com/serkanalgur/cmb2-field-faiconselect
GitHub Plugin URI: https://github.com/serkanalgur/cmb2-field-faiconselect
Description: Font Awesome icon selector for CMB2
Version: 1.4
Author: Serkan Algur
Author URI: https://wpadami.com/
License: GPLv3
*/
/**
* Class IConSelectFA
*/
if( !class_exists( 'CMBS_SerkanA_Plugin_IConSelectFA' ) ) {
class CMBS_SerkanA_Plugin_IConSelectFA {
const VERSION = '1.4';
public function __construct() {
add_filter( 'cmb2_render_faiconselect', array( $this, 'render_faiconselect' ), 10, 5 );
}
public function render_faiconselect( $field, $field_escaped_value, $field_object_id, $field_object_type, $field_type_object ) {
$this->Sesetup_my_cssjs( $field );
if ( version_compare( CMB2_VERSION, '2.2.2', '>=' ) ) {
$field_type_object->type = new CMB2_Type_Select( $field_type_object );
}
echo $field_type_object->select(
array(
'class' => 'iconselectfa',
'desc' => $field_type_object->_desc( true ),
'options' => '<option></option>' . $field_type_object->concat_items(),
)
);
}
public function Sesetup_my_cssjs( $field ) {
$asset_path = apply_filters( 'sa_cmb2_field_faiconselect_asset_path', plugins_url( '', __FILE__ ) );
$font_args = $field->args( 'attributes', 'fatype' );
$font_awesome_ver = $field->args( 'attributes', 'faver' );
if ( $font_awesome_ver && $font_awesome_ver === 5 ) {
// loads all over admin via enqueue.php
// wp_enqueue_style( 'fontawesome5', 'https://use.fontawesome.com/releases/v5.10.2/css/all.css', array( 'jqueryfontselector' ), self::VERSION, 'all' );
} else {
wp_enqueue_style( 'fontawesomeiselect', $asset_path . '/css/faws/css/font-awesome.min.css', array( 'jqueryfontselector' ), self::VERSION );
}
wp_enqueue_style( 'jqueryfontselectormain', $asset_path . '/css/css/base/jquery.fonticonpicker.min.css', array(), self::VERSION );
wp_enqueue_style( 'jqueryfontselector', $asset_path . '/css/css/themes/grey-theme/jquery.fonticonpicker.grey.min.css', array(), self::VERSION );
wp_enqueue_script( 'jqueryfontselector', $asset_path . '/js/jquery.fonticonpicker.min.js', array( 'jquery' ), self::VERSION, true );
wp_enqueue_script( 'mainjsiselect', $asset_path . '/js/main.js', array( 'jqueryfontselector' ), self::VERSION, true );
}
}
function returnRayFaPre() {
include 'predefined-array-fontawesome.php';
return $fontAwesome;
}
function returnRayFapsa() {
include 'predefined-array-fontawesome.php';
$fa5a = array_combine( $fa5all, $fa5all );
return $fa5a;
}
new CMBS_SerkanA_Plugin_IConSelectFA();
}