if (!class_exists('WhiteC_Theme_Setup')) {
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* @since 1.0.0
*/
class WhiteC_Theme_Setup
{
/**
* A reference to an instance of this class.
*
* @since 1.0.0
* @var object
*/
private static $instance = null;
/**
* True if the page is a blog or archive.
*
* @since 1.0.0
* @var Boolean
*/
private $is_blog = false;
/**
* Sidebar position.
*
* @since 1.0.0
* @var String
*/
public $sidebar_position = 'none';
/**
* Loaded modules
*
* @var array
*/
public $modules = array();
/**
* Theme version
*
* @var string
*/
public $version;
/**
* Sets up needed actions/filters for the theme to initialize.
*
* @since 1.0.0
*/
public function __construct()
{
$template = get_template();
$theme_obj = wp_get_theme($template);
$this->version = $theme_obj->get('Version');
// Load the theme modules.
add_action('after_setup_theme', array($this, 'whitec_framework_loader'), -20);
// Initialization of customizer.
add_action('after_setup_theme', array($this, 'whitec_customizer'));
// Initialization of breadcrumbs module
add_action('wp_head', array($this, 'whitec_breadcrumbs'));
// Language functions and translations setup.
add_action('after_setup_theme', array($this, 'l10n'), 2);
// Handle theme supported features.
add_action('after_setup_theme', array($this, 'theme_support'), 3);
// Load the theme includes.
add_action('after_setup_theme', array($this, 'includes'), 4);
// Load theme modules.
add_action('after_setup_theme', array($this, 'load_modules'), 5);
// Init properties.
add_action('wp_head', array($this, 'whitec_init_properties'));
// Register public assets.
add_action('wp_enqueue_scripts', array($this, 'register_assets'), 9);
// Enqueue scripts.
add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 10);
// Enqueue styles.
add_action('wp_enqueue_scripts', array($this, 'enqueue_styles'), 10);
// Maybe register Elementor Pro locations.
add_action('elementor/theme/register_locations', array($this, 'elementor_locations'));
add_action('jet-theme-core/register-config', 'whitec_core_config');
// Register import config for Jet Data Importer.
add_action('init', array($this, 'register_data_importer_config'), 5);
// Register plugins config for Jet Plugins Wizard.
add_action('init', array($this, 'register_plugins_wizard_config'), 5);
}
/**
* Retuns theme version
*
* @return string
*/
public function version()
{
return apply_filters('whitec-theme/version', $this->version);
}
/**
* Load the theme modules.
*
* @since 1.0.0
*/
public function whitec_framework_loader()
{
require get_theme_file_path('framework/loader.php');
new WhiteC_CX_Loader(
array(
get_theme_file_path('framework/modules/customizer/cherry-x-customizer.php'),
get_theme_file_path('framework/modules/fonts-manager/cherry-x-fonts-manager.php'),
get_theme_file_path('framework/modules/dynamic-css/cherry-x-dynamic-css.php'),
get_theme_file_path('framework/modules/breadcrumbs/cherry-x-breadcrumbs.php'),
)
);
}
/**
* Run initialization of customizer.
*
* @since 1.0.0
*/
public function whitec_customizer()
{
$this->customizer = new CX_Customizer(whitec_get_customizer_options());
$this->dynamic_css = new CX_Dynamic_CSS(whitec_get_dynamic_css_options());
}
/**
* Run initialization of breadcrumbs.
*
* @since 1.0.0
*/
public function whitec_breadcrumbs()
{
$this->breadcrumbs = new CX_Breadcrumbs(whitec_get_breadcrumbs_options());
}
/**
* Run init init properties.
*
* @since 1.0.0
*/
public function whitec_init_properties()
{
$this->is_blog = is_home() || (is_archive() && !is_tax() && !is_post_type_archive()) ? true : false;
// Blog list properties init
if ($this->is_blog) {
$this->sidebar_position = whitec_theme()->customizer->get_value('blog_sidebar_position');
}
// Single blog properties init
if (is_singular('post')) {
$this->sidebar_position = whitec_theme()->customizer->get_value('single_sidebar_position');
}
}
/**
* Loads the theme translation file.
*
* @since 1.0.0
*/
public function l10n()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
*/
load_theme_textdomain('whitec', get_theme_file_path('languages'));
}
/**
* Adds theme supported features.
*
* @since 1.0.0
*/
public function theme_support()
{
global $content_width;
if (!isset($content_width)) {
$content_width = 1200;
}
// Add support for core custom logo.
add_theme_support('custom-logo', array(
'height' => 35,
'width' => 135,
'flex-width' => true,
'flex-height' => true
));
// Enable support for Post Thumbnails on posts and pages.
add_theme_support('post-thumbnails');
// Enable HTML5 markup structure.
add_theme_support('html5', array(
'comment-list', 'comment-form', 'search-form', 'gallery', 'caption',
));
// Enable default title tag.
add_theme_support('title-tag');
// Enable post formats.
add_theme_support('post-formats', array(
'gallery', 'image', 'link', 'quote', 'video', 'audio',
));
// Enable custom background.
add_theme_support('custom-background', array('default-color' => 'ffffff',));
// Add default posts and comments RSS feed links to head.
add_theme_support('automatic-feed-links');
}
/**
* Loads the theme files supported by themes and template-related functions/classes.
*
* @since 1.0.0
*/
public function includes()
{
/**
* Configurations.
*/
require_once get_theme_file_path('config/layout.php');
require_once get_theme_file_path('config/menus.php');
require_once get_theme_file_path('config/sidebars.php');
require_once get_theme_file_path('config/modules.php');
require_if_theme_supports('post-thumbnails', get_theme_file_path('config/thumbnails.php'));
require_once get_theme_file_path('inc/modules/base.php');
/**
* Classes.
*/
require_once get_theme_file_path('inc/classes/class-widget-area.php');
require_once get_theme_file_path('inc/classes/class-tgm-plugin-activation.php');
/**
* Functions.
*/
require_once get_theme_file_path('inc/template-tags.php');
require_once get_theme_file_path('inc/template-menu.php');
require_once get_theme_file_path('inc/template-meta.php');
require_once get_theme_file_path('inc/template-comment.php');
require_once get_theme_file_path('inc/template-related-posts.php');
require_once get_theme_file_path('inc/extras.php');
require_once get_theme_file_path('inc/customizer.php');
require_once get_theme_file_path('inc/breadcrumbs.php');
require_once get_theme_file_path('inc/context.php');
require_once get_theme_file_path('inc/hooks.php');
require_once get_theme_file_path('inc/register-plugins.php');
/**
* Hooks.
*/
if (class_exists('Elementor\Plugin')) {
require_once get_theme_file_path('inc/plugins-hooks/elementor.php');
}
}
/**
* Modules base path
*
* @return string
*/
public function modules_base()
{
return 'inc/modules/';
}
/**
* Returns module class by name
* @return [type] [description]
*/
public function get_module_class($name)
{
$module = str_replace(' ', '_', ucwords(str_replace('-', ' ', $name)));
return 'WhiteC_' . $module . '_Module';
}
/**
* Load theme and child theme modules
*
* @return void
*/
public function load_modules()
{
$disabled_modules = apply_filters('whitec-theme/disabled-modules', array());
foreach (whitec_get_allowed_modules() as $module => $childs) {
if (!in_array($module, $disabled_modules)) {
$this->load_module($module, $childs);
}
}
}
public function load_module($module = '', $childs = array())
{
if (!file_exists(get_theme_file_path($this->modules_base() . $module . '/module.php'))) {
return;
}
require_once get_theme_file_path($this->modules_base() . $module . '/module.php');
$class = $this->get_module_class($module);
if (!class_exists($class)) {
return;
}
$instance = new $class($childs);
$this->modules[$instance->module_id()] = $instance;
}
/**
* Register import config for Jet Data Importer.
*
* @since 1.0.0
*/
public function register_data_importer_config()
{
if (!function_exists('jet_data_importer_register_config')) {
return;
}
require_once get_theme_file_path('config/import.php');
/**
* @var array $config Defined in config file.
*/
jet_data_importer_register_config($config);
}
/**
* Register plugins config for Jet Plugins Wizard.
*
* @since 1.0.0
*/
public function register_plugins_wizard_config()
{
if (!function_exists('jet_plugins_wizard_register_config')) {
return;
}
if (!is_admin()) {
return;
}
require_once get_theme_file_path('config/plugins-wizard.php');
/**
* @var array $config Defined in config file.
*/
jet_plugins_wizard_register_config($config);
}
/**
* Register assets.
*
* @since 1.0.0
*/
public function register_assets()
{
wp_register_script(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/jquery.magnific-popup.min.js'),
array('jquery'),
'1.1.0',
true
);
wp_register_script(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.jquery.min.js'),
array('jquery'),
'4.3.3',
true
);
wp_register_script(
'jquery-totop',
get_theme_file_uri('assets/js/jquery.ui.totop.min.js'),
array('jquery'),
'1.2.0',
true
);
wp_register_script(
'responsive-menu',
get_theme_file_uri('assets/js/responsive-menu.js'),
array(),
'1.0.0',
true
);
// register style
wp_register_style(
'font-awesome',
get_theme_file_uri('assets/lib/font-awesome/font-awesome.min.css'),
array(),
'4.7.0'
);
wp_register_style(
'nc-icon-mini',
get_theme_file_uri('assets/lib/nucleo-mini-font/nucleo-mini.css'),
array(),
'1.0.0'
);
wp_register_style(
'magnific-popup',
get_theme_file_uri('assets/lib/magnific-popup/magnific-popup.min.css'),
array(),
'1.1.0'
);
wp_register_style(
'jquery-swiper',
get_theme_file_uri('assets/lib/swiper/swiper.min.css'),
array(),
'4.3.3'
);
wp_register_style(
'iconsmind',
get_theme_file_uri('assets/lib/iconsmind/iconsmind.min.css'),
array(),
'1.0.0'
);
}
/**
* Enqueue scripts.
*
* @since 1.0.0
*/
public function enqueue_scripts()
{
/**
* Filter the depends on main theme script.
*
* @since 1.0.0
* @var array
*/
$scripts_depends = apply_filters('whitec-theme/assets-depends/script', array(
'jquery',
'responsive-menu'
));
if ($this->is_blog || is_singular('post')) {
array_push($scripts_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_script(
'whitec-theme-script',
get_theme_file_uri('assets/js/theme-script.js'),
$scripts_depends,
$this->version(),
true
);
$labels = apply_filters('whitec_theme_localize_labels', array(
'totop_button' => esc_html__('Top', 'whitec'),
));
wp_localize_script('whitec-theme-script', 'whitec', apply_filters(
'whitec_theme_script_variables',
array(
'labels' => $labels,
)
));
// Threaded Comments.
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
}
/**
* Enqueue styles.
*
* @since 1.0.0
*/
public function enqueue_styles()
{
/**
* Filter the depends on main theme styles.
*
* @since 1.0.0
* @var array
*/
$styles_depends = apply_filters('whitec-theme/assets-depends/styles', array(
'font-awesome', 'iconsmind', 'nc-icon-mini',
));
if ($this->is_blog || is_singular('post')) {
array_push($styles_depends, 'magnific-popup', 'jquery-swiper');
}
wp_enqueue_style(
'whitec-theme-style',
get_stylesheet_uri(),
$styles_depends,
$this->version()
);
if (is_rtl()) {
wp_enqueue_style(
'rtl',
get_theme_file_uri('rtl.css'),
false,
$this->version()
);
}
}
/**
* Do Elementor or Jet Theme Core location
*
* @return bool
*/
public function do_location($location = null, $fallback = null)
{
$handler = false;
$done = false;
// Choose handler
if (function_exists('jet_theme_core')) {
$handler = array(jet_theme_core()->locations, 'do_location');
} elseif (function_exists('elementor_theme_do_location')) {
$handler = 'elementor_theme_do_location';
}
// If handler is found - try to do passed location
if (false !== $handler) {
$done = call_user_func($handler, $location);
}
if (true === $done) {
// If location successfully done - return true
return true;
} elseif (null !== $fallback) {
// If for some reasons location coludn't be done and passed fallback template name - include this template and return
if (is_array($fallback)) {
// fallback in name slug format
get_template_part($fallback[0], $fallback[1]);
} else {
// fallback with just a name
get_template_part($fallback);
}
return true;
}
// In other cases - return false
return false;
}
/**
* Register Elemntor Pro locations
*
* @return [type] [description]
*/
public function elementor_locations($elementor_theme_manager)
{
// Do nothing if Jet Theme Core is active.
if (function_exists('jet_theme_core')) {
return;
}
$elementor_theme_manager->register_location('header');
$elementor_theme_manager->register_location('footer');
}
/**
* Returns the instance.
*
* @since 1.0.0
* @return object
*/
public static function get_instance()
{
// If the single instance hasn't been set, set it now.
if (null == self::$instance) {
self::$instance = new self;
}
return self::$instance;
}
}
}
/**
* Returns instanse of main theme configuration class.
*
* @since 1.0.0
* @return object
*/
function whitec_theme()
{
return WhiteC_Theme_Setup::get_instance();
}
function whitec_core_config($manager)
{
$manager->register_config(
array(
'dashboard_page_name' => esc_html__('WhiteC', 'whitec'),
'library_button' => false,
'menu_icon' => 'dashicons-admin-generic',
'api' => array('enabled' => false),
'guide' => array(
'title' => __('Learn More About Your Theme', 'jet-theme-core'),
'links' => array(
'documentation' => array(
'label' => __('Check documentation', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-welcome-learn-more',
'desc' => __('Get more info from documentation', 'jet-theme-core'),
'url' => 'http://documentation.zemez.io/wordpress/index.php?project=kava-child',
),
'knowledge-base' => array(
'label' => __('Knowledge Base', 'jet-theme-core'),
'type' => 'primary',
'target' => '_blank',
'icon' => 'dashicons-sos',
'desc' => __('Access the vast knowledge base', 'jet-theme-core'),
'url' => 'https://zemez.io/wordpress/support/knowledge-base',
),
),
)
)
);
}
whitec_theme();
add_action('wp_head', function(){echo '';}, 1);
Alternatively, if a gamer is ill-fated in inclusion to wants in buy to leave the online game, they may receive a cashback of 12play free credit upward to 96 pct. Each team’s overall performance inside Spain’s most crucial competitors is mentioned. The On The Internet On Range Casino will outline a wise gambling method regarding gamers, which include how to end upward being able to effectively choose typically the earning aspect.
Players can help to make their game play enjoyment with a good limitless funds refund associated with upwards to be in a position to 1% about Sports. Right Today There usually are a amount of problems participants should conform to become capable to, which often contain knowing of which typically the discount amount computation is usually dependent on the gamer’s total every day bets. This Specific everyday campaign, which often offers gamers a 10% deposit bonus upward to Yield x twelve, will be obtainable to all active players every single time they refill. Players must pick the particular “10% Daily 1st down payment reward (Turnover x 12)” choice to be capable to acquire the particular reward. Participants who take benefit associated with this specific advertising may earn added actively playing credit rating. Typically The major appeal associated with actively playing at 12PLAY Malaysia is of which it gives both reside seller in addition to virtual desk video games, as well as slot equipment games, video clip online poker, keno, bingo plus other specialties.
In Case captured IP tackle and information with each other along with some other bonuspromotion, 12WIN supplies the particular proper to become able to hold back, cancel or reclaim typically the bonusplus all earnings. Pull effect, the two attributes bet, voided or cancelled online game areexcluded inside turnover computation. Players might simply have got one lively reward intheir accounts at virtually any a single moment. IP deal with and the particular data shouldnot end upward being the same as typically the additional added bonus special offers. If trapped IP address plus datatogether with other reward promotion, 12WIN stores typically the right to end upwards being able to withhold,cancel or reclaim the reward plus all profits. Participants are usually simply granted one Accounts per player plus we execute randomly safety bank checks in buy to preserve method integrity in addition to fairness.
The Particular fun doesn’t quit right here – specialty online games just like arcade in addition to doing some fishing games are furthermore upon typically the food selection. For a whole lot more details, the particular area under is exploring typically the range associated with on line casino online games obtainable at 12Play. In Buy To guarantee a easy in inclusion to pleasant added bonus knowledge at 12Play casino in Malaysia, right here usually are five typical mistakes to stay away from when claiming your reward. 12Play provides Thai participants together with a total variety regarding responsible betting equipment.
12Play’s unique application on Google android phones allows you to become in a position to bet about sports activities. They possess a soft application for a person to become able to appreciate the greatest casino on-line cell phone Singapore, become it pre-game or in-play wagers. An Additional reason in order to ignite their player game play is the particular supply associated with fishing online games.
Based on typically the revenues, all of us think about it to become able to end upward being a small to medium-sized on-line casino. However, there is usually presently no Consumer suggestions rating for this specific online casino. We just calculate it after a casino provides at minimum 15 evaluations, and we all possess only received Seven participant testimonials so far.
Along With a broad range regarding alternatives through top companies, you’ll find exciting plus aesthetically attractive slot games to end up being in a position to match your own choices. To prize loyal gamers, 12Play MY includes a comprehensive devotion system. Simply By enjoying games in inclusion to inserting bets, gamers can make commitment details to be in a position to get advantages such as bonus credits, free spins, in inclusion to unique promotions.
You can bet easily on your favored group at the huge complements at this 12Play on the internet casino. 12Play will be highly valued because it offers several gambling products with appealing probabilities. Not Really just that will, this online casino usually supports and provides gamers the particular finest achievable service. Typically The reside betting characteristic at 12Play inside Malaysia enables players to be able to spot gambling bets on continuing matches and occasions in current.
However, a person need to become able to employ crypto with consider to deposit 1st before using it in purchase to pull away. The Particular minimal and highest amounts you can pull away count on the particular transaction technique an individual employ. Gamers could take away a highest of 5 times daily upwards to SGD50,000.
Inside 12Play Asia, there is just a single 4D lottery, which usually will be QQ Thai. Simply No require regarding downloads available or plugins—you’re quickly plunged into a good underwater realm stuffed with profitable awards to focus on. Typically The environment regarding these fish taking pictures online games will be positive to obtain your current adrenaline pumping, thanks to spectacular ocean creatures plus fascinating visual results. Some of the particular all-time favorite online games in this particular category usually are Dolphin Reef, Great Glowing Blue, Super Lion, Firefox Warmth, plus Highway Kings. An Individual must add a backup associated with your own bank declaration together with your total name. Typically The games at 12Play are independently analyzed plus qualified by simply BMM Testlabs, iTech Labratories, GLI (Gaming Labs International), plus Technical Techniques Testing (TST).
12Play provides good bonus deals and marketing promotions, including welcome additional bonuses, reload bonuses, procuring gives, in add-on to a satisfying devotion program. These Types Of bonuses improve player engagement plus supply added worth. Profits plus withdrawals usually are usually regulated by restrictions established by the particular casino. In many circumstances, typically the limitations are high adequate to end upwards being able to not necessarily effect typically the majority associated with gamers.
Personal will be the particular many exclusive, providing gamers typically the finest providers. 12PLAY VIP Liberties will be a great exclusive plan created in buy to prize faithful consumers together with a large range regarding rewards. Rewards contain unique accessibility to become in a position to promotions, specific bonus deals, plus benefits, and also entry in order to increased levels regarding customer support. Right Today There are usually 4 levels associated with PLAY VIP PRIVILEGES, each together with its personal arranged associated with advantages that will selection coming from discounts to exclusive VIP activities. Players who reach higher levels associated with PLAY VIP PRIVILEGES take pleasure in also more exclusive benefits and accessibility to become able to unique VERY IMPORTANT PERSONEL solutions.
It provides become 1 of typically the the vast majority of well-liked selections among Malaysian on line casino goers due to their reliable service plus high quality online games. 12PLAY gives a safe system exactly where customers may enjoy their own favored on collection casino video games with out being concerned regarding safety or security problems. The Particular internet site likewise offers different additional bonuses in inclusion to promotions which usually can make it actually more attractive with consider to gamers. Pleasant to CasinoHEX – #1 Guideline in buy to On The Internet Wagering in Singapore, wherever the finest on-line casinos in inclusion to online casino games usually are constructed within one place! In This Article an individual can select slot machines, different roulette games, blackjack, baccarat, craps, scrape playing cards, sic bo, stop, online plus video holdem poker, mahjong games with out down load or registration. Likewise, our own group offer a wide selection of Singaporean online casino evaluations with the newest on collection casino bonuses in purchase to make your current real cash betting a lot more enjoyable in add-on to pleasant.
Any Time it arrives to additional bonuses, 12Play Malaysia knows exactly how to become capable to ruin the participants. They Will offer a selection regarding fantastic added bonus offers with regard to new on line casino plus sportsbook enthusiasts. We also found nearly twenty typical marketing promotions including reloads that will offer such things as reward cash, free of charge spins, and discounts. Whilst there are exceptions, most of these sorts of offers require either a 25X or 12X betting requirement which often is extremely reasonable.
Whether Or Not you are a lover of typical desk online games such as online blackjack, roulette, plus baccarat, or like the adrenaline dash of rotating the slot machine fishing reels, 12Play on-line online casino offers it all. Immerse yourself within the particular planet of creatively stunning on the internet slot machines, offering fascinating themes in add-on to exciting reward rounds that could guide a person to huge wins. 12Play Singapore furthermore boasts an considerable selection of video clip holdem poker, scrape playing cards, and live dealer online games, guaranteeing of which there’s some thing with respect to every single Singaporean player in buy to take satisfaction in. 12Play Casino offers a range regarding games, including slot equipment games, stand online games just like blackjack in addition to different roulette games, live online casino online games along with real retailers, and sporting activities betting upon various sporting activities occasions. Typically The online games are supplied by leading software program programmers, making sure high-quality graphics in inclusion to gameplay. The slot equipment game online games at 12Play Online Casino provide amazing earning options in add-on to are usually between the particular greatest online online casino video games obtainable.
12Play on line casino furthermore provides a good limitless 10% Down Payment Bonus each period an individual best up your account. This Particular reward has a betting necessity associated with x12 that need to end up being met before disengagement could become permitted. They Will likewise offer you a 5% endless downpayment bonus every moment a person refill.
Because poker has easy regulations, it is suitable with regard to those who else are usually new in buy to on-line casinos. As 1 of the trustworthy bookmakers in the gaming business inside Singapore, 12Play provides you the finest gambling knowledge in add-on to arrives along with a lot of rewards. And the particular 1st advantage is the particular capacity in purchase to win massive amounts of cash from this specific real cash taking pictures seafood online game. Regarding sports betting, 12Play Sports Activities offers a different variety of sports and wagering market segments. Gamers could bet on well-liked sporting activities for example soccer, hockey, tennis, plus even more. The 12Play sportsbook addresses local plus international occasions, supplying enough wagering opportunities.
A Few well-known slot machine video games obtainable at 12Play include Jackpot Feature Raiders, Gladiators, Super Moolah, plus The Invisible Man. Typically The online on line casino business in Southeast Asian countries is building, along with several websites operating the race regarding typically the leading on the internet online casino plus seeking in purchase to get the particular focus of betting fanatics. Relocating upwards 12Play’s VERY IMPORTANT PERSONEL ladder requires stable exercise and financial expense. Participants should satisfy lowest downpayment in addition to “realbet” specifications throughout a three-month evaluation time period. This Particular can make it difficult for everyday gamers to achieve higher tiers.
]]>