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);
An Individual can observe links in buy to the in-play section associated with typically the web site in add-on to video games that are usually concerning to start. There’s also a link in buy to typically the multiples segment and the particular Hard anodized cookware See which will be best if an individual adore Asian Problème Gambling. If bettors have deposited with Skrill, Neteller, or EntroPay, after that an individual usually are within good fortune, as these kinds of banking options are excluded from typically the Pleasant Reward. Right Today There are usually likewise additional alternatives that customers are urged to select such as Skrill, Neteller, or Astropay Credit Card. Talk About anything at all related to 188BET Online Casino along with some other players, share your opinion, or obtain solutions to end up being in a position to your own queries. Victoria24 requested a drawback associated with £249 in add-on to even though she supplied all the particular paperwork required in purchase to verify the woman accounts, typically the payout had been delayed.
Typically The enhanced odds may increase your winnings therefore it’s definitely a campaign to be in a position to keep a good vision on. To End Up Being Able To understand more about newest advertising obtainable, don’t hesitate in purchase to check out there our own 188bet promotion web page. There are usually extremely tục link 188bet aggressive chances which often they state usually are 20% a great deal more than a person’d get on a wagering swap right after having to pay commission. The Particular web site furthermore gives a unique campaign of which sees a few regarding all of them enhanced in numerous wagers. As a Kenyan sporting activities enthusiast, I’ve already been adoring my knowledge along with 188Bet.
Increased chances usually are merely 1 regarding the promotions of which usually are available at 188BET. Right Now There are region restrictions at present plus a total list is available on their internet site. In addition, 188Bet offers a devoted holdem poker program powered by simply Microgaming Holdem Poker System. You can discover free competitions plus additional types together with reduced plus higher levels. After picking 188Bet as your own risk-free program to place wagers, a person can sign up regarding a fresh account inside merely a few moments.
188BET gives punters a system to end upward being able to encounter the particular enjoyable regarding on range casino online games immediately coming from their houses through 188BET Live On Line Casino. You could play typical casino online games live, sensation such as an individual are usually inside of a online casino. The survive on range casino provides everything just like card shufflers, real-time betting with some other gamers, green experienced dining tables, and your current typical on line casino landscapes.
In percentage to become capable to their size, it offers obtained issues with a extremely reduced overall benefit associated with questioned winnings (or it doesn’t possess any sort of problems whatsoever). All Of Us consider the particular on range casino’s sizing and player complaints in connection to end upwards being capable to each additional, as greater casinos are likely to obtain a whole lot more issues credited in purchase to their own higher amount associated with players. As esports develops worldwide, 188BET remains ahead by offering a thorough selection regarding esports wagering options.
188BET is a name identifiable along with innovation in addition to reliability in typically the world of on the internet gambling plus sports activities gambling. This signup reward is effortless in order to state; just as a person are authorized with the 188BET bank account with consider to inserting bets in buy to make your 1st downpayment, you are entitled to a delightful provide sum. An Individual will become provided a specific promo code about typically the recognized home page in purchase to declare this particular pleasant offer. You could win real cash simply by enjoying numerous games plus jackpots on typically the program. Merely a minds upwards – the support group probably could’t aid you put about geo-blocks. It’s such as asking a cop in buy to aid an individual jaywalk – not necessarily gonna happen.
With more than 10,500 reside complements to bet about a month, you are usually going to be capable to possess a great moment at this specific internet site. To ensure presently there is a continuous supply of soccer video games to bet about, 188BET has coverage of leagues through The european countries, To the south The united states, The african continent and Parts of asia. This Particular offers the particular internet site wagering options whatever typically the moment regarding day it is. These People furthermore include reserve video games and youngsters complements and also insurance coverage regarding women’s soccer too.
Login or Sign up to become in a position to be in a position to manage in inclusion to change your own reviews afterwards about. As for purchases through ATM or at the particular counter-top, right after completing the method, an individual will transfer money to the bank account number offered in Action a couple of. When an individual employ several ad blocking software program, you should examine its configurations. All Of Us performed not discover any type of unfounded or predatory guidelines within the Conditions in inclusion to Conditions regarding 188BET Online Casino throughout the evaluation. Typically The heroic Hercules dominates supreme within this 30-line Age Group associated with typically the Gods
slot.
The The Better Part Of associated with typically the evaluations from these kinds of casino users stated that the customer support staff is usually always all set to response any trouble. I have confirmed this specific by simply sending an e-mail in purchase to typically the staff that requires assistance, plus indeed, all queries are cool plus comprehensive. At 188BET, we blend above ten years of knowledge with most recent technological innovation to offer an individual a inconvenience totally free in add-on to pleasurable gambling encounter. The international brand occurrence ensures that will an individual could perform with self-confidence, understanding you’re gambling along with a trustworthy and economically sturdy bookmaker. In Case a person love to become capable to play online casino video games online, 188BET will be a best option. The casino offers a great incredible selection of casino video games and sports activity gambling choices regarding desktop in inclusion to cell phone versions.
Maintain an vision on 188bet’s existing gives – they will modify a whole lot more usually as compared to a chameleon’s colours. There’s a wide selection regarding market segments a person can try out and acquire a champion about. There’s every thing from typically the first/last/anytime goal termes conseillés, proper score, how several objectives will become obtained in the particular match, even exactly how many corners or reservations right today there will end upward being. As together with many sportsbooks that you may sign up for online, soccer is the particular dominating sports activity at 188BET. Any Time an individual turn in order to be a part associated with this specific site, a person will become offered with an excellent quantity associated with games in buy to bet on through all above typically the world.
They offer you a broad range regarding sports activities in add-on to wagering markets, competitive chances, plus very good design and style. Their M-PESA incorporation will be a significant plus, in inclusion to the particular customer assistance is top-notch. Soccer will be simply by far the particular many popular item upon the listing regarding sports gambling websites. 188Bet sportsbook evaluations reveal of which it extensively includes sports.
This review examines 188BET Online Casino, using our own online casino review methodology to figure out its positive aspects and drawbacks simply by our independent team of expert online casino critics. Increased probabilities is the promotion that will 188BET loves in buy to offer their ustomers plus that will tends to make this specific a good interesting site to register together with. These People offer a choice of many (generally four-folds) regarding selected institutions. This Particular can become a simple win bet or regarding both teams in purchase to score.
Regardless Of Whether an individual have a credit score cards or make use of other programs like Neteller or Skrill, 188Bet will completely support you. The cheapest deposit sum will be £1.00, and a person won’t become billed any fees regarding funds debris. On One Other Hand, several strategies, for example Skrill, don’t allow you to end upward being capable to employ several accessible promotions, which includes typically the 188Bet delightful bonus. If an individual are usually a large tool, the many correct downpayment quantity comes between £20,500 plus £50,000, depending about your own approach. If an individual are likewise ready to become able to discuss your current personal experience, please tend not really to think twice to be in a position to let us realize regarding this specific on the internet casino’s good and negative features. On this page, you’ll find a list associated with the latest no-deposit bonuses or free of charge spins and 1st deposit bonuses offered simply by 188BET On Range Casino which often are available to end upwards being able to participants from your current nation.
slot device game.It includes a very good appear to it and is usually simple in purchase to get around your approach around. The primary illustrates in this article are usually typically the welcome offer you plus the large number associated with activities that will 188BET clients can become placing bets upon. It doesn’t issue whether it’s day or night, you will locate lots to be inserting bets upon here. It’s not really simply typically the quantity associated with occasions nevertheless the number regarding markets as well.
They Will actually have odds regarding who’s heading to top typically the following Spotify graph. At existing, it will be not in a position to end up being capable to come to be a part of the particular site in case an individual are citizen inside both the United Kingdom, France or Germany. A total list regarding restricted countries will be obtainable about typically the 188Bet site. 188Bet money out will be only obtainable upon several associated with typically the sports activities and occasions. Therefore, an individual should not really consider it to become capable to end upward being at hands regarding every bet you decide to end upward being capable to spot. Incomplete cashouts only occur when a minimal product risk remains about either part associated with the particular shown variety.
As a outcome, typically the online casino currently gives the mobile software versions for operating upon both iOS (iOS nine in add-on to above) in addition to Google android (Android a few.0 plus above). Any Time an individual go to the house webpage associated with the web site, a person will discover that the particular company gives typically the best bonuses and special offers as each the industry common together with a much better chances system. They have got a good portfolio associated with online casino bonus provides, specific bet types, internet site features, plus sportsbook bonus deals within the two on collection casino plus sports activities betting classes.
An Individual will obtain a portion coming from their own internet income in a offered period of time. The many interesting part associated with this particular casino internet marketer plan is that will presently there will be simply no optimum amount regarding commission of which you may obtain. Withdrawal procedures are usually limited at the particular 188BET internet site; all typically the down payment options are usually not necessarily available with respect to withdrawal.
Australian visa, Master card, in inclusion to other famous credit and debit playing cards usually are accepted regarding down payment nevertheless are usually not enough with respect to withdrawals. Almost All down payment alternatives usually are free to be in a position to use, other than for immediate financial institution exchanges. Based about typically the picked technique, gamers may possibly have in order to hold out upward to three or more enterprise days and nights with respect to withdrawals.
]]>