Current File : /home/pariaqke/frecom.net/wp-content/plugins/conult-themer/conult-themer.php
<?php 
/**
* Plugin Name: Conult Themer
* Description: Open Setting, Post Type, Shortcode ... for theme 
* Version: 1.2.9
* Author: Gaviasthemes Team
**/

define( 'GAVIAS_CONULT_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'GAVIAS_CONULT_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );

if (!function_exists('is_plugin_active')) {
   include_once(ABSPATH . 'wp-admin/includes/plugin.php');
}

class Gavias_Conult_Themer{
   private static $instance = null;
   public static function instance() {
      if ( is_null( self::$instance ) ) {
         self::$instance = new self();
      }
      return self::$instance;
   }

	public function __construct(){
		$this->include_files();
      add_filter('single_template', array($this, 'single_template'), 99, 1);

      add_action('wp_head', array($this, 'gaviasthemer_ajax_url'));
      add_action('wp_enqueue_scripts', array($this, 'register_scripts'));
      add_action('admin_enqueue_scripts', array($this, 'register_scripts_admin'));
      add_action('init', array($this, 'conult_themer_init'));
      $this->gavias_plugin_update();
	}

   public function conult_themer_init(){
      $root = plugin_basename(dirname(__FILE__, 3));
      load_plugin_textdomain('conult-themer', false, "$root/languages/");
   }

   public function gaviasthemer_ajax_url(){
      echo '<script> var ajaxurl = "' . admin_url('admin-ajax.php') . '";</script>';
   }

	public function include_files(){

      // Post Types
      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'posttypes/portfolio.php');
      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'posttypes/template.php');

      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'redux/init.php');
      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'includes/functions.php');
		require_once(GAVIAS_CONULT_PLUGIN_DIR . 'includes/hook.php');
      
      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'sample/init.php'); 
      require_once(GAVIAS_CONULT_PLUGIN_DIR . 'widgets/recent_posts.php'); 

      //Template & Layout
      if (function_exists('is_plugin_active') && is_plugin_active( 'elementor/elementor.php' )) {
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'elementor/init.php'); 
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'layout/model.php'); 
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'layout/layout.php');
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'layout/hook.php');
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'layout/elementor.php');
         require_once(GAVIAS_CONULT_PLUGIN_DIR . 'layout/frontend.php');
      }
	}

   public function single_template($single_template){
      global $post;

      if(!$post || empty($post)) return;

      $post_type = $post->post_type;

      if($post_type == 'footer'){ 
         $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-builder-footer.php';
      }
      if($post_type == 'gva_header'){
         $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-builder-header.php';
      }
      if($post_type == 'gva__template'){
         $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-template.php';
         $template_type = get_post_meta($post->ID, 'gva_template_type', true);
         if($template_type == 'header_layout'){
            $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-builder-header.php';
         }
         if($template_type == 'footer_layout'){
            $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-builder-footer.php';
         }
         if($template_type == 'single_product_layout'){
            $single_template = trailingslashit( plugin_dir_path( __FILE__ ) .'templates' ) . 'single-builder-product.php';
         }
      } 
      return $single_template;
   }

   public function register_scripts(){
      $js_dir = plugin_dir_url( __FILE__ ).'assets/js';
      $css_dir = plugin_dir_url( __FILE__ ) . 'assets/css';
      wp_register_script('gavias-themer', $js_dir.'/main.js', array('jquery'), null, true);
      wp_enqueue_script('gavias-themer');
      wp_enqueue_style('conult-themer', $css_dir . '/style.css');
      wp_enqueue_style('widget-icon-list');
      wp_enqueue_style('widget-icon-box');
      wp_enqueue_style('widget-social-icons');
   }

   public function register_scripts_admin() {
      $css_dir = plugin_dir_url( __FILE__ ).'assets/css';
      wp_enqueue_style('conult-icons-custom', GAVIAS_CONULT_PLUGIN_URL . 'assets/icons/style.css' );
   }

   public function gavias_plugin_update() {
      require 'plugin-update/plugin-update-checker.php';
      Puc_v4_Factory::buildUpdateChecker(
         'http://gaviasthemes.com/plugins/dummy_data/conult-themer-update-plugin.json',
         __FILE__,
         'conult-themer'
      );
   }
}

new Gavias_Conult_Themer();