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>
This commit is contained in:
Hotel Raxa Dev
2025-07-11 07:43:22 +02:00
commit 5b1e2453c7
9816 changed files with 2784509 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
<?php
/**
* Help panel partial
*
* @package Envato_Market
* @since 2.0.1
*/
?>
<div id="help" class="panel">
<div class="envato-market-blocks">
<div class="envato-market-block">
<h3>Troubleshooting:</h3>
<p>If youre having trouble with the plugin, please</p>
<ol>
<li>Confirm the old <code>Envato Toolkit</code> plugin is not installed.</li>
<li>Confirm the latest version of WordPress is installed.</li>
<li>Confirm the latest version of the <a href="https://envato.com/market-plugin/" target="_blank">Envato Market</a> plugin is installed.</li>
<li>Try creating a new API token has from the <a href="<?php echo envato_market()->admin()->get_generate_token_url(); ?>" target="_blank">build.envato.com</a> website - ensure only the following permissions have been granted
<ul>
<li>View and search Envato sites</li>
<li>Download your purchased items</li>
<li>List purchases you've made</li>
</ul>
</li>
<li>Check with the hosting provider to ensure the API connection to <code>api.envato.com</code> is not blocked.</li>
<li>Check with the hosting provider that the minimum TLS version is 1.2 or above on the server.</li>
<li>If you cant see your items - check with the item author to confirm the Theme or Plugin is compatible with the Envato Market plugin.</li>
<li>Confirm your Envato account is still active and the items are still visible from <a href="https://themeforest.net/downloads" target="_blank">your downloads page</a>.</li>
<li>Note - if an item has been recently updated, it may take up to 24 hours for the latest version to appear in the Envato Market plugin.</li>
</ol>
</div>
<div class="envato-market-block">
<h3>Health Check:</h3>
<div class="envato-market-healthcheck">
Problem starting healthcheck. Please check javascript console for errors.
</div>
<h3>Support:</h3>
<p>The Envato Market plugin is maintained - we ensure it works best on the latest version of WordPress and on a modern hosting platform, however we cant guarantee itll work on all WordPress sites or hosting environments.</p>
<p>If youve tried all the troubleshooting steps and youre still unable to get the Envato Market plugin to work on your site/hosting, at this time, our advice is to remove the Envato Market plugin and instead visit the Downloads section of ThemeForest/CodeCanyon to download the latest version of your items.</p>
<p>If youre having trouble with a specific item from ThemeForest or CodeCanyon, its best you browse to the Theme or Plugin item page, visit the support tab and follow the next steps.
</p>
</div>
</div>
</div>

View File

@@ -0,0 +1,16 @@
<?php
/**
* Intro partial
*
* @package Envato_Market
* @since 1.0.0
*/
?>
<div class="col">
<h1 class="about-title"><img class="about-logo" src="<?php echo envato_market()->get_plugin_url(); ?>images/envato-market-logo.svg" alt="Envato Market"><sup><?php echo esc_html( envato_market()->get_version() ); ?></sup></h1>
<p><?php esc_html_e( 'Welcome!', 'envato-market' ); ?></p>
<p><?php esc_html_e( 'This plugin can install WordPress themes and plugins purchased from ThemeForest & CodeCanyon by connecting with the Envato Market API using a secure OAuth personal token. Once your themes & plugins are installed WordPress will periodically check for updates, so keeping your items up to date is as simple as a few clicks.', 'envato-market' ); ?></p>
<p><strong><?php printf( esc_html__( 'Find out more at %1$senvato.com%2$s.', 'envato-market' ), '<a href="https://envato.com/market-plugin/" target="_blank">', '</a>' ); ?></strong></p>
</div>

View File

