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);
About Selection On Range Casino assists numerous repayment processes, which include credit score score credit score playing cards, e-wallets, in inclusion to cryptocurrencies. Hellspin is usually an extra about the internet on the internet online casino of which will offers a great amazing total understanding. Participants at Hellspin On Collection Casino might get satisfaction inside fascinating benefits together along with the particular Hell Rewrite On Range Casino simply no down payment additional reward. Company New consumers acquire a great delightful added added bonus, which usually frequently includes a lower transaction match up plus free spins. Any Time a person wish to end upward being in a position to become able to perform for legit funds, a individual need to very very first complete typically the certain account verification process .
With Each Other With therefore a number of marketing promotions obtainable, Hellspin On Line Casino assures gamers get great worth through their own own develop upward. Regardless Associated With Whether a great individual details concerning hellspin really just like totally free spins, cashback, or commitment benefits, presently right today there is usually generally a Hellspin bonus associated with which often complements your present playstyle. Specialty on-line online games such as stop, keno, plus scratch credit score playing cards are usually typically likewise accessible. Gamers generally execute not necessarily want to end upwards being in a position to be able to lower weight a person Online Online Casino program in purchase to be within a place to enjoy. Typically The web site loads swiftly and offers a soft information, together with all features offered, which usually contains movie games, payments, within introduction to be able to additional bonuses.
Within Case a person observe of which often a endure on line casino doesn’t require a fantastic lender accounts hellspin confirmation and then we’ve attained several bad reports with consider to a person.

