first commit

This commit is contained in:
Roman Pyrih
2026-04-21 15:48:41 +02:00
commit 7483681901
10216 changed files with 3236626 additions and 0 deletions

View File

@@ -0,0 +1,140 @@
<?php
/**
* Plugin settings helper.
*
* @package YachtBooking
*/
namespace YachtBooking;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Settings helper class.
*/
class Settings {
/**
* Check if online booking is enabled.
*
* @return bool
*/
public static function is_booking_enabled() {
return '1' === get_option( 'yacht_booking_enabled', '1' );
}
/**
* Get default booking status.
*
* @return string
*/
public static function get_default_status() {
$status = get_option( 'yacht_booking_default_status', 'pending' );
return in_array( $status, array( 'pending', 'confirmed' ), true ) ? $status : 'pending';
}
/**
* Get email from name.
*
* @return string
*/
public static function get_email_from_name() {
$value = get_option( 'yacht_booking_email_from_name', get_bloginfo( 'name' ) );
return is_string( $value ) && '' !== $value ? $value : get_bloginfo( 'name' );
}
/**
* Get email from address.
*
* @return string
*/
public static function get_email_from_address() {
$value = get_option( 'yacht_booking_email_from', '' );
// Backward compatibility with older option name.
if ( empty( $value ) ) {
$value = get_option( 'yacht_booking_email_from_address', get_option( 'admin_email' ) );
}
return is_email( $value ) ? $value : get_option( 'admin_email' );
}
/**
* Get supported date formats.
*
* @return array
*/
public static function get_supported_date_formats() {
return array( 'Y-m-d', 'd/m/Y', 'm/d/Y', 'd.m.Y' );
}
/**
* Get date format.
*
* @return string
*/
public static function get_date_format() {
$format = get_option( 'yacht_booking_date_format', 'Y-m-d' );
return in_array( $format, self::get_supported_date_formats(), true ) ? $format : 'Y-m-d';
}
/**
* Format date using plugin settings.
*
* @param string $date Date string.
* @return string
*/
public static function format_date( $date ) {
$timestamp = strtotime( (string) $date );
return false !== $timestamp ? date_i18n( self::get_date_format(), $timestamp ) : '';
}
/**
* Get currency symbol.
*
* @return string
*/
public static function get_currency_symbol() {
$symbol = get_option( 'yacht_booking_currency_symbol', 'zł' );
$symbol = is_string( $symbol ) ? trim( $symbol ) : '';
return '' !== $symbol ? $symbol : 'zł';
}
/**
* Format price using plugin settings.
*
* @param float $amount Amount.
* @return string
*/
public static function format_price( $amount ) {
return trim( number_format_i18n( (float) $amount, 2 ) . ' ' . self::get_currency_symbol() );
}
/**
* Get terms page ID.
*
* @return int
*/
public static function get_terms_page_id() {
return absint( get_option( 'yacht_booking_terms_page_id', 0 ) );
}
/**
* Get terms page URL.
*
* @return string
*/
public static function get_terms_page_url() {
$page_id = self::get_terms_page_id();
if ( ! $page_id ) {
return '';
}
$url = get_permalink( $page_id );
return $url ? $url : '';
}
}