File: /home/scientificreligi/public_html/wp-content/themes/scientific-religion/inc/hook.class.php
<?php
if (!defined('ABSPATH')) {
	exit; // Exit if accessed directly
}
if (!class_exists('G5Plus_Auteur_Hook')) {
	class G5Plus_Auteur_Hook {
		private static $_instance;
		public static function getInstance()
		{
			if (self::$_instance == NULL) {
				self::$_instance = new self();
			}
			return self::$_instance;
		}
		public function init() {
			$this->addAction();
			$this->addFilter();
		}
		private function addAction() {
			/**
			 * Initialize Theme
			 */
			add_action('after_setup_theme', array(G5Plus_Auteur()->themeSetup(), 'init'));
			/**
			 * Required Plugins
			 */
			add_action('tgmpa_register', array(G5Plus_Auteur()->requirePlugin(), 'init'));
			/**
			 * Register Sidebar
			 */
			add_action('widgets_init', array(G5Plus_Auteur()->registerSidebar(), 'init'));
			add_action('init',array(G5Plus_Auteur()->assets(),'registerAssets'));
			/**
			 * Enqueue FrontEnd Resource
			 */
			add_action('wp_enqueue_scripts', array(G5Plus_Auteur()->assets(), 'enqueueAssets'),99);
			add_action('wp_enqueue_scripts', array(G5Plus_Auteur()->assets(),'enqueue_assets_content_block'),100);
            add_action('wp_enqueue_scripts',array(G5Plus_Auteur()->assets(),'enqueue_icon_font'));
            add_action('wp_enqueue_scripts',array(G5Plus_Auteur()->assets(),'getCustomCss'),100);
            add_action('wp_footer', array(G5Plus_Auteur()->assets(), 'custom_script'));
            add_action('enqueue_block_editor_assets',array(G5Plus_Auteur()->assets(),'enqueue_block_editor_assets'));
			/**
			 * Head Meta
			 * *******************************************************
			 */
			add_action('wp_head',array(G5Plus_Auteur()->templates(),'head_meta'), 0);
			/**
			 * Social Meta
			 * *******************************************************
			 */
			add_action('wp_head', array(G5Plus_Auteur()->templates(),'social_meta'), 5);
			/**
			 * Search Popup
			 * *******************************************************
			 */
			add_action('wp_ajax_nopriv_search_popup', array(G5Plus_Auteur()->ajax(),'search_result'));
			add_action('wp_ajax_search_popup', array(G5Plus_Auteur()->ajax(),'search_result'));
			/**
			 * Load Posts
			 * *******************************************************
			 */
			add_action('wp_ajax_nopriv_pagination_ajax', array(G5Plus_Auteur()->ajax(),'pagination_ajax_response'));
			add_action('wp_ajax_pagination_ajax', array(G5Plus_Auteur()->ajax(),'pagination_ajax_response'));
            /**
             * Login, Register
             */
            add_action('wp_ajax_nopriv_gsf_user_login_ajax', array(G5Plus_Auteur()->ajax(), 'gsf_user_login_ajax_callback'));
            add_action('wp_ajax_gsf_user_login_ajax', array(G5Plus_Auteur()->ajax(), 'gsf_user_login_ajax_callback'));
            add_action('wp_ajax_nopriv_gsf_user_sign_up_ajax', array(G5Plus_Auteur()->ajax(), 'gsf_user_sign_up_ajax_callback'));
            add_action('wp_ajax_gsf_user_sign_up_ajax', array(G5Plus_Auteur()->ajax(), 'gsf_user_sign_up_ajax_callback'));
            /**
             * Product Quickview
             */
            add_action( 'wp_ajax_nopriv_product_quick_view', array(G5Plus_Auteur()->ajax(),'popup_product_quick_view'));
            add_action( 'wp_ajax_product_quick_view', array(G5Plus_Auteur()->ajax(),'popup_product_quick_view') );
            /**
             * Portfolio Show Gallery
             * ***********************************************
             */
            add_action( 'wp_ajax_nopriv_portfolio_gallery', array(G5Plus_Auteur()->ajax(),'portfolio_gallery'));
            add_action( 'wp_ajax_portfolio_gallery', array(G5Plus_Auteur()->ajax(),'portfolio_gallery') );
            /**
			 * Site Loading Template
			 * *******************************************************
			 */
			add_action('g5plus_before_page_wrapper',array(G5Plus_Auteur()->templates(),'site_loading'),5);
			/**
			 * Top Drawer Template
			 * *******************************************************
			 */
			add_action('g5plus_before_page_wrapper_content',array(G5Plus_Auteur()->templates(),'top_drawer'),10);
			/**
			 * Header Template
			 * *******************************************************
			 */
			add_action('g5plus_before_page_wrapper_content',array(G5Plus_Auteur()->templates(),'header'),15);
			/**
			 * Content Wrapper Start Template
			 * *******************************************************
			 */
			add_action('g5plus_main_wrapper_content_start',array(G5Plus_Auteur()->templates(),'content_wrapper_start'),1);
			/**
			 * Content Wrapper End Template
			 * *******************************************************
			 */
			add_action('g5plus_main_wrapper_content_end',array(G5Plus_Auteur()->templates(),'content_wrapper_end'),1);
			/**
			 * Back To Top Template
			 * *******************************************************
			 */
			add_action('g5plus_after_page_wrapper',array(G5Plus_Auteur()->templates(),'back_to_top'),5);
			/**
			 * Page Title Template
			 * *******************************************************
			 */
			add_action('g5plus_before_main_content',array(G5Plus_Auteur()->templates(),'page_title'),5);
			/**
			 * Footer
			 * *******************************************************
			 */
			add_action('g5plus_after_page_wrapper_content',array(G5Plus_Auteur()->templates(),'footer'),5);
			/**
			 * Blog
			 * *******************************************************
			 */
			add_action('g5plus_before_post_image',array(G5Plus_Auteur()->templates(),'zoom_image_thumbnail'));
			add_action('g5plus_after_archive_wrapper',array(G5Plus_Auteur()->blog(),'pagination_markup'));
			//add_action('g5plus_before_archive_wrapper',array(G5Plus_Auteur()->blog(),'category_filter_markup'));
			add_action('g5plus_after_archive_post',array(G5Plus_Auteur()->blog(),'archive_ads_markup'));
			add_action( 'pre_get_posts', array( G5Plus_Auteur()->query(), 'pre_get_posts' ) );
			/**
			 * Single Blog
			 * *******************************************************
			 */
			add_action('g5plus_single_post_tag_share',array(G5Plus_Auteur()->templates(),'post_single_tag_share'));
            add_action('g5plus_after_single_post',array(G5Plus_Auteur()->templates(),'post_single_author_info'),15);
			add_action('g5plus_after_single_post',array(G5Plus_Auteur()->templates(),'post_single_navigation'),20);
			add_action('g5plus_after_single_post',array(G5Plus_Auteur()->templates(),'post_single_related'),25);
			add_action('g5plus_after_single_post',array(G5Plus_Auteur()->templates(),'post_single_comment'),30);
            add_action('wp_footer',array(G5Plus_Auteur()->templates(),'post_single_reading_process'));
			/**
			 * Single Page
			 * *******************************************************
			 */
			add_action('g5plus_after_single_page',array(G5Plus_Auteur()->templates(),'post_single_comment'),30);
            add_action( 'wp_ajax_gsf_custom_css_editor', array( G5Plus_Auteur()->assets(), 'custom_css_editor_callback' ));
            add_action( 'wp_ajax_nopriv_gsf_custom_css_editor', array( G5Plus_Auteur()->assets(), 'custom_css_editor_callback' ));
            add_action( 'wp_ajax_gsf_custom_css_block_editor', array( G5Plus_Auteur()->assets(), 'custom_css_block_editor_callback' ));
            add_action( 'wp_ajax_nopriv_gsf_custom_css_block_editor', array( G5Plus_Auteur()->assets(), 'custom_css_block_editor_callback' ));
		}
		private function addFilter() {
			// add icon font
			add_filter('gsf_font_icon_assets', array(G5Plus_Auteur()->fontIcons(), 'registerAssets'));
			add_filter('gsf_font_icon_config', array(G5Plus_Auteur()->fontIcons(), 'registerConfig'));
			add_filter('body_class',array(G5Plus_Auteur()->helper(),'body_class'));
			add_filter('get_the_excerpt',array(G5Plus_Auteur()->helper(),'excerpt'),100);
			add_filter('gsf_extra_class',array(G5Plus_Auteur()->helper(),'extra_class'));
			add_filter('widget_categories_args', array(G5Plus_Auteur()->helper(),'widget_categories_args'));
			add_filter('wp_list_categories',array(G5Plus_Auteur()->helper(),'cat_count_span'),10,2);
			add_filter('get_archives_link', array(G5Plus_Auteur()->helper(),'archive_count_span'));
			add_filter('wp_nav_menu_args', array(G5Plus_Auteur()->helper(), 'main_menu_one_page'), 20);
			/*$lazy_load_images = G5Plus_Auteur()->options()->get_lazy_load_images();
			if ($lazy_load_images === 'on') {
				add_filter( 'post_thumbnail_html', array(G5Plus_Auteur()->helper(),'post_thumbnail_lazyLoad'), 10, 3 );
				add_filter('the_content',array(G5Plus_Auteur()->helper(),'content_lazyLoad'));
			}*/
            add_filter('xmenu_submenu_transition', array($this, 'menuTransition'), 20,2);
            add_filter('gpl_spinner_color',array($this,'postLikeSpinnerColor'));
            add_filter( 'editor_stylesheets', array( G5Plus_Auteur()->assets(), 'custom_editor_styles' ), 100 );
		}
		public function menuTransition($transition,$args) {
            if (isset($args->main_menu)) {
                $transition = G5Plus_Auteur()->options()->get_menu_transition();
            }
		    return $transition;
        }
        public function postLikeSpinnerColor() {
            return G5Plus_Auteur()->options()->get_accent_color();
        }
	}
}