load_dependencies(); $this->define_admin_hooks(); $this->define_public_hooks(); add_action('init', array($this, 'init')); } public function init(){ $this->define_constants(); $this->wporg_shortcodes_init(); $this->write_log(); } private function define_constants(){ $assets_url = plugins_url( 'assets/', dirname(__FILE__) ); !defined('FAQ_META_KEY') && define('FAQ_META_KEY', '_th_faq_items'); !defined('FAQ_SETTINGS_META_KEY') && define('FAQ_SETTINGS_META_KEY', '_faq_settings_color'); !defined('FAQ_SETTINGS_ENABLE_OPTION') && define('FAQ_SETTINGS_ENABLE_OPTION', '_faq_settings_enable_option'); !defined('THFAQ_ASSETS_URL_ADMIN') && define('THFAQ_ASSETS_URL_ADMIN', $assets_url. 'admin/'); !defined('THFAQ_ASSETS_URL_PUBLIC') && define('THFAQ_ASSETS_URL_PUBLIC', $assets_url. 'public/'); } private function load_dependencies() { if(!function_exists('is_plugin_active')){ include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } /** * The class responsible for defining all actions that occur in the admin area. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/admin/class-thfaq-admin-manage-faq.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/admin/class-thfaq-admin-manage-settings.php'; /** * The class responsible for defining all actions that occur in the public-facing * side of the site. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/public/class-thfaq-public.php'; } /** * Register all of the hooks related to the admin area functionality * of the plugin. */ private function define_admin_hooks() { $manage_settings = new THFAQ_Admin_Manage_Settings(); $manage_faq = new THFAQ_Admin_Manage_FAQ(); add_action('init', array($manage_faq, 'define_init_action')); add_action('add_meta_boxes',array($manage_faq, 'metabox_section')); add_action('save_post',array($manage_faq, 'save_faq_postdata')); add_filter( 'plugin_action_links_'.THFAQ_BASE_NAME, array($manage_faq, 'plugin_action_links') ); add_filter('manage_posts_columns',array($manage_faq,'add_custom_column')); add_action('manage_posts_custom_column' ,array($manage_faq, 'add_custom_column_data'), 10, 2 ); add_action('admin_menu', array($manage_settings,'faq_general_setting_menu')); add_action('init', array($manage_settings, 'get_manage_settings_fields')); add_action('admin_enqueue_scripts', array($manage_settings, 'enqueue_styles_and_scripts'), 99); } private function define_public_hooks() { if(!is_admin() || (defined( 'DOING_AJAX' ) && DOING_AJAX)){ $plugin_public = new THFAQ_Public(); add_filter('the_content', array($plugin_public,'add_data_into_the_content')); add_action( 'wp_enqueue_scripts',array($plugin_public, 'enqueue_public_styles_and_scripts'),999 ); } } private function wporg_shortcodes_init(){ if(!is_admin() || (defined( 'DOING_AJAX' ) && DOING_AJAX)){ $plugin_public = new THFAQ_Public(); add_shortcode( "FAQ", array($plugin_public,"create_faq_shortcode")); } } public static function write_log( $log=false ){ if( true === WP_DEBUG ){ if( is_array( $log ) || is_object( $log ) ){ error_log( print_r( $log, true ) ); }else{ error_log( $log ); } } } }// en of class endif;