HEX
Server: Apache
System: Linux host35.server.ae 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64
User: nokatech (2100)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/nokatech/public_html/wp-content/themes/consultox/functions.php
<?php

function get_theme_version() {
    $theme = wp_get_theme();
    return $theme->get('Version');
}
if (!defined('THEME_VERSION')) {
    define('THEME_VERSION', get_theme_version());
}

require_once get_template_directory() . '/includes/loader.php';


add_action('after_setup_theme', 'consultox_setup_theme');
add_action('after_setup_theme', 'consultox_load_default_hooks');

function consultox_setup_theme() {
    load_theme_textdomain('consultox', get_template_directory() . '/languages');
    add_theme_support('title-tag');
    add_theme_support('custom-header');
    add_theme_support('custom-background');
    add_theme_support('woocommerce');
    add_theme_support('wc-product-gallery-lightbox');
    add_theme_support('post-thumbnails');
    add_theme_support('automatic-feed-links');
    add_theme_support('wp-block-styles');
    add_theme_support('align-wide');
    add_theme_support('wp-block-styles');
    add_theme_support('editor-styles');
    $GLOBALS['content_width'] = 525;

    // Register image sizes
    add_image_size('consultox_370x310', 370, 310, true);
    add_image_size('consultox_70x70', 70, 70, true);
    add_image_size('consultox_370x290', 370, 290, true);
    add_image_size('consultox_440x305', 440, 305, true);
    add_image_size('consultox_310x305', 310, 305, true);
    add_image_size('consultox_1170x440', 1170, 440, true);

    // Register navigation menus
    register_nav_menus(array(
        'main_menu' => esc_html__('Main Menu', 'consultox'),
        'onepage_menu' => esc_html__('OnePage Menu', 'consultox'),
        'main_menu_two' => esc_html__('Main Menu Two', 'consultox'),
    ));

    add_theme_support('html5', array(
        'comment-form',
        'comment-list',
        'gallery',
        'caption',
    ));

    // Add theme support for Custom Logo.
    add_theme_support('custom-logo', array(
        'width' => 250,
        'height' => 250,
        'flex-width' => true,
    ));

    // Add theme support for selective refresh for widgets.
    add_theme_support('customize-selective-refresh-widgets');
    add_editor_style();
    add_action('admin_init', 'consultox_admin_init', 2000000);
}

function consultox_admin_init() {
    remove_action('admin_notices', array('ReduxFramework', '_admin_notices'), 99);
}

// Enqueue Scripts and Styles
function consultox_enqueue_scripts() {
    $theme_assets_dir = get_template_directory_uri() . '/assets/';

    // Enqueue CSS files from theme/assets/css/
    $css_files = scandir(get_template_directory() . '/assets/css/');
    foreach ($css_files as $css_file) {
        if (pathinfo($css_file, PATHINFO_EXTENSION) === 'css') {
            wp_enqueue_style(
                pathinfo($css_file, PATHINFO_FILENAME),
                $theme_assets_dir . 'css/' . $css_file,
                array(),
                THEME_VERSION
            );
        }
    }

    // Enqueue CSS files from theme/assets/css/block/
    $block_css_dir = get_template_directory() . '/assets/css/block/';
    $block_css_files = scandir($block_css_dir);
    foreach ($block_css_files as $block_css_file) {
        if (pathinfo($block_css_file, PATHINFO_EXTENSION) === 'css') {
            wp_enqueue_style(
                'block-' . pathinfo($block_css_file, PATHINFO_FILENAME),
                $theme_assets_dir . 'css/block/' . $block_css_file,
                array(),
                THEME_VERSION
            );
        }
    }

    // Enqueue CSS files from assets/css/theme/
    $default_css_dir = get_template_directory() . '/assets/css/theme/';
    $default_css_files = scandir($default_css_dir);
    foreach ($default_css_files as $default_css_file) {
        if (pathinfo($default_css_file, PATHINFO_EXTENSION) === 'css') {
            wp_enqueue_style(
                'default-' . pathinfo($default_css_file, PATHINFO_FILENAME),
                $theme_assets_dir . 'css/theme/' . $default_css_file,
                array(),
                THEME_VERSION
            );
        }
    }

    wp_enqueue_script( 'consultox-wps_main', get_template_directory_uri().'/assets/js/important/wps_main.js', array( 'jquery' ), '2.1.2', true );
	wp_enqueue_script('consultox-hover-slider', get_template_directory_uri() . '/assets/js/important/hover-slider.js', array(), '1.0.0', true);

    // Enqueue all JavaScript files in the theme/assets/js directory
    $js_files = scandir(get_template_directory() . '/assets/js/theme/');
    foreach ($js_files as $js_file) {
        if (pathinfo($js_file, PATHINFO_EXTENSION) === 'js') {
            wp_enqueue_script(
                pathinfo($js_file, PATHINFO_FILENAME),
                $theme_assets_dir . 'js/theme/' . $js_file,
                array('jquery'),
                THEME_VERSION,
                false
            );
        }
    }

    // Enqueue jquery-ui-core
    wp_enqueue_script('jquery-ui-core');

    // Enqueue comment-reply if on a singular page
    if (is_singular()) {
        wp_enqueue_script('comment-reply');
    }
}

add_action('wp_enqueue_scripts', 'consultox_enqueue_scripts');


/*---------- Enqueue Styles and Scripts ----------*/

/*---------- Enqueue styles and scripts ends ----------*/

// Google Fonts
function consultox_fonts_url() {
    $fonts_url = '';
    $font_families['Inter'] = 'Inter:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap';
    // Add more font families as needed
    $font_families = apply_filters('CONSULTOX/includes/classes/header_enqueue/font_families', $font_families);
    $query_args = array(
        'family' => urlencode(implode('|', $font_families)),
        'subset' => urlencode('latin,latin-ext'),
    );
    $protocol = is_ssl() ? 'https' : 'http';
    $fonts_url = add_query_arg($query_args, $protocol . '://fonts.googleapis.com/css');
    return esc_url_raw($fonts_url);
}

function consultox_theme_styles() {
    wp_enqueue_style('consultox-theme-fonts', consultox_fonts_url(), array(), null);
}

add_action('wp_enqueue_scripts', 'consultox_theme_styles');
add_action('admin_enqueue_scripts', 'consultox_theme_styles');

// Helper Function
if (!function_exists('consultox_set')) {
    function consultox_set($var, $key, $def = '') {
        if (is_object($var) && isset($var->$key)) {
            return $var->$key;
        } elseif (is_array($var) && isset($var[$key])) {
            return $var[$key];
        } elseif ($def) {
            return $def;
        } else {
            return false;
        }
    }
}

function dequeue_elementor_custom_icon_styles() {
    wp_dequeue_style('elementor-icons-shared-0-css');
}
add_action('wp_enqueue_scripts', 'dequeue_elementor_custom_icon_styles', 20);


// Add specific CSS class by filter body class.
$options = consultox_WSH()->option();
if (consultox_set($options, 'boxed_wrapper')) {
    add_filter('body_class', function ($classes) {
        $classes[] = 'boxed_wrapper';
        return $classes;
    });
}