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:
@@ -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 you’re 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 can’t 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 can’t guarantee it’ll work on all WordPress sites or hosting environments.</p>
|
||||
<p>If you’ve tried all the troubleshooting steps and you’re 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 you’re having trouble with a specific item from ThemeForest or CodeCanyon, it’s best you browse to the Theme or Plugin item page, visit the ‘support’ tab and follow the next steps.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user