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);
The platform is mobile-friendly, making it easy to sign up bonus play pan any device. Customer support is available 24/7, ensuring players get help when needed. Hellspin Casino is a popular online gambling platform with a wide range of games. The site partners with top software providers jest to ensure high-quality gaming.
Stay alert and follow these security measures jest to keep your Hellspin login safe at all times. New players can complete the Hellspin Casino register process in just a few minutes. Jest To begin, visit the official website and click on the “Sign Up” button. You will need owo enter basic details like your email, username, and password. After filling in your details, agree jest to the terms and conditions and submit the postaci. HellSpin Casino puts a lot of effort into making deposits and withdrawals simple, cheap and time-effective.
Ask customer support which documents you have owo submit, make photos or copies, email them and that’s pretty much it! That’s why they offer a wide range of convenient and secure banking options fit for the Irish gambler. This way, you can enjoy smoother transactions and focus mężczyzna the fun. If you’re keen to learn more about HellSpin Online’s offerings, check out our review for all the ins and outs.
Whether you are a new or existing player, the Hellspin premia adds extra value to your gaming experience. HellSpin przez internet casino has a great library with more than trzy,000 on-line games and slots from the top software providers on the market. You will find a variety of such live casino games as Poker, Roulette, Baccarat, and Blackjack. While the casino has some drawbacks, like wagering requirements and the lack of a dedicated mobile app, the overall experience is positive. Whether you love slots, table games, or live dealers, Hellspin has something for everyone. If you want a smooth and exciting gaming platform, Casino is worth trying.
Tick the box agreeing with receiving promotional offers and click Submit to finalize your sign up. In the upper right corner of the casino’s main page, you will find the Sign Up, Login, and Language Switch buttons. Hell Spin functions in 20 languages, which is a huge advantage. For additional support, HellSpin has a detailed FAQ section on their website that contains common account-related questions and answers. This resource is prepared owo solve your problem immediately without contacting the representative.
Follow us and discover the exciting world of gambling at HellSpin Canada. So, if you’re an Irish player who values a clear and dedicated casino experience, HellSpin might just be your pot of gold at the end of the rainbow. Because HellSpin login is made with email and password, keeping those in a safe place is really important. Create a strong password that is hard owo guess, and don’t give that owo anyone. The casino has been granted an official Curaçao license, which ensures that the casino’s operations are at the required level.
These diverse titles are sourced from over sześcdziesięciu reputable providers and cater to various preferences. Additionally, the game lobby has several on-line dealer options that offer an engaging gaming experience. Founded in 2020, HellSpin is a relatively new gaming site that has acquired many users for its offering. Many players praise its impressive game library and exclusive features.
The gaming site is dedicated jest to providing reliable payment options. Thus, you can deposit and withdraw using multiple fast and secure methods in New Zealand. The transaction processing speed varies from ów kredyty method owo another.
The gambling site ensures that you get some rewards for being a regular player. As such, the HellSpinCasino Canada system comes in 12 levels with attractive bonuses and massive wins. One thing thatimpresses our review team the most about the program is its 15 days cycle. It is especially impressive when you consider thefact that the reward can be as high as 15,000 CAD.
Bonuses allow for great excitement and interest, all bonuses can be won back and thus increase your capital. Most often, bonuses are credited as funds for a deposit and as free spins on popular slots. In this review, we will look at what HellSpin bonuses, one of the largest classic casinos in New Zealand offers its players.
]]>
Some bonuses may require a promo code, so always check the terms before claiming. Any New Zealand player seeking a secure and thrilling gaming experience can consider HellSpin Casino their perfect destination. The website has over 4,pięć stów games sourced from reputable providers. The lobby offers high-quality slots, on-line dealers, and fast game variants. HellSpin Casino shines with its vast game selection, featuring over pięćdziesiąt providers and a range of slots, table games, and a dynamic on-line casino. The platform also excels in mobile gaming, offering a smooth experience pan both Mobilne and iOS devices.
Generally speaking, e-wallets are the fastest option, as you’ll get the money in two business days. Despite all technological advancements, it is impossible to resist a good table game, and Hell Spin Casino has plenty to offer. Just enter the name of the game (e.e. roulette), and see what’s cookin’ in the HellSpin kitchen. Mężczyzna the other hand, the HellSpin Casino Login process is as easy as it can get.
The list of names is downright impressive and includes Thunderkick, Yggdrasil, Playtech, and more than sześcdziesięciu other companies. The first deposit nadprogram is 100% up to setka Canadian dollars, as well as setka free spins on a certain slot. So everyone here will be able to find something that they like.All games on the site are created by the best representatives of the gambling world. We provide tools and resources owo help you manage your gaming activities, ensuring a safe and enjoyable experience.
It covers common topics like account setup, payments, and bonuses. It ensures that customer service is easy to reach, making the gaming experience smooth and hassle-free. The game features captivating elements such as wild wins, scatter wins, free spins with expanding wilds, and an engaging bonus game. With medium volatility gameplay and a respectable RTP of 95.8%, Spin and Spell offers a thrilling and potentially lucrative gaming experience. Hell Spin Casino is famous for its massive library of slot games.
The benefits outweigh the drawbacks, making it a solid choice for both new and experienced players. With great games, secure payments, and exciting promotions, Hellspin Casino delivers a top-tier gambling experience. Of course, a Hell Spin casino review wouldn’t be complete without diving into the safety features.
Roulette has been a beloved game among Australian punters for years. Ów Kredyty of its standout features is its high Return owo Player (RTP) rate. When played strategically, roulette can have an RTP of around 99%, potentially more profitable than many other games. In addition owo the basic European, French, and American Roulette games, HellSpin offers a selection of more advanced and elaborate titles. Mega Roulette, XXXtreme Lightning Roulette, and Automatic Roulette. Register pan the HellSpin official website of the casino right now and get a welcome bonus.
The bonus offers players in Canada 50% up jest to 600 CAD plus 100 free spins. Owo enjoythis offer, you must deposit a minimum of 25 CAD mężczyzna a Wednesday mężczyzna the platform. The iOS version allows iPhone users jest to enjoy a customised gaming experience. The application works perfectly with iOS devices jest to offer an exceptional gaming experience.
We’ve got everything you need to know about this Aussie-friendly przez internet casino. This casino also caters jest to crypto users, allowing them owo play with various cryptocurrencies. This means you can enjoy gaming without needing fiat money while also maintaining your privacy. Whether you’re a high roller or just looking for some fun, Hell Spin caters jest to all. The thrill of the spin, the anticipation of the win, and the joy of hitting the jackpot – it’s all here at Hell Spin.
Just like the first deposit premia,this promotional offer is similarly not without a wagering requirement. The requirement is also 40X, andthe minimum deposit once again is 25 CAD. However, the price of the bonus hell spin buy option varies from game jest to game. This option allows you to customise your gaming experience based pan your budget and desires. The application caters owo the needs of informed przez internet gamers using Mobilne devices. It offers a sleek and high-performing interface that allows you jest to enjoy a hassle-free gaming experience.
With the first deposit, players can get a 100% deposit premia of up jest to 100 EUR. You can get a 50% deposit nadprogram of up jest to 300 EUR pan the second deposit. On top of that, you get another pięćdziesięciu free spins, so there are quite a few bonuses pan offer. You can play your favorite games w istocie matter where you are or what device you are using.
Początek your gaming adventure at HellSpin Casino Australia with a lineup of generous welcome bonuses crafted for new players. HellSpin Casino ensures an engaging experience with bonuses that deliver more value to your deposits and extend your play. The game selection is very typical, including casino and live games. This casino can be a great spot for players who want owo get good bonuses all year round. In addition, all crypto owners have been considered at this casino, as it supports several popular cryptocurrencies.
The digital shelves are stacked with more than pięć,pięćset titles with reels, free spins and quirky characters, accompanied żeby vivid visuals. If you’re looking for a straightforward przez internet casino experience in Ireland, HellSpin is a great option to consider. Table games are playing a big part in HellSpin’s growing popularity. You can find all the greatest table games at this mobile casino. W Istocie matter what kind of table or on-line games you want, you can easily find them at HellSpin.
For instance, cryptocurrency payments are processed instantly and have friendly limits. You won’t see a particular section just for table or card games on Hellspin NZ, but don’t stress! A helpful search bar is at the top of the main page, so you can easily find any game you want.
Alternatively, Australian players can reach out via a contact postaci or email. Mężczyzna the internetowego casino’s website, you’ll find a contact form where you can fill in your details and submit your query. The team will respond promptly owo assist you with any questions or concerns you may have. Getting in touch with the helpful customer support team at HellSpin is a breeze. The easiest way is through on-line chat, accessible via the icon in the website’s lower right corner.
Therefore, you can only play casino games here, although the selection ispleasantly broad. The acceptance of cryptocurrency as a payment method is a major highlight of this operator. It isów lampy of the driving forces behind its growing popularity in the Canadian gambling community. The first deposit nadprogram is an impressive 100% up owo 300 CAD plus setka free spins. There are alsoloyalty programs, tournaments, and VIP clubs that ensure existing members are not left out of thefun.
You’ll come across a rich selection of 3 or 5-reel games, wideo slots, jackpots, progressives, and nadprogram games. It’s clear they boast ów lampy of the largest collections of slots internetowego. Despite their extensive collection, you won’t have any issues navigating games.
Whether you love free spins, cashback, or loyalty rewards, there is a Hellspin nadprogram that fits your playstyle. Before claiming any Hellspin nadprogram, always read the terms and conditions. Pay attention jest to wagering requirements, minimum deposit limits, and expiration dates. Some offers require a Hellspin bonus code, while others activate automatically.
]]>