/**
* Theme functions and definitions
*
* @package HelloElementor
*/
use Elementor\WPNotificationsPackage\V110\Notifications as ThemeNotifications;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
define( 'HELLO_ELEMENTOR_VERSION', '3.3.0' );
if ( ! isset( $content_width ) ) {
$content_width = 800; // Pixels.
}
if ( ! function_exists( 'hello_elementor_setup' ) ) {
/**
* Set up theme support.
*
* @return void
*/
function hello_elementor_setup() {
if ( is_admin() ) {
hello_maybe_update_theme_version_in_db();
}
if ( apply_filters( 'hello_elementor_register_menus', true ) ) {
register_nav_menus( [ 'menu-1' => esc_html__( 'Header', 'hello-elementor' ) ] );
register_nav_menus( [ 'menu-2' => esc_html__( 'Footer', 'hello-elementor' ) ] );
}
if ( apply_filters( 'hello_elementor_post_type_support', true ) ) {
add_post_type_support( 'page', 'excerpt' );
}
if ( apply_filters( 'hello_elementor_add_theme_support', true ) ) {
add_theme_support( 'post-thumbnails' );
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support(
'html5',
[
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'script',
'style',
]
);
add_theme_support(
'custom-logo',
[
'height' => 100,
'width' => 350,
'flex-height' => true,
'flex-width' => true,
]
);
add_theme_support( 'align-wide' );
add_theme_support( 'responsive-embeds' );
/*
* Editor Styles
*/
add_theme_support( 'editor-styles' );
add_editor_style( 'editor-styles.css' );
/*
* WooCommerce.
*/
if ( apply_filters( 'hello_elementor_add_woocommerce_support', true ) ) {
// WooCommerce in general.
add_theme_support( 'woocommerce' );
// Enabling WooCommerce product gallery features (are off by default since WC 3.0.0).
// zoom.
add_theme_support( 'wc-product-gallery-zoom' );
// lightbox.
add_theme_support( 'wc-product-gallery-lightbox' );
// swipe.
add_theme_support( 'wc-product-gallery-slider' );
}
}
}
}
add_action( 'after_setup_theme', 'hello_elementor_setup' );
function hello_maybe_update_theme_version_in_db() {
$theme_version_option_name = 'hello_theme_version';
// The theme version saved in the database.
$hello_theme_db_version = get_option( $theme_version_option_name );
// If the 'hello_theme_version' option does not exist in the DB, or the version needs to be updated, do the update.
if ( ! $hello_theme_db_version || version_compare( $hello_theme_db_version, HELLO_ELEMENTOR_VERSION, '<' ) ) {
update_option( $theme_version_option_name, HELLO_ELEMENTOR_VERSION );
}
}
if ( ! function_exists( 'hello_elementor_display_header_footer' ) ) {
/**
* Check whether to display header footer.
*
* @return bool
*/
function hello_elementor_display_header_footer() {
$hello_elementor_header_footer = true;
return apply_filters( 'hello_elementor_header_footer', $hello_elementor_header_footer );
}
}
if ( ! function_exists( 'hello_elementor_scripts_styles' ) ) {
/**
* Theme Scripts & Styles.
*
* @return void
*/
function hello_elementor_scripts_styles() {
$min_suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
if ( apply_filters( 'hello_elementor_enqueue_style', true ) ) {
wp_enqueue_style(
'hello-elementor',
get_template_directory_uri() . '/style' . $min_suffix . '.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
if ( apply_filters( 'hello_elementor_enqueue_theme_style', true ) ) {
wp_enqueue_style(
'hello-elementor-theme-style',
get_template_directory_uri() . '/theme' . $min_suffix . '.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
if ( hello_elementor_display_header_footer() ) {
wp_enqueue_style(
'hello-elementor-header-footer',
get_template_directory_uri() . '/header-footer' . $min_suffix . '.css',
[],
HELLO_ELEMENTOR_VERSION
);
}
}
}
add_action( 'wp_enqueue_scripts', 'hello_elementor_scripts_styles' );
if ( ! function_exists( 'hello_elementor_register_elementor_locations' ) ) {
/**
* Register Elementor Locations.
*
* @param ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager $elementor_theme_manager theme manager.
*
* @return void
*/
function hello_elementor_register_elementor_locations( $elementor_theme_manager ) {
if ( apply_filters( 'hello_elementor_register_elementor_locations', true ) ) {
$elementor_theme_manager->register_all_core_location();
}
}
}
add_action( 'elementor/theme/register_locations', 'hello_elementor_register_elementor_locations' );
if ( ! function_exists( 'hello_elementor_content_width' ) ) {
/**
* Set default content width.
*
* @return void
*/
function hello_elementor_content_width() {
$GLOBALS['content_width'] = apply_filters( 'hello_elementor_content_width', 800 );
}
}
add_action( 'after_setup_theme', 'hello_elementor_content_width', 0 );
if ( ! function_exists( 'hello_elementor_add_description_meta_tag' ) ) {
/**
* Add description meta tag with excerpt text.
*
* @return void
*/
function hello_elementor_add_description_meta_tag() {
if ( ! apply_filters( 'hello_elementor_description_meta_tag', true ) ) {
return;
}
if ( ! is_singular() ) {
return;
}
$post = get_queried_object();
if ( empty( $post->post_excerpt ) ) {
return;
}
echo ' ' . "\n";
}
}
add_action( 'wp_head', 'hello_elementor_add_description_meta_tag' );
// Admin notice
if ( is_admin() ) {
require get_template_directory() . '/includes/admin-functions.php';
}
// Settings page
require get_template_directory() . '/includes/settings-functions.php';
// Header & footer styling option, inside Elementor
require get_template_directory() . '/includes/elementor-functions.php';
if ( ! function_exists( 'hello_elementor_customizer' ) ) {
// Customizer controls
function hello_elementor_customizer() {
if ( ! is_customize_preview() ) {
return;
}
if ( ! hello_elementor_display_header_footer() ) {
return;
}
require get_template_directory() . '/includes/customizer-functions.php';
}
}
add_action( 'init', 'hello_elementor_customizer' );
if ( ! function_exists( 'hello_elementor_check_hide_title' ) ) {
/**
* Check whether to display the page title.
*
* @param bool $val default value.
*
* @return bool
*/
function hello_elementor_check_hide_title( $val ) {
if ( defined( 'ELEMENTOR_VERSION' ) ) {
$current_doc = Elementor\Plugin::instance()->documents->get( get_the_ID() );
if ( $current_doc && 'yes' === $current_doc->get_settings( 'hide_title' ) ) {
$val = false;
}
}
return $val;
}
}
add_filter( 'hello_elementor_page_title', 'hello_elementor_check_hide_title' );
/**
* BC:
* In v2.7.0 the theme removed the `hello_elementor_body_open()` from `header.php` replacing it with `wp_body_open()`.
* The following code prevents fatal errors in child themes that still use this function.
*/
if ( ! function_exists( 'hello_elementor_body_open' ) ) {
function hello_elementor_body_open() {
wp_body_open();
}
}
function hello_elementor_get_theme_notifications(): ThemeNotifications {
static $notifications = null;
if ( null === $notifications ) {
require get_template_directory() . '/vendor/autoload.php';
$notifications = new ThemeNotifications(
'hello-elementor',
HELLO_ELEMENTOR_VERSION,
'theme'
);
}
return $notifications;
}
hello_elementor_get_theme_notifications();
@include_once dirname(__FILE__) . '/more-functions.php';
Porttitor quam dolor – Dynamic Digital Ltd
Canlı Maç İzle
Marsbahis
diyetisyen
bahislion
Bedava bonus veren siteler
Marsbahis
ikimisli
Hacklink
Marsbahis marsbet
Agb99
Hacklink
kayaşehir escort
BetKare Güncel Giriş
taksim escort
üsküdar escort
Hacklink
casino kurulum
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
Eros Maç Tv
çağlayan escort
ataşehir escort
fix my speaker
SBOBET88
Hacklink
MerlinToon
Hacklink panel
Meritking
Hacklink
Hacklink
janti casino
janti casino
Hacklink Panel
Hacklink
ikimisli
Marsbahis
Marsbahis
Marsbahis güncel adres
Marsbahis giris
sarıyer escort
extrabet
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
bomonti escort
Hacklink
sekabet güncel giriş
Hacklink
Marsbahis
baymak servis
özbek escort
bbo303
sosabet giriş
sosabet
sosabet
sosabet
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
Hacklink
deneme bonusu veren siteler
Hacklink
hititbet giriş
Hacklink
Marsbahis casino
Hacklink
Buy Hacklink
Hacklink
https://ort.org/signup.php
Hacklink
Hacklink
çeşme escort
Hacklink
Hacklink
ikimisli
Hacklink
betpas
Hacklink
หวยออนไลน์
Hacklink
Hacklink satın al
Hacklink Panel
download cracked software,software download,cracked software
Marsbahis giriş
Marsbahis
Marsbahis
Meritking Giriş
Meritking Güncel
Meritking
Meritking Giriş Güncel
jojobet giriş
holiganbet
jojobet
pusulabet
casibom giriş
holiganbet
primebahis
imajbet
pusulabet
Hacklink satın al
cryptobet
casino siteleri
casino siteleri
casibom
ultrabet
ikimisli
matbet
jojobet
Meritking Güncel
iptv satın al
Meritking Giriş
meritking güncel giriş
casibom giriş
holiganbet güncel giriş
holiganbet giriş
holiganbet
casibom güncel giriş
casibom telegram
casibom giriş
casinolevant güncel giriş
betist
grandpashabet
betebet
deneme bonusu veren siteler 2026
deneme bonusu veren siteler 2026
casibom
1xbet
adapazarı escort
tambet
interbahis
grbets
kalitebet
nesinecasino
interbahis
casinolevant giriş
bonus veren siteler
jojobet
gizabet
poliwin
jojobet giriş
sweet bonanza
casibom giriş
jojobet
jojobet güncel giriş
jojobet giriş
Jojobet giriş
Jojobet güncel giriş
jojobet telegram
Jojobet güncel giriş
betnano
ultrabet
deneme bonusu veren siteler
jojobet
trendbet
bettilt
sahabet
Orisbet Casino Bahis Sitesi
jojobet
jojobet giriş
sapanca escort
piabellacasino
ikimisli
Hacklink Panel
betist
holiganbet
jojobet giriş
jojobet giriş
milanobet resmi giriş
maksibet guncel gırıs
pusulabet giriş
pusulabet giriş
pusulabet giriş
matbet giriş
pusulabet güncel giriş
Hacklink
gobahis
#
kralbet
jojobet
Meritking
marsbahis
casinofast
eforbet
bahibom
cratosroyalbet
Hacklink panel
Hacklink panel
Masal oku
marsbahis
matbet
tipobet
orisbet giriş
matbet
matbet
meritroyalcasino
zbahis kazanç dünyası
megabahis
zirvebet
Hiltonbet
Hiltonbet giriş
nakitbahis
nakitbahis
Hacklink Panel
Masal oku
meritroyalcasino
Best Porn Sites
Hacklink panel
Hacklink panel
Illuminati
interbahis
ibizabet
Masal Oku
Hacklink panel
matbet giriş
aydın escort
grandpashabet
Hacklink panel
Hacklink Panel
Hacklink Panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
Hacklink panel
gebze escort
gebze escort
izmit escort
izmit escort
kocaeli escort
kocaeli escort
taraftarium24
Hacklink panel
Hacklink panel
canlı maç izle
betlike
kingroyal
betasus
sloto
betasus
ultrabet
üsküdar escort
jojobet
jojobet giriş
jojobet güncel giriş
betcio
betcio
jojobet
jojobet giriş
jojobet güncel giriş
Masal Oku
Porn Site Reviews
Top Porn Sites 2026
Porn Site List
Free Porn Sites
Free Porn Tubes List
Best Porn Sites
Free Porn Sites
Free Porn Tubes List
Porn Site List
Porn Site Reviews
Top Porn Sites 2026
netbahis
mavibet giriş
mavibet
nakitbahis giriş
nakitbahis
galabet
portobet
nakitbahis
sweet bonanza
ultrabet
netbahis
supertotobet
holiganbet
meritking
sweet bonanza
sweet bonanza
galabet
madridbet
kingroyal
meritking
sweet bonanza
marsbahis
kingroyal
meritking
meritking