constants();
if ( !self::$instance->check_requirements() ) {
return;
}
self::$instance->includes();
self::$instance->hooks();
// Set up localisation
self::$instance->load_textdomain();
self::$instance->settings = new DGWT_WCAS_Settings;
self::$instance->search = new DGWT_WCAS_Search;
self::$instance->result_details = new DGWT_WCAS_Result_Details;
}
self::$instance->tnow = time();
return self::$instance;
}
/**
* Constructor Function
*/
private function __construct() {
self::$instance = $this;
}
/*
* Check requirements
*/
private function check_requirements() {
if ( version_compare( PHP_VERSION, '5.3.0' ) < 0 ) {
add_action( 'admin_notices', array( $this, 'admin_notice_php' ) );
return false;
}
return true;
}
/*
* Notice: PHP version less than 5.3
*/
public function admin_notice_php() {
?>
Ajax Search for WooCommerce: You need PHP version at least 5.3 to run this plugin. You are currently using PHP version ', DGWT_WCAS_DOMAIN );
echo PHP_VERSION . '.';
?>
define( 'DGWT_WCAS_VERSION', '1.1' );
$this->define( 'DGWT_WCAS_NAME', 'Ajax Search for WooCommerce' );
$this->define( 'DGWT_WCAS_FILE', __FILE__ );
$this->define( 'DGWT_WCAS_DIR', plugin_dir_path( __FILE__ ) );
$this->define( 'DGWT_WCAS_URL', plugin_dir_url( __FILE__ ) );
$this->define( 'DGWT_WCAS_DOMAIN', 'ajax-search-for-woocommerce' );
$this->define( 'DGWT_WCAS_SETTINGS_KEY', 'dgwt_wcas_settings' );
$this->define( 'DGWT_WCAS_SEARCH_ACTION', 'dgwt_wcas_ajax_search' );
$this->define( 'DGWT_WCAS_RESULT_DETAILS_ACTION', 'dgwt_wcas_result_details' );
$this->define( 'DGWT_WCAS_WOO_PRODUCT_POST_TYPE', 'product' );
$this->define( 'DGWT_WCAS_WOO_PRODUCT_CATEGORY', 'product_cat' );
$this->define( 'DGWT_WCAS_WOO_PRODUCT_TAG', 'product_tag' );
$this->define( 'DGWT_WCAS_WC_AJAX_ENDPOINT', true );
$this->define( 'DGWT_WCAS_DEBUG', false );
//$this->define( 'DGWT_WCAS_PRO_VERSION', true );
}
/**
* Define constant if not already set
* @param string $name
* @param string|bool $value
*/
private function define( $name, $value ) {
if ( !defined( $name ) ) {
define( $name, $value );
}
}
/**
* Include required core files.
*/
public function includes() {
require_once DGWT_WCAS_DIR . 'includes/functions.php';
require_once DGWT_WCAS_DIR . 'includes/install.php';
require_once DGWT_WCAS_DIR . 'includes/admin/settings/class-settings-api.php';
require_once DGWT_WCAS_DIR . 'includes/admin/settings/class-settings.php';
require_once DGWT_WCAS_DIR . 'includes/register-scripts.php';
require_once DGWT_WCAS_DIR . 'includes/admin/admin-menus.php';
require_once DGWT_WCAS_DIR . 'includes/widget.php';
require_once DGWT_WCAS_DIR . 'includes/style.php';
require_once DGWT_WCAS_DIR . 'includes/shortcode.php';
require_once DGWT_WCAS_DIR . 'includes/class-search.php';
require_once DGWT_WCAS_DIR . 'includes/class-result-details.php';
require_once DGWT_WCAS_DIR . 'includes/integrations/wp-tao.php';
}
/**
* Actions and filters
*/
private function hooks() {
add_action( 'admin_init', array( $this, 'admin_scripts' ) );
//@todo create_cron_jobs action
//@todo fire_cron function init
}
/*
* Create cron if not exists
*/
public function create_cron_jobs() {
//@todo create cron jobs
}
/*
* Enqueue admin sripts
*/
public function admin_scripts() {
// Register CSS
wp_register_style( 'dgwt-wcas-admin-style', DGWT_WCAS_URL . 'assets/css/admin-style.css', array(), DGWT_WCAS_VERSION );
// Enqueue CSS
wp_enqueue_style( array(
'dgwt-wcas-admin-style',
'wp-color-picker'
) );
wp_enqueue_script( 'wp-color-picker' );
}
/*
* Register text domain
*/
private function load_textdomain() {
$lang_dir = dirname( plugin_basename( DGWT_WCAS_FILE ) ) . '/languages/';
load_plugin_textdomain( DGWT_WCAS_DOMAIN, false, $lang_dir );
}
}
}
// Init the plugin
function DGWT_WCAS() {
return DGWT_WC_Ajax_Search::get_instance();
}
add_action( 'plugins_loaded', 'DGWT_WCAS' );