| Server IP : 3.93.235.159 / Your IP : 216.73.216.140 Web Server : Apache System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64 User : bitnami ( 1000) PHP Version : 8.2.9 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/themes/hello-biz/modules/settings/components/ |
Upload File : |
<?php
namespace HelloBiz\Modules\Settings\Components;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Settings_Controller {
const SETTINGS_META_KEY = 'ehp_theme_settings';
const SETTINGS_FILTER_NAME = 'hello-plus-theme/settings';
const SETTINGS_DEFAULT_FILTER_NAME = 'hello-plus-theme/settings/default';
const DESCRIPTION_META_TAG = 'description_meta_tag';
const SKIP_LINK = 'skip_link';
const HEADER_FOOTER = 'header_footer';
const PAGE_TITLE = 'page_title';
const HELLO_THEME = 'hello_theme';
public static function get_default_setting(): array {
static $default_setting = null;
if ( is_null( $default_setting ) ) {
$default_setting = [
self::SKIP_LINK => apply_filters( self::SETTINGS_DEFAULT_FILTER_NAME . '/' . self::SKIP_LINK, false ),
self::HEADER_FOOTER => apply_filters( self::SETTINGS_DEFAULT_FILTER_NAME . '/' . self::HEADER_FOOTER, false ),
self::PAGE_TITLE => apply_filters( self::SETTINGS_DEFAULT_FILTER_NAME . '/' . self::PAGE_TITLE, true ),
self::HELLO_THEME => apply_filters( self::SETTINGS_DEFAULT_FILTER_NAME . '/' . self::HELLO_THEME, false ),
self::DESCRIPTION_META_TAG => apply_filters( self::SETTINGS_DEFAULT_FILTER_NAME . '/' . self::DESCRIPTION_META_TAG, false ),
];
}
return $default_setting;
}
public static function get_settings(): array {
$option = get_option( self::SETTINGS_META_KEY, self::get_default_setting() );
return apply_filters( self::SETTINGS_FILTER_NAME, $option );
}
protected static function get_option( string $option_name, $default_value = false ) {
$option = self::get_settings()[ $option_name ] ?? $default_value;
return apply_filters( self::SETTINGS_FILTER_NAME . '/' . $option_name, $option );
}
public static function should_skip_links() {
return self::get_option( self::SKIP_LINK );
}
public static function should_hide_header_footer() {
return self::get_option( self::HEADER_FOOTER );
}
public static function should_hide_page_title() {
return self::get_option( self::PAGE_TITLE );
}
public static function should_hide_hello_theme() {
return self::get_option( self::HELLO_THEME );
}
public static function should_hide_description_meta_tag() {
return self::get_option( self::DESCRIPTION_META_TAG );
}
public function maybe_initialize_settings() {
$settings = get_option( self::SETTINGS_META_KEY );
if ( ! $settings ) {
add_option(
self::SETTINGS_META_KEY,
self::get_default_setting()
);
}
}
public function enqueue_hello_plus_settings_scripts() {
$screen = get_current_screen();
if ( 'hello-biz_page_hello-plus-settings' !== $screen->id ) {
return;
}
$handle = 'hello-biz-settings';
$asset_path = HELLO_BIZ_SCRIPTS_PATH . $handle . '.asset.php';
$asset_url = HELLO_BIZ_SCRIPTS_URL;
if ( ! file_exists( $asset_path ) ) {
throw new \Exception( 'You need to run `npm run build` for the "hello-biz" first.' );
}
$script_asset = require $asset_path;
$script_asset['dependencies'][] = 'wp-util';
wp_enqueue_script(
$handle,
$asset_url . "$handle.js",
$script_asset['dependencies'],
$script_asset['version'],
true
);
wp_set_script_translations( $handle, 'hello-biz' );
}
public function __construct() {
add_action( 'hello-plus/init', [ $this, 'maybe_initialize_settings' ], 9 );
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_hello_plus_settings_scripts' ] );
}
}