• File: class_hooks.php
  • Full Path: /home/chassiw/www/wp-content/themes/reon/inc/class_hooks.php
  • File size: 6.79 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

class Reon_Hooks {

	public function __construct() {
		
		
		
		
		// Return HTML for Header
		add_filter( 'reon_render_header', array( $this, 'reon_render_header' ) );

		// Return HTML for Footer
		add_filter( 'reon_render_footer', array( $this, 'reon_render_footer' ) );


		/* Get All Header */
		add_filter( 'reon_list_header', array( $this, 'reon_list_header' ) );

		/* Get All Footer */
		add_filter( 'reon_list_footer', array( $this,  'reon_list_footer' ) );

		/* Define Layout */
		add_filter( 'reon_define_layout', array( $this,  'reon_define_layout' ) );

		/* Define Wide */
		add_filter( 'reon_define_wide_boxed', array( $this,  'reon_define_wide_boxed' ) );

		/* Get layout */
		add_filter( 'reon_get_layout', array( $this, 'reon_get_layout' ) );

		/* Get sidebar */
		add_filter( 'reon_theme_sidebar', array( $this, 'reon_theme_sidebar' )  );

		/* Wide or Boxed */
		add_filter( 'reon_width_site', array( $this, 'reon_width_site' ) );

		

    }

	
	public function reon_render_header(){

		$current_id = reon_get_current_id();

		// Get header default from customizer
		$global_header = get_theme_mod('global_header','default');

		// Header in Metabox of Post, Page
	    $meta_header = get_post_meta($current_id, 'ova_met_header_version', 'true');
	  	
	    // Header use in post,page
	    if( $current_id != '' && $meta_header != 'global'  && $meta_header != '' ){
	    	$header = $meta_header;
	  	}else if( reon_is_blog_archive() ){ // Header use in blog
	  		$header = get_theme_mod('blog_header', 'default');
	  	}else if( is_singular('post') ){ // Header use in single post
	  		$header = get_theme_mod('single_header', 'default');
	  	}else{ // Header use in global
	  		$header = $global_header;
	  	}

		$header_split = explode(',', $header);

		if ( reon_is_elementor_active() && isset( $header_split[1] ) ) {

			$post_id_header = reon_get_id_by_slug( $header_split[1] );
			return Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $post_id_header );

		}else if ( reon_is_elementor_active() && !isset( $header_split[1] ) ) {

			return get_template_part( 'header/header', $header );

		}else if ( !reon_is_elementor_active()  ) {

			return get_template_part( 'header/header', 'default' );

		}

	}


	
	public function reon_render_footer(){

		$current_id = reon_get_current_id();

		// Get Footer default from customizer
		$global_footer = get_theme_mod('global_footer', 'default' );

		// Footer in Metabox of Post, Page
	    $meta_footer =  get_post_meta( $current_id, 'ova_met_footer_version', 'true' );
		
	  	

	  	if( $current_id != '' && $meta_footer != 'global'  && $meta_footer != '' ){
	  		$footer = $meta_footer;
	  	}else if( reon_is_blog_archive() ){
	  		$footer = get_theme_mod('blog_footer', 'default');
	  	}else if( is_singular('post') ){
	  		$footer = get_theme_mod('single_footer', 'default');
	  	}else{
	  		$footer = $global_footer;
	  	}

	  	$footer_split = explode(',', $footer);

		if ( reon_is_elementor_active() && isset( $footer_split[1] ) ) {

			$post_id_footer = reon_get_id_by_slug( $footer_split[1] );
			return Elementor\Plugin::instance()->frontend->get_builder_content_for_display( $post_id_footer );
			
		}else if ( reon_is_elementor_active() && !isset( $footer_split[1] ) ) {

			get_template_part( 'footer/footer', $footer );

		}else if( !reon_is_elementor_active() ){

			get_template_part( 'footer/footer', 'default' );			
		}
	}



	function reon_list_header(){

	    $hf_header_array['default'] = esc_html__( 'Default', 'reon' );

	    if( !reon_is_elementor_active() ) return $hf_header_array;

	    $args_hf = array(
	        'post_type' => 'ova_framework_hf_el',
	        'post_status'   => 'publish',
	        'posts_per_page' => '-1',
	        'meta_query' => array(
	            array(
	                'key'     => 'hf_options',
	                'value'   => 'header',
	                'compare' => '=',
	            ),
	        )
	    );

	    $hf = new WP_Query( $args_hf );

	    if($hf->have_posts()):  while($hf->have_posts()) : $hf->the_post();
	        global $post;
	        $hf_header_array[ 'ova,'.$post->post_name ] = get_the_title();

	    endwhile;endif; wp_reset_postdata();

	    return $hf_header_array;
	}

	
	function reon_list_footer(){

	    $hf_footer_array['default'] = esc_html__( 'Default', 'reon' );

	    if( !reon_is_elementor_active() ) return $hf_footer_array;

	    $args_hf = array(
	        'post_type' => 'ova_framework_hf_el',
	        'post_status'   => 'publish',
	        'posts_per_page' => '-1',
	        'meta_query' => array(
	            array(
	                'key'     => 'hf_options',
	                'value'   => 'footer',
	                'compare' => '=',
	            ),
	        )
	    );

	    $hf = new WP_Query( $args_hf );

	    if($hf->have_posts()):  while($hf->have_posts()) : $hf->the_post();
	        global $post;
	        $hf_footer_array[ 'ova,'.$post->post_name ] = get_the_title();

	    endwhile;endif; wp_reset_postdata();

	    return $hf_footer_array;
	}


	function reon_define_layout(){
		return array(
			'layout_1c' => esc_html__('No Sidebar', 'reon'),
			'layout_2r' => esc_html__('Right Sidebar', 'reon'),
			'layout_2l' => esc_html__('Left Sidebar', 'reon'),
		);
	}


	function reon_get_layout(){
		
		$current_id = reon_get_current_id();

		$layout = get_post_meta( $current_id, 'ova_met_main_layout', true );

		if( is_singular( 'post' ) ){

		    $layout = get_theme_mod( 'single_layout', 'layout_2r' );
		    $width_sidebar = get_theme_mod( 'single_sidebar_width', '320' );

		}else if( reon_is_woo_active() && is_product_category() ){
			
			$layout = get_theme_mod( 'woo_layout', 'layout_1c' );
			$width_sidebar = get_theme_mod( 'woo_sidebar_width', '320' );
		}
		else if( reon_is_blog_archive() ){

		    $layout = get_theme_mod( 'blog_layout', 'layout_2r' );
		    $width_sidebar = get_theme_mod( 'blog_sidebar_width', '320' );

		}

		else{

		    $layout = get_theme_mod( 'global_layout', 'layout_1c' );
		    $width_sidebar = get_theme_mod( 'global_sidebar_width', '320' );
		}

		if( $current_id && $layout == 'global' ){
		    $layout = get_post_meta( $current_id, 'ova_met_main_layout', true );
		}

		if( isset( $_GET['layout_sidebar'] ) ){
			$layout = $_GET['layout_sidebar'];
		}

		return array( $layout, $width_sidebar );
	}

	function reon_width_site(){
		$current_id = reon_get_current_id();
		$width_site = get_post_meta( $current_id, 'ova_met_width_site', true );

		if( $current_id && $width_site != 'global' ){
		    $width = $width_site;
		}else{
			$width = get_theme_mod( 'global_width_site', 'wide' );
		}

		return $width;
	}

	function reon_theme_sidebar(){
		$layout_sidebar = apply_filters( 'reon_get_layout', '' );
		return $layout_sidebar[0];
	}

	function reon_define_wide_boxed(){
		return array(
			'wide' => esc_html__('Wide', 'reon'),
			'boxed' => esc_html__('Boxed', 'reon'),
		);
	}

}

new Reon_Hooks();