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);
Coming From exhilarating BetMexico slot machines to be able to engaging table games and live dealer options, the casino provides a full spectrum of gaming activities. Known regarding its commitment in order to security, BetMexico ensures a safe environment where participants can enjoy their favorite online games worry-free. BetMexico Casino is not just an online on line casino; it’s a comprehensive platform where entertainment and opportunity meet. Together With its wide array of video games, generous bonuses, and commitment to gamer satisfaction, BetMexico is the best choice for anyone looking to be able to enjoy a premium gaming experience.
Join now and discover why BetMexico Casino en línea is the top choice with regard to gaming enthusiasts around the world. With multiple payment options available, including well-known e-wallets and credit cards, players can easily manage their funds. The betmexico promociones betmexico atención a clientes team is always on hand in order to assist with any inquiries or issues, ensuring a smooth gaming experience. For those who prefer skill over opportunity, the table online games at BetMexico provide a blend of strategy and excitement.
Additionally, the live supplier games offer a great immersive experience that makes you feel like you’re at a actual casino, all from the comfort associated with your house. Normal gamers can also enjoy tailored rewards through the VERY IMPORTANT PERSONEL program, making every sport more rewarding. Encouraged in order to the Best Manual to be able to BetMexico Casino, the go-to destination regarding online gaming enthusiasts seeking a mix of entertainment, rewards, and thorough gaming options. Whether you are a seasoned gamer or fresh to the online gambling scene, BetMexico On Range Casino promises an unparalleled experience, ensuring that every visit is both fun and rewarding. Yes, BetMexico en linea is fully optimized for mobile phone devices, allowing players to enjoy their favorite video games on the go.
At BetMexico On Line Casino, the video game selection is carefully curated to be able to combine both classic and modern gaming experiences. With titles from the best video game developers in the industry, gamers can enjoy high-RTP slots, strategic table online games such as blackjack and roulette, and the thrill of real-time betting in sports events. The platform continually updates its offerings to be able to include the mejores juegos de BetMexico, ensuring there is always something fresh to be able to check out.
Players looking for the mejores slot machine games de BetMexico will find them here, with large payment potentials and engaging game play. Whether you’re in the mood regarding classic three-reel online games or the latest video slots, BetMexico On Collection Casino has it all.
]]>
Many on-line internet casinos offer welcome bonuses as a kind regarding promotion to tempt players to sign up, and these are paid after the participant’s first — and sometimes second or third — deposit. Sometimes a participant doesn’t even need to be able to make a first deposit in order to receive 1, and these are known as zero down payment bonuses. On The particular Internet gambling is practically unregulated for the reason that they are not discussed in current laws. Presently There are very few local on-line internet casinos in Mexico due in order to a great incomplete legislative foundation. Typically the betting bureau has not issued a single license to the local online casinos.
JackpotOur team works tough to keep all the above options up to date so that you will never find expired or useless bonuses. In addition to be able to prepaid cards, Mexicans often make use of virtual wallets and digital payment techniques such as Click2Pay or InstaDebit. Within Mexico, there is a national lottery that fully complies with the laws of the region. Right Right now There are other equally popular online games, regarding example, board games.
But local legislation is a bit outdated and requires significant improvements. Given the fact that in Mexico, online internet casinos are not therefore much worth noting that the law does not prohibit gambling on just offshore sites. Depending on your location, there is usually a good online on line casino available to be able to sign up at that offers a bonus https://www.betmexicox.mx in order to slots gamers in your area.
An Individual can filter our massive selection associated with free slot machine game video games by simply theme (Mexico) to display the available Mexican-themed slot machines. These Kinds Of video games are available entirely with respect to free, with no registration required. 1 regarding the ways to quickly identify Mexican slot device games is to be able to check the symbols that populate their reels. Most on-line slot machines with a Mexico theme feature symbols that align with the country’s foods culture, holidays, or festivals. Examples of these stereotypical symbols are chili, tequila, taco, guitar, peppers, mariachi, pinata, and so on. In Case it is a video game themed after a particular Mexican person or brand, you may also find images related in order to this branding used as symbols.
Inside the same method, the retro car symbols are scatters than can only appear on the central reels. 3 regarding them award 3 free spins, during which the wilds will appear stacked over entire reels at once. In Addition To as promised, Route Of Mexico features the some classic EGT jackpots, likely to be able to be unlocked at any moment during the sport. The particular very name of the video game pretty much gave away what Route Regarding Mexico was going to look like.
Those associated with the Samusng Galaxy family are especially suitable regarding their bigger screens. Apple company devices are also able in order to load and exploit the on the internet casino internet sites mentioned here. Whichever model you have, if it’s a contemporary one, it will do the trick for you. Coming From a consumer’s standpoint, the fact regarding the matter is that simply no serious restrictions are in perform to limit your gaming experience. When you are prudent enough in your choice, you could even secure yourself live baccarat online games with sellers sitting across the table speaking your native language. In the Route of Mexico slot, you can trigger a free rotates circle and a few stacked wild symbols.
Typically the on-line gambling dens with respect to Mexican participants support the options that enable you in order to leverage the workaround called e-wallets. We hope this doesn’t appear as a surprise – the Mexico online casino on the internet internet sites will most probably work on your mobile phone as well as on your computer. Being mobile-friendly is the norm nowadays, and the Mexican on the internet internet casinos carry out a really great job associated with that.
Typically the rise in on the internet casinos means there are many iGaming options for participants in Mexico in order to consider. Variety is the spice associated with life, but it also means that participants have to be vigilant against below-par betting sites that might not pay out there on winnings or have poor customer support. All regarding the above changes will entail the emergence associated with new high-tech solutions in the Mexican market.
]]>
At BetMexico Casino, the video game selection is carefully curated to be able to combine both classic and modern gaming experiences. Together With titles from the best video game developers in the industry, gamers can enjoy high-RTP slots, strategic table video games such as baccarat and roulette, and the thrill regarding real-time betting in sports events. Typically the platform continually updates its offerings to be able to include the mejores juegos de BetMexico, ensuring there is always something fresh to explore. BetMexico On Line Casino is not just an online on line casino; it’s a extensive platform where entertainment and chance meet. Along With its wide array associated with video games, generous bonuses, and commitment to be able to player satisfaction, BetMexico is the ideal choice for anyone looking to be able to enjoy a premium gaming experience.
Acceso
Additionally, the live seller online games offer an immersive experience that makes you feel such as you’re at a genuine on line casino, all from the comfort regarding your house. A platform created to showcase all of our efforts aimed at bringing the vision regarding a safer and more transparent online gambling industry to be able to actuality. A Great initiative we launched with the goal in order to create a worldwide self-exclusion system, which will allow vulnerable gamers in order to block their access to all on the internet betting opportunities.
Join now and discover why BetMexico Online Casino en línea is the top choice with view to gaming enthusiasts around the world. Coming From exhilarating BetMexico slot device games to be able to engaging table online games and live dealer options, the online casino provides a total spectrum regarding gaming activities. Known regarding its commitment in order to security, BetMexico ensures a safe environment where gamers can enjoy their favorite video games worry-free. Together With multiple payment options available, including popular e-wallets and credit cards, gamers can easily manage their cash. Typically the betmexico atención a compradores team is always on hand to be able to assist with any inquiries or issues, ensuring a smooth gaming experience.
Yes, BetMexico en linea is fully optimized regarding cellular devices, allowing participants to enjoy their favorite online games on the go. Gamers looking for the mejores slot equipment games de BetMexico will find them here, with higher betmexicox.mx payout potentials and engaging game play. Whether you’re in the mood with regard to classic three-reel video games or the latest video slot machines, BetMexico On Line Casino has it all.
Welcome in order to the Best Manual in order to BetMexico Casino, the go-to destination with view to on-line gaming enthusiasts seeking a mix regarding entertainment, rewards, and extensive gaming options. Whether you are a seasoned player or new to the online gambling scene, BetMexico Online Casino promises a great unparalleled experience, ensuring that every visit is both enjoyable and rewarding. No cost professional educational courses for online casino employees aimed at industry best practices, improving participant experience, and fair approach in order to wagering. Regular participants can also enjoy tailored rewards through the VERY IMPORTANT PERSONEL system, making every game more rewarding. With Respect To those who prefer skill over possibility, the table games at BetMexico provide a blend regarding strategy and excitement.
]]>