🏨 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>
70 lines
1.8 KiB
PHP
70 lines
1.8 KiB
PHP
<?php
|
|
namespace YahnisElsts\PluginUpdateChecker\v5p4\Theme;
|
|
|
|
use YahnisElsts\PluginUpdateChecker\v5p4\InstalledPackage;
|
|
|
|
if ( !class_exists(Package::class, false) ):
|
|
|
|
class Package extends InstalledPackage {
|
|
/**
|
|
* @var string Theme directory name.
|
|
*/
|
|
protected $stylesheet;
|
|
|
|
/**
|
|
* @var \WP_Theme Theme object.
|
|
*/
|
|
protected $theme;
|
|
|
|
public function __construct($stylesheet, $updateChecker) {
|
|
$this->stylesheet = $stylesheet;
|
|
$this->theme = wp_get_theme($this->stylesheet);
|
|
|
|
parent::__construct($updateChecker);
|
|
}
|
|
|
|
public function getInstalledVersion() {
|
|
return $this->theme->get('Version');
|
|
}
|
|
|
|
public function getAbsoluteDirectoryPath() {
|
|
if ( method_exists($this->theme, 'get_stylesheet_directory') ) {
|
|
return $this->theme->get_stylesheet_directory(); //Available since WP 3.4.
|
|
}
|
|
return get_theme_root($this->stylesheet) . '/' . $this->stylesheet;
|
|
}
|
|
|
|
/**
|
|
* Get the value of a specific plugin or theme header.
|
|
*
|
|
* @param string $headerName
|
|
* @param string $defaultValue
|
|
* @return string Either the value of the header, or $defaultValue if the header doesn't exist or is empty.
|
|
*/
|
|
public function getHeaderValue($headerName, $defaultValue = '') {
|
|
$value = $this->theme->get($headerName);
|
|
if ( ($headerName === false) || ($headerName === '') ) {
|
|
return $defaultValue;
|
|
}
|
|
return $value;
|
|
}
|
|
|
|
protected function getHeaderNames() {
|
|
return array(
|
|
'Name' => 'Theme Name',
|
|
'ThemeURI' => 'Theme URI',
|
|
'Description' => 'Description',
|
|
'Author' => 'Author',
|
|
'AuthorURI' => 'Author URI',
|
|
'Version' => 'Version',
|
|
'Template' => 'Template',
|
|
'Status' => 'Status',
|
|
'Tags' => 'Tags',
|
|
'TextDomain' => 'Text Domain',
|
|
'DomainPath' => 'Domain Path',
|
|
);
|
|
}
|
|
}
|
|
|
|
endif;
|