includes(); $this->init_hooks(); } /** * Include required files. */ private function includes() { require_once AISOULE_PLUGIN_DIR . 'includes/class-aisoule-api.php'; require_once AISOULE_PLUGIN_DIR . 'includes/class-aisoule-admin.php'; require_once AISOULE_PLUGIN_DIR . 'includes/class-aisoule-woocommerce.php'; require_once AISOULE_PLUGIN_DIR . 'includes/class-aisoule-chat-widget.php'; } /** * Initialize plugin hooks. */ private function init_hooks() { add_action( 'init', array( $this, 'load_textdomain' ) ); add_action( 'admin_init', array( $this, 'check_woocommerce_dependency' ) ); // Register plugin action links add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'add_action_links' ) ); // Instantiate modules AIsoule_Admin::instance(); AIsoule_WooCommerce_Hooks::instance(); AIsoule_Chat_Widget::instance(); } /** * Load translation files. */ public function load_textdomain() { load_plugin_textdomain( 'aisoule-connect', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); } /** * Notify admin if WooCommerce is missing. */ public function check_woocommerce_dependency() { if ( ! class_exists( 'WooCommerce' ) && current_user_can( 'activate_plugins' ) ) { add_action( 'admin_notices', array( $this, 'woocommerce_missing_notice' ) ); } } /** * Admin notice when WooCommerce is not active. */ public function woocommerce_missing_notice() { ?>