[Back]
<?php

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly.
}

get_template_part('inc/theme-functions');
get_template_part('inc/theme-hooks');
get_template_part('inc/forms-hooks');

/* This file include in after_setup_theme hook for avoid load_theme_textdomain error */
add_action('after_setup_theme', 'tmpcoder_after_setup_theme_func');
function tmpcoder_after_setup_theme_func(){
    get_template_part('inc/admin/global-options/init');
} 

/**
 * Custom template tags for this theme.
 */
get_template_part('inc/template-tags');

/**
 * Functions which enhance the theme by hooking into WordPress.
*/
get_template_part('inc/template-functions');

/**
 * Install Required Plugins.
*/
get_template_part('inc/admin/class-tgm-plugin-activation');

/**
 * Load Wizard file.
 */
get_template_part('inc/wizard/index');

/**
 * Compatibility
*/
get_template_part('inc/compatibility/class-spexo-starter-content');

/**
 * Block Patterns
 */
get_template_part('inc/compatibility/tmpcoder-patterns');

/**
 * Load all Customizer options
 */
if( ! class_exists('Redux_Framework_Plugin', false) ) { 
    get_template_part('inc/admin/customizer/tmpcoder-customizer');
}

add_filter( 'wpcf7_autop_or_not', '__return_false' );

function tmpcoder_get_theme_version_in_db(){
    return get_option('tmpcoder_theme_core_version', '');
}

function tmpcoder_set_theme_version_in_db($version){
    return update_option('tmpcoder_theme_core_version', $version);
}

add_action('init', 'tmpcoder_activation_after_switch_theme');
function tmpcoder_activation_after_switch_theme(){
    $current_ver_db = tmpcoder_get_theme_version_in_db();
    if ( $current_ver_db != '' ){
        if ( version_compare( $current_ver_db, TMPCODER_THEME_CORE_VERSION, '<' ) ){
            // upgrade action
            tmpcoder_set_theme_version_in_db(TMPCODER_THEME_CORE_VERSION);
            tmpcoder_cache_clear_after_update();
        }
    }else{
        // initial action
        tmpcoder_set_theme_version_in_db(TMPCODER_THEME_CORE_VERSION);
        tmpcoder_cache_clear_after_update();

    }
    // Default version add in migration version
    $_theme_migration = get_option('tmpcoder_theme_migration', '');
    if ( $_theme_migration == "" ){
        update_option('tmpcoder_theme_migration', TMPCODER_THEME_CORE_VERSION);
    }
}

function tmpcoder_cache_clear_after_update(){
    // Elementor options cache clear
    if ( did_action( 'elementor/loaded' ) ) {
        // Automatically purge and regenerate the Elementor CSS cache
        \Elementor\Plugin::instance()->files_manager->clear_cache();
    }

    if ( function_exists('tmpcoder_redux_options_update_theme_variable') ){
        $tmpcoder_theme_options = Tmpcoder_Site_Settings::tmpcoder_get_all_data();
        tmpcoder_redux_options_update_theme_variable($tmpcoder_theme_options, '', '');
    }

    delete_transient( 'templatescore_premium_plugin_info' );
    delete_transient( 'templatescore_premium_plugins_info' );
    delete_transient( 'templatescore_premium_theme_info' );
}

/*
** Notices
*/

get_template_part( 'inc/activation/class-welcome-notice' );

add_action( 'after_switch_theme', 'tmpcoder_activation_time');
add_action('after_setup_theme', 'tmpcoder_activation_time');
    
function tmpcoder_activation_time() {
    if ( false === get_option( 'tmpcoder_activation_time' ) ) {
        add_option( 'tmpcoder_activation_time', strtotime('now') );
    }
}

function tmpcoder_activation_hook() {
    if ( is_admin() ) {
        $wizard_run = get_option(TMPCODER_THEME_SLUG.'_wizard_page' , 0);
        $wizard_run2 = defined('TMPCODER_PRO_PLUGIN_KEY') ? get_option(TMPCODER_PRO_PLUGIN_KEY.'_wizard_page' , 0) : 0;
        if ( $wizard_run == 0 && $wizard_run2 != 1) {
            update_option(TMPCODER_THEME_SLUG.'_wizard_page', 1);
            wp_redirect( admin_url('admin.php?page=tmpcoder-theme-wizard') );
            exit();
        }
    }
}
add_action( 'after_switch_theme', 'tmpcoder_activation_hook' );

if (!function_exists('tmpcoder_avoid_elementor_redirection')) {
    
    function tmpcoder_avoid_elementor_redirection($plugin) {
        if ($plugin == 'elementor/elementor.php') {
            delete_transient( 'elementor_activation_redirect' );
        }
        if ($plugin == 'sastra-essential-addons-for-elementor/sastra-essential-addons-for-elementor.php') {
            delete_transient('tmpcoder_plugin_do_activation_redirect');
        }
    }
    add_action('activated_plugin', 'tmpcoder_avoid_elementor_redirection');
}

function tmpcoder_remove_auto_sizes_css_fix($add_auto_sizes){
    return false;
}
add_filter('wp_img_tag_add_auto_sizes', 'tmpcoder_remove_auto_sizes_css_fix');