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);
Caspero Casino, for example, offers a clear self-exclusion process, providing users with the necessary resources to make knowledgeable decisions. These programs allow individuals to voluntarily exclude themselves from gambling events for a specified period, helping them regain command. By providing gamers with the tools they need, Caspero Casino cultivates an atmosphere of clarity and answerability. These materials not only enhance the gaming encounter but also help maintain a healthy relationship with wagering.
The website’s home page clearly signals that the club first and foremost operates as a casino. There is a classic sidebar menu on the left, a promotional banner, a game zone in the center, and log-in & register buttons at the top. Despite being a newcomer in the iGaming market, Caspero already has an caspero casino excellent foundation and has even surpassed many experienced brands. Such a background surely helps the club obtain high-quality gaming content and develop a thoughtful marketing strategy. The variety of providers contributes to the platform’s extensive and diverse game catalog, maintaining technical reliability and creative variety. These partnerships ensure high-quality game performance, innovative design, and consistent updates.
Players can choose from bank cards, e-wallets, bank transfers, vouchers, and a broad selection of cryptocurrencies, with minimum deposits starting low and most methods supporting both deposits and withdrawals. Forgot to mention, we have a hidden page with exclusive bonuses for They are just too good to share publicly, but password for hidden page you will get for free by email
Сaspero is a brand-new ghost-themed online casino and sportsbook that leans hard into mystery, neon visuals, and supernatural branding. Find out what others think about this casino and share your own experience with others. The rollover requirements for the online slots spins are 40 times. The turnover requirements are 35x the bonus and deposit sum.
We determine the overall user feedback score based on the player feedback submitted to us. Taking our finding into consideration, we encourage you to proceed with caution should you decide to play at this casino. Our process for establishing a casino’s Safety Index involves a detailed methodology that considers the variables we’ve collected and analyzed during our review. Continue reading our Caspero Casino review and learn more about this casino in order to determine whether or not it’s the right one for you. In this review, Caspero Casino has undergone a detailed examination of its strengths and weaknesses by our team of independent casino reviewers using our casino review methodology. The website currently lacks a direct phone number for customer support, so if you’re looking for an urgent response, we highly recommend using the live chat feature.
This technology is designed to identify and remove content that breaches our guidelines, including reviews that are not based on a genuine experience. As we are slots enthusiasts, we are focused on providing you with thorough details about online slot machines. Sign-up on our bonus newsletter to get 100 free spins and new hot bonuses!
Caspero Casino makes sure that deposits are safe and hidden from prying eyes. Skrill, Neteller and Zimpler are only a few instances of the payment services supported. Only payment methods that are totally secure and legal can be used at a regulated internet casino. The banking options provided by Caspero Casino are safe. Our rating algorithm for responsible gaming safety is founded on seven principles.
Join Caspero Casino today and experience the thrill of free gaming with the potential for real money rewards! Discuss anything related to Caspero Casino with other players, share your opinion, or get answers to your questions. The Complaints Team had made multiple attempts to contact the casino regarding the player’s delayed withdrawals but received no response. The Complaints Team intervened after the player reported delays despite all documents being verified and a lack of communication from the casino’s finance department. Consequently, the complaint was marked as “unresolved,” and the player’s situation was documented in hopes that the casino might reconsider its approach in the future. The Safety Index is the main metric we use to describe the trustworthiness, fairness, and quality of all online casinos in our database.
These games appeal to players seeking classic, skill-based gameplay alongside stochastic outcomes. Caspero offers a comprehensive platform for real money gaming, designed to meet diverse player preferences. Caspero Casino is a new and exciting online casino with a fun look and a unique focus on enhancing the overall player experience. Our commitment to player safety means we only feature licensed casinos, ensuring only the safest gaming environment. Fellow players have taken time to share what they actually have in mind when trying out Caspero Casino and its games.
The online slots at Caspero include thematic and feature-rich games such as Book of Dead for adventure seekers and Mega Moolah for jackpot enthusiasts. Caspero features an impressive variety of games available for real money play, catering to different tastes and betting levels. You can enjoy different categories of games including slots, live dealer games, table games, exclusive games, instant games and jackpot games. Read on to learn more about the software providers, game selection, welcome bonuses, payment methods, customer support & more. The steady rise in popularity of sports betting across the globe has prompted many online casinos to incorporate a dedicated online Sport page in order to provide the bettors with the best possible experience from the comfort of their homes.
Random number generators (RNGs) exist behind each individual game result.That ensures a completely fair chance of winning each time you pick your preferred numbers. It’s the same case for situations where you aren’t entirely assured of the terms and conditions surrounding a particular bonus campaign. Reaching customer support is in all instances a solid idea if you encounter any issues. You can speak with the client support service team at or through the site contact form. If you’re unsure, you always have the option to get in touch with support desk just in order to affirm what the particular problem is. An additional source of hindrance might be that you are trying to withdraw a significant deal of money.
Based on their findings, we have calculated the casino’s Safety Index, which is our score describing the safety and fairness of online casinos. If you enjoy playing real money slots and like having a vast collection to choose from, Caspero Casino is an excellent place for you. Caspero Casino offers its users a variety of ways to deposit and withdraw money. You can set deposit limits, wager limits, loss limits, and self-exclusion options to maintain control over your gaming activities and habits, as well as several third-party links. If you’re a Blackjack player, there are quite a few options to choose from, including European and Classic versions. This makes it an excellent place for players who love to try new releases and experiment with different styles.
Adopting reliable budgeting tools enables players to manage their spending and improves their gaming journey. Although many players view gambling as a stimulating pastime, there are times when it becomes overwhelming, making self-exclusion programs an essential tool for responsible play. Caspero Casino offers a selection of educational materials aimed at promoting responsible play, allowing players to make informed decisions. Ultimately, mastering this knowledge isn’t just about collecting bonuses; it’s about enhancing the overall gaming experience. With creative game design and sophisticated graphics, players can explore a colorful environment of opportunities.
Players will enjoy the vast variety of games available at Caspero Casino. For starters, every new account will be eligible to claim a massive welcome package that comes in the form of deposit-matching offers. While you’re enjoying all the benefits of the loyalty program, Caspero Casino has also prepared a slew of other promotions and bonuses you can dive into and enjoy. The site has gained plenty of attention thanks to its generous promotions, frequent bonuses, and exciting events. Write down your Caspero Casino review below and share your thoughts about this brand.
It’s also lovely to see lobby tabs for Bonus Buy and Megaways slots, which are very popular among Australians. It would take weeks or even months to fully explore the Caspero Casino gaming catalog. However, the fact that the casino cooperates with such reputable companies is a sign of a good reputation and a big potential. The club usually offers events from more than 30 categories. Players can add events to their favorites, use the search panel, follow live events with graphic streams, and utilize cash-out.
The actual arrival of money can require maximum 0-7 hours in some situations. Our Caspero withdrawal review suggests that they typically takes care of your payout query momentarily. Let’s see (1) how to withdraw your money at Caspero, (2) how much time is needed to withdraw, (3) and the miscellaneous payment methods available. Any additional hold-ups may be down to your casino site operator, payment gateway, or an intermediary.
There are also modern crypto options such as Bitcoin, Bitcoin Cash, Cardano, Dogecoin, Ethereum, Litecoin, USD Coin, Tether, and Ripple. Set clear time limits for each session and take regular breaks to keep your gaming balanced and enjoyable. Spending too much time at the tables or slots can increase the risk of developing unhealthy habits. You should never start gambling if you haven’t imposed budget limitations beforehand. Decide in advance how much you’re comfortable depositing, betting, and potentially losing, and stick to those boundaries. Each time you play, follow simple safety guidelines to stay in control.
Free demos are integral for responsible play and skill development in the gaming environment. This feature allows users to understand game mechanics and features comprehensively before wagering real money. They offer the most used methods which are email, online form and live chat.
The casino does offer this kind of a bonus but the spins will only be available on certain pre – determined games. Caspero Casino is a crypto – friendly online gaming site which offers a streamlined Casino and Sport betting experience all in one. Slots are the main focus, with tens of thousands of titles live, plus a full live casino suite featuring blackjack, roulette, baccarat, game shows and more. We independently conduct the industry’s most strict tests on casinos, bonuses, banking methods, and withdrawals to provide reliable insights.