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);
Após o valor cair em tua conta, você já tem a possibilidade de selecionar operating-system eventos e games de seu lust, informar o monto e dar. Para comunicar dos grupos de apostas weil F12.Wager, basta fazer alguma conta na operadora e visitar a seção de grupos zero site. Lá, operating-system jogadores podem mirar operating-system grupos existentes e escolher esse o qual melhor atenda às suas necessidades e interesses. Os jogadores também tem an op??o de produzir seus registro f12 bet próprios grupos, convidando outros membros weil comunidade de apostas afin de ayudar. Na F12 Wager, é possível apostar em cependant de 15 esportes e jogar simply no Cassino on the internet. A proyecto oferece modalidades tradicionais e inusitadas, além de muitos Crash Game titles e muitos dos bons softwares da indústria.
A F12.Gamble é alguma plataforma de apostas on-line possuindo núcleo em palpites esportivos em modalidades conocidos tais como o futebol, basquete, tênis, vôlei, dentre outros. Além disso, o web site conta com algunos games de cassino em slots, games de mesa, accident video games e bem mais. Quaisquer F12.Wager apostas on the internet são feitas com saldo actual através de o depósito through Pics. A ex profeso em cassino é uma forma de divertimento popular dentre jogadores de en totalidad o globo. Com alguma variedade de jogos disponíveis, operating system cassinos online oferecem alguma experiência emocionante e interativa pra operating system jogadores.
Se você estiver em 1 aparato móvel, harmonie aca para entrar a versão mobile phone do web site. Agora, em relação às desvantagens, temos a capacidade de citar alguns pontos de melhoria. Por exemplo, a operadora não tem o recurso de streaming de eventos esportivos.
Essas transferências podem se tornar efetuadas afin de chave Pics by approach of e-mail, telefone, CPF e aleatórias, se venha a ser no fama do usuário. Além disto, uma dieses exigências tem a possibilidade de se tornar a verificação de identidade aprovada na F12.Wager Brasil. Zero entanto, a trampolín poderia disponibilizar também opções de deposito. Ainda o qual essas duas modalidades sejam conhecidas, a gama de métodos é um dos aspectos o qual consideramos autentico. Durante lá, também é possível filtrar as competições internacionais do futebol.
O site emprega tecnologias de criptografia robustas para guardar dados pessoais e financeiros, o o qual me dá a tranquilidade de ter o noção de o qual minhas informações estão seguros. Nestas apostas, é possível determinar mais de o acontecimiento afin de o único bilhete. Essa modalidade é procurada, especialmente, durante proliferar as chances carry out palpite. 5- Leia operating-system termos da incapere, finalize o seu cadastro e crie tua conta. Essa é nossa avaliação geral dos maiores pontos referentes a F12 gamble. Contudo, recomiendan la cual acesse o site pra fazer tua própria análise.
O design and style adaptável o torna confortável afin de jogar não só em seu smartphone, contudo também na uraian de seu monitor. La Cual versão é adequada para todos operating system sistemas operacionais, incluindo Home windows, Mac pc OS e Cpanel. O depósito mínimo na F12.gamble varia de acordo com o método de deposito determinado. Simply No problema do Pix, a quantia mínima é de R$10, enquanto nas criptomoedas é de R$50. A F12.Bet não conta com 1 aplicativo móvel dedicado, mas o site é en su totalidad responsivo e otimizado afin de dispositivos móveis.
A F12.Wager é uma marca que vem ganhando excelente projeção simply no mercado dieses apostas e lazer online perform País brasileiro, apesar de servir bem atual. Operating-system usuários de uma trampolín não têm o qual ze obsesionar apresentando o forte weil sua conta. Na F12.Bet não ajajai efetuar o saque ou confisco search engine marketing a sua permissão carry out balance em sua conta. Veja pormenores de da presença weil F12.Bet é alguma dasjenige viviendas de apostas que seguem as diretrizes definidas vello Governador Federal Government. A squadra de suporte está sempre disponível afin de ajudar apresentando dúvidas, inconveniencias técnicos e informações em relação à apostas.
Além disto, a F12 Wager é reconhecida através do seu compromisso possuindo o jogo responsável, disponibilizando ferramentas de autocontrole e limites de apostas. A F12 Wager oferece suporte ao usuário 24 hrs por dia, garantindo atendimento rápido e bune para apostadores. Operating System canais disponíveis incluem chat ao palpitante, telefone e email, facilitando a resolução de dúvidas sobre depósitos, saques e apostas na trampolín. Arriesgar em esportes com a F12 Gamble tem sido alguma jornal incrível, aproveitando a paixão o qual nós brasileiros compartilhamos por nossas partidas favoritas. Ela proporciona seus serviços 100 % virtuais, através de meio de alguma página weil internet. O internet site tem mecanismos de protocolo asi como SSL/TLS, la cual proporcionam a segurança de informações 2 usuários.
Part weil análise dos sites de apostas é relacionada o suporte o qual operating system compradores recebem. Na F12.Gamble, o conversation ao palpitante é o primary meio de contato apresentando a organizacion pra resolver questões e disparar dúvidas. Ao realizar palpites em internet sites de apostas, operating-system jogadores devem compartilhar dados pessoais e financeiros. Por isto, é essencial avaliar a segurança dieses plataformas e, neste sentido, a F12.Bet não decepciona.
A organizacion oferece também cassino online apresentando jogos ao festón, caça-níqueis e accident video games. A confiabilidade é uma questão importante afin de operating system jogadores la cual querem realizar apostas esportivas et visitar operating system games de cassino da organizacion. A boa notícia aqui é que a F12 wager é confiável e oferece toda a segurança necessária para seus usuários.
É notable destacar que, de acordo possuindo as leis brasileiras, pessoas menores de 20 anos não tem an op??o de participar de atividades de apostas. Nestes Casos, sony ericsson você é menor de idade, não tem que utilizar o site Reunión de Apostas systems qualquer outra casa de apostas on the internet. O web site não oferece nenhuma garantia em relação à a precisão das publicações. Qualquer modelo de ação que você tome apresentando operating-system conhecimentos que você encontra aqui são estritamente por tua conta e pe?ón. O internet site não será responsável por quaisquer perdas e/ou danos relacionados ao manuseio de nosso conteúdo editorial. F12.bet é o web site de apostas esportivas online la cual oferece aos usuários a chance de apostar em alguma ampla variedade de esportes e eventos esportivos em todo o mundo.
Sua funcionalidade não é de forma uma limitada em comparação apresentando o internet site formal. Mas, é notable ressaltar que conforme o Protestar Aca, o internet site f12.wager tem uma reputação ruim na organizacion, apresentando restricciones Five.eight de 12. A maioria dieses reclamações de usuários estão ligadas à dificuldades zero saque, mas é essencial destacar que a incapere informa operating system procedimentos padrão para concluir. A F12.Wager é alguma casa de apostas confiável, porque é legalizada e tem licença de funcionamento emitida internacionalmente em Curaçao. Além disso, investe em tecnologia de proteção de dados e transações financeiras, além de decir possuindo parcerias com instituições financeiras confiáveis simply no setor. A F12.Bet proporciona opções de depósito e saque via Pics e criptomoedas, atendendo às preferências dos jogadores brasileiros.
Operating-system retornos em apostas esportivas são calculados de acordo apresentando as chances como também o valor pue. Quem está mais habituado a aproveitar promoções e bônus tem an op??o de ficar campante apresentando as ofertas disponibilizadas zero web site. Há, por exemplo, um bônus de boas-vindas de 100% até R$500 para as apostas esportivas e mais um até R$100 afin de o cassino.
Isso impede o qual terceiros tenham acesso a informações sensíveis, como informações bancárias e pessoais. Nos Dias De Hoje o código F12VIP está disponível pra servir utilizado cuando cursaba o cadastro na F12 bet País brasileiro. Através De meio dele, é possível ze tornar elegível para as promoções weil odaie, sorteios e possíveis retornos accessories. Neste espaço, apresentamos operating system pontos e a nossa conclusão geral relacionada a odaie e por la cual a indicamos afin de iniciantes.
O conversation ao vivo merece 1 destaque distinct, porque fica disponível 24 horas através de vida. Desta Forma, operating-system apostadores conseguem coger em contato a qualquer instante do vida. No entanto, é possível encontrar momentos em o qual pequenas filas podem sony ericsson integrar e atrasar 1 bocado o atendimento. Primeiramente, o site da F12 gamble possui certificado SSL o qual responsable a segurança de dados e dos usuários de uma operadora. Complementando, existem sistemas de criptografia afin de impedir a ação de invasores e pessoas mal intencionadas.
Zero entanto, exista cacera de atendimento conta com o pace de espera mais em comparação ao talk ao vivo. Para os seus depósitos serem concluídos corretamente na odaie existem algumas informações significativas. Entre elas é dejar apenas através de meio de contas em teu nome, além de cumprir operating system requisitos mínimos do deposito. De H?r forma, verificamos quais são as modalidades de esportes disponíveis na incapere, as competições cobertas e operating system tipos de apostas. Diversos desse tipo detalhes em relação à a F12.Wager País e carry out mundo podem se tornar vistos nos tópicos a adoptar. Nossa equipe de suporte ao usuario está constantemente pronta pra ajudar possuindo qualquer questão que possa surgir, garantindo que sua experiência de apostas possa ser tão fluida quanto possível.
]]>