It is also important in purchase to point out of which casino workers typically choose typically the entitled pokies for you. About best associated with of which, all sorts associated with free of charge spin promotions appear with reward terms plus problems. These include wagering requirements of which use to your winnings coming from free spins.
Some regarding these people are a little bit unfamiliar, but an individual likewise have entry in buy to the particular survive dealer games regarding Development in add-on to Sensible. In Addition, Hell Spin demands a lowest deposit of €20 before you can cash out there your own profits. Not all online games add equally toward typically the betting need, so selecting typically the correct video games will be important. A Few table games, live seller online games, and a few slot headings are usually omitted, which means they won’t help you progress toward unlocking your current reward money. Checking the particular conditions in advance assures you’re enjoying qualified games.
Exactly What about Lightning Different Roulette Games, Velocity Black jack plus Lightning Blackjack. These Kinds Of variations grew to become almost as well-liked as typically the authentic survive desk games. Not Necessarily all reward provides demands a Hell Rewrite promo code, yet several may require an individual to end upward being in a position to enter it.
Mobile video gaming at Hellspin Casino is usually the two hassle-free in add-on to satisfying. Cellular participants can take satisfaction in the exact same exciting benefits as pc customers at Hellspin Online Casino. The Particular platform is fully optimized with consider to smartphones in add-on to capsules, permitting consumers to state bonus deals straight through their particular cell phone browsers. Players can access delightful provides, reload bonus deals, plus totally free spins without having needing a Hellspin application.
Cash produced by redemption hell factors bring a wagering regarding x1. This offer you is obtainable for all gamers and is usually typically the best method in buy to boost your gambling encounter this specific romantic season. Total, I discovered HellSpin meets the particular key safety specifications most players would anticipate. When I accessed the particular site, I proved they use proper encryption to keep participant information secure, which is crucial any time you’re handing above individual particulars.
There’s simply no want to end upward being capable to download applications to your own Google android or i phone in purchase to gamble. The mobile-friendly web site could end upward being seen making use of any kind of browser an individual possess on your own telephone. Record inside making use of your e-mail tackle in add-on to security password, or generate a fresh account, using the cell phone version of typically the website.
Sign Up For the devilishly very good period at HellSpin plus unlock endless entertainment in add-on to hard to beat bonuses. Double your first two build up with typically the HellSpin delightful bonus, plus acquire up to 150 free spins. Together With a wide range of marketing promotions, a VIP program, plus zero want regarding bonus codes, HellSpin is usually typically the top option for Canadians searching regarding a small enjoyment plus large benefits. Stand wagering limits suit most budgets, which include extremely little stakes. Consequently, players could come to be familiar along with the particular video games while jeopardizing simply a small part regarding their particular wagering lender. The live supplier lobby furthermore caters regarding bigger-staking gamers yet they usually are advised to end upward being in a position to wager sensibly plus within just a spending budget.
Every bet placed upon slot machine games allows an individual rise through the program’s levels. Regarding loyal punters that select in purchase to travel by means of Hell fireplace adventures, presently there is usually a great special VIP golf club to be capable to prize their efforts. VIP people get instant prizes and other customized promotions.
It is usually within business typical, plus the vast majority of Canucks will end up being able to end upward being in a position to achieve it on time. The Particular optimum bet whenever wagering typically the reward is CA$8 — higher as in comparison to within most other internet casinos inside North america. Whenever it all amounts upward, participants get a practical and fair possibility in buy to withdraw their particular bonus is victorious once these people are usually carried out. In addition in buy to Top10Casinos’ exclusive bonus, typically the 3 current complement downpayment bonus deals carry out include spins at no expense. These People are subject matter in buy to large gambling needs but there is usually a good prospective to appreciate several decent wins, based about this review.
This limited-time offer you is usually the ideal method to jump in to the particular excitement regarding on-line gambling along with a generous €1000 reward boost… I found HellSpin On Line Casino to be able to be safe after examining their licensing plus gamer safety methods. Their Curacao license might not necessarily end upwards being typically the most powerful alternative accessible, nevertheless I could see they will follow appropriate protocols and have got their particular participant security techniques within buy.
On One Other Hand, typically the top kinds endure out there not just for possessing aVIP program yet having a good one. Hell Spin’s VIP plan will be at present one the best obtainable regardingCanadian bettors. To carry out so, just simply click “Games” within typically the upper software area in addition to pick coming from the Reception, Well-known, Brand New, Strikes, Slot Device Games, Bonus Acquire, plus Fast Games hell spin casino no deposit bonus categories. With Consider To additional help, HellSpin contains a comprehensive FREQUENTLY ASKED QUESTIONS segment on their particular site of which contains common account-related questions plus answers. This source is well prepared to become capable to solve your problem right away with out getting connected with the particular agent.
Hell Rewrite On Range Casino simply no down payment bonus will be uncommon, nevertheless in case a person get 1, understand it is usually not free of charge money. A Person should enjoy out with regard to any type of updates regarding bonuses within typically the Promotions segment regarding typically the site. The Particular movie holdem poker online games upon the wagering system are usually furthermore scattered throughout the particular game reception. All the video online poker online games at HellSpin belong in purchase to Wazdarn and Gaming.
The Particular no-deposit bonus associated with fifteen free of charge spins about Crazy Funds is the particular outstanding deal here, ranking far better as in contrast to 74% regarding similar additional bonuses. While the €50 max cashout isn’t large, it’s entirely fair for a no-strings-attached offer you. Just keep in mind you’ll need in buy to verify your own accounts in add-on to create at minimum 1 downpayment just before cashing out there. This Specific online online casino contains a dependable functioning program in add-on to superior software, which often is reinforced by simply powerful web servers. Virtually Any contact form regarding on-line play is usually organized in order to make sure of which info is usually directed within real-time through the particular user’s pc in order to typically the casino.
]]>
Together With hence a number of promotions accessible, Hellspin Casino assures players acquire great really worth from their personal create up. Irrespective Regarding Regardless Of Whether a great personal info about hellspin really just like totally free spins, cashback, or devotion advantages, presently there is usually usually a Hellspin added bonus associated with which usually fits your current existing playstyle. Niche on the internet https://hellspin-vip.com games such as bingo, keno, plus scrape credit cards are typically similarly offered. Players typically carry out not necessarily need to conclusion upward being within a position in order to lower weight a individual Online Online Casino application in order to become in a placement in order to take enjoyment in. The Particular internet internet site lots swiftly plus provides comfortable knowledge, along with all features accessible, which usually includes movie online games, repayments, inside inclusion to additional additional bonuses.
Upon Range Online Casino helps several transaction processes, which usually include credit score report credit playing cards, e-wallets, in inclusion to cryptocurrencies. Hellspin is a good added upon typically the internet on the internet casino of which will offers a great awesome overall knowledge. Participants at Hellspin On Collection Casino might get satisfaction within fascinating benefits together with typically the particular Hell Rewrite Upon Variety On Range Casino simply no down payment additional bonus. Brand Name Brand New users acquire a great delightful added added bonus, which often usually consists of a straight down payment complement plus free spins. When you wish in buy to come to be able to become capable to execute regarding legit money, a particular person want to be capable to extremely 1st complete the specific account affirmation treatment.
In Case an individual observe associated with which a survive casino doesn’t require a fantastic lender bank account confirmation then we’ve acquired some negative reports for an individual.