@@ -0,0 +1,22 @@
<?php
/**
* Plugins panel partial
*
* @package Envato_Market
* @since 1.0.0
*/
$plugins = envato_market()->items()->plugins( 'purchased' );
?>
<div id="plugins" class="panel <?php echo empty( $plugins ) ? 'hidden' : ''; ?>">
<div class="envato-market-blocks">
<?php
if ( ! empty( $plugins ) ) {
envato_market_plugins_column( 'active' );
envato_market_plugins_column( 'installed' );
envato_market_plugins_column( 'install' );
}
?>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<?php
/**
* Settings panel partial
*
* @package Envato_Market
* @since 1.0.0
*/
$token = envato_market()->get_option( 'token' );
$items = envato_market()->get_option( 'items', array() );
?>
<div id="settings" class="panel">
<div class="envato-market-blocks">
<?php settings_fields( envato_market()->get_slug() ); ?>
<?php Envato_Market_Admin::do_settings_sections( envato_market()->get_slug(), 2 ); ?>
</div>
<p class="submit">
<input type="submit" name="submit" id="submit" class="button button-primary" value="<?php esc_html_e( 'Save Changes', 'envato-market' ); ?>" />
<?php if ( ( '' !== $token || ! empty( $items ) ) && 10 !== has_action( 'admin_notices', array( $this, 'error_notice' ) ) ) { ?>
<a href="<?php echo esc_url( add_query_arg( array( 'authorization' => 'check' ), envato_market()->get_page_url() ) ); ?>" class="button button-secondary auth-check-button" style="margin:0 5px"><?php esc_html_e( 'Test API Connection', 'envato-market' ); ?></a>
<?php } ?>
</p>
</div>

View File

@@ -0,0 +1,50 @@
<?php
/**
* Tabs partial
*
* @package Envato_Market
* @since 1.0.0
*/
$tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : '';
$themes = envato_market()->items()->themes( 'purchased' );
$plugins = envato_market()->items()->plugins( 'purchased' );
?>
<h2 class="nav-tab-wrapper">
<?php
// Themes tab.
$theme_class = array();
if ( ! empty( $themes ) ) {
if ( empty( $tab ) ) {
$tab = 'themes';
}
if ( 'themes' === $tab ) {
$theme_class[] = 'nav-tab-active';
}
} else {
$theme_class[] = 'hidden';
}
echo '<a href="#themes" data-id="theme" class="nav-tab ' . esc_attr( implode( ' ', $theme_class ) ) . '">' . esc_html__( 'Themes', 'envato-market' ) . '</a>';
// Plugins tab.
$plugin_class = array();
if ( ! empty( $plugins ) ) {
if ( empty( $tab ) ) {
$tab = 'plugins';
}
if ( 'plugins' === $tab ) {
$plugin_class[] = 'nav-tab-active';
}
} else {
$plugin_class[] = 'hidden';
}
echo '<a href="#plugins" data-id="plugin" class="nav-tab ' . esc_attr( implode( ' ', $plugin_class ) ) . '">' . esc_html__( 'Plugins', 'envato-market' ) . '</a>';
// Settings tab.
echo '<a href="#settings" class="nav-tab ' . esc_attr( 'settings' === $tab || empty( $tab ) ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Settings', 'envato-market' ) . '</a>';
// Help tab.
echo '<a href="#help" class="nav-tab ' . esc_attr( 'help' === $tab ? 'nav-tab-active' : '' ) . '">' . esc_html__( 'Help', 'envato-market' ) . '</a>';
?>
</h2>

View File

@@ -0,0 +1,22 @@
<?php
/**
* Themes panel partial
*
* @package Envato_Market
* @since 1.0.0
*/
$themes = envato_market()->items()->themes( 'purchased' );
?>
<div id="themes" class="panel <?php echo empty( $themes ) ? 'hidden' : ''; ?>">
<div class="envato-market-blocks">
<?php
if ( ! empty( $themes ) ) {
envato_market_themes_column( 'active' );
envato_market_themes_column( 'installed' );
envato_market_themes_column( 'install' );
}
?>
</div>
</div>