Release v0.6.1 - Bug fixes and enhancements
All checks were successful
Create Release Package / build-release (push) Successful in 1m1s
All checks were successful
Create Release Package / build-release (push) Successful in 1m1s
New Features: - Auto-update system with configurable check frequency - Updates tab in settings with manual check button - Localhost development mode bypasses license validation - Extended general settings (address, contact, social media) - Pricing settings split into subtabs - Guest ID/passport encryption using AES-256-CBC - Guest auto-creation from booking form Bug Fixes: - Fixed Booking admin issues with auto-draft status - Fixed guest dropdown loading in booking form - Fixed booking history display on Guest edit page - Fixed service pricing meta box (Gutenberg hiding meta boxes) Changes: - Admin submenu reordered for better organization - Booking title shows guest name and dates (room removed) - Service, Guest, Booking use classic editor (not Gutenberg) - Settings tabs flush with content (no gap) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -126,13 +126,60 @@ final class Manager {
|
||||
/**
|
||||
* Check if license is valid.
|
||||
*
|
||||
* Localhost environments bypass the license check to allow
|
||||
* full functionality during development.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function is_license_valid(): bool {
|
||||
// Bypass license check for localhost environments.
|
||||
if ( self::is_localhost() ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$status = get_option( self::OPTION_LICENSE_STATUS, 'unchecked' );
|
||||
return 'valid' === $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if running on localhost.
|
||||
*
|
||||
* Detects common local development environments:
|
||||
* - localhost / 127.0.0.1 / ::1
|
||||
* - .local, .test, .localhost domains
|
||||
* - Private IP ranges (192.168.x.x, 10.x.x.x, 172.16-31.x.x)
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function is_localhost(): bool {
|
||||
$site_url = get_site_url();
|
||||
$parsed = wp_parse_url( $site_url );
|
||||
$host = $parsed['host'] ?? '';
|
||||
|
||||
// Check for localhost variations.
|
||||
if ( in_array( $host, array( 'localhost', '127.0.0.1', '::1' ), true ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check for common local development TLDs.
|
||||
$local_tlds = array( '.local', '.test', '.localhost', '.dev', '.ddev.site' );
|
||||
foreach ( $local_tlds as $tld ) {
|
||||
if ( str_ends_with( $host, $tld ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Check for private IP ranges.
|
||||
if ( filter_var( $host, FILTER_VALIDATE_IP ) ) {
|
||||
// 10.x.x.x, 172.16-31.x.x, 192.168.x.x.
|
||||
if ( ! filter_var( $host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get license key.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user