%s requires LearnDash LMS plugin to be active.', 'ld-adaptive-learning'),'Adaptive Learning with LearnDash'); printf ( "

%s

", $class, $message ); } } add_action ( 'admin_notices', __NAMESPACE__ . "\\require_dependency" ); // Directory define ( 'AL_DIR', plugin_dir_path ( __FILE__ ) ); define ( 'Al_DIR_FILE', AL_DIR . basename ( __FILE__ ) ); define ( 'AL_INCLUDES_DIR', trailingslashit ( AL_DIR . 'includes' ) ); // URLS define ( 'AL_URL', trailingslashit ( plugins_url ( '', __FILE__ ) ) ); define ( 'AL_ASSETS_URL', trailingslashit ( AL_URL . 'assets' ) ); // Autoload classes for the plugin //spl_autoload_register ( __NAMESPACE__ . "\Main::autoloader" ); //require_once INCLUDES_DIR . "functions.php"; //require_once INCLUDES_DIR . "AL_Core_Adaptive_Learning.php"; /** * Class Main for plugin initiation * * @since 1.0.0 */ final class Main { public static $version = '1.7'; // Main instance protected static $_instance = null; protected function __construct () { register_activation_hook ( __FILE__, array ( $this, 'activation' ) ); register_deactivation_hook ( __FILE__, array ( $this, 'deactivation' ) ); // Upgrade add_action ( 'plugins_loaded', array ( $this, 'upgrade' ) ); add_action ( 'admin_menu', array( $this, 'dashboard_menu' ), 1 ); add_action ( 'admin_enqueue_scripts', array ( $this, 'admin_enqueue_scripts' ) ); add_action ( 'wp_enqueue_scripts', array ( $this, 'enqueue_scripts' ) ); $this->includes(); // new AL_Core_Adaptive_Learning(); // new AL_Post_Types(); // new AL_Localize_Script(); // new AL_Install(); } // dashboard menu public static function dashboard_menu () { if( ! class_exists( 'WN_DASHBOARD_Page' ) ) require_once AL_INCLUDES_DIR . 'wn-dashboard.php'; // Create main menu global $menu; $menuExist = false; foreach($menu as $item) { if(strtolower($item[2]) == 'wooninjas-dashboard') { $menuExist = true; } } if( ! $menuExist ) { if( class_exists( 'WN_DASHBOARD_Page' ) ) { $obj_dashboard = new WN_DASHBOARD_Page(); // add_menu_page( __( 'Adaptive Learning', 'ld-adaptive-learning' ), __( 'WooNinjas', 'ld-adaptive-learning' ), 'manage_options', 'sfwd-courses-levels', [ $obj_dashboard, 'dashboard_page' ], 'https://wordpress-475011-1491998.cloudwaysapps.com/wn_dashboard_icon.png' ); // add_submenu_page( 'wooninjas-dashboard', __( 'Dashboard', 'ld-adaptive-learning' ), __( 'Dashboard', 'ld-adaptive-learning' ), 'manage_options', 'wooninjas-dashboard', [ $obj_dashboard, 'dashboard_page' ] ); } } } public static function includes () { if ( file_exists( AL_INCLUDES_DIR . 'admin/AL_Localize_Script.php' ) ) { require_once( AL_INCLUDES_DIR . 'admin/AL_Localize_Script.php' ); } if ( file_exists( AL_INCLUDES_DIR . 'admin/AL_Post_Types.php' ) ) { require_once( AL_INCLUDES_DIR . 'admin/AL_Post_Types.php' ); } if ( file_exists( AL_INCLUDES_DIR . 'AL_Core_Adaptive_Learning.php' ) ) { require_once( AL_INCLUDES_DIR . 'AL_Core_Adaptive_Learning.php' ); } if ( file_exists( AL_INCLUDES_DIR . 'AL_Install.php' ) ) { require_once( AL_INCLUDES_DIR . 'AL_Install.php' ); } if ( file_exists( AL_INCLUDES_DIR . 'functions.php' ) ) { require_once( AL_INCLUDES_DIR . 'functions.php' ); } } public static function autoloader ( $class ) { $class = str_replace ( __NAMESPACE__ . "\\" , "" , $class ); if ( file_exists ( INCLUDES_DIR . $class . ".php" ) ) { include INCLUDES_DIR . $class . ".php"; } elseif ( file_exists( INCLUDES_DIR . "admin" . DIRECTORY_SEPARATOR . $class . ".php" ) ) { include INCLUDES_DIR . "admin/" . $class . ".php"; } } /** * @return $this */ public static function instance () { if ( is_null ( self::$_instance ) ) { self::$_instance = new self(); } return self::$_instance; } /** * Activation function hook * * @return void */ public static function activation () { if ( !current_user_can ( 'activate_plugins' ) ) return; update_option ( 'al_version', self::$version ); } /** * Deactivation function hook * No used in this plugin * * @return void */ public static function deactivation () {} public static function upgrade () { if ( get_option ( 'al_version' ) != self::$version ) { al_upgrade(); } } /** * Enqueue scripts on admin */ public static function admin_enqueue_scripts () { $obj = new WN_DASHBOARD_Page(); $obj->enquey_scripts(); wp_enqueue_style ( 'al-admin-css', AL_ASSETS_URL . 'css/al-admin.css', array(), self::$version ); $deps = array ( 'jquery', 'jquery-ui-core', 'backbone', 'editor' ); wp_enqueue_script ( 'al-admin-js', AL_ASSETS_URL . 'js/al-admin.js', $deps, self::$version, true ); } /** * Enqueue scripts on frontend */ public static function enqueue_scripts () { wp_enqueue_style ( 'toastr', AL_ASSETS_URL . 'css/toastr.min.css', array(), self::$version ); wp_enqueue_style ( 'al-css', AL_ASSETS_URL . 'css/al.css', array(), self::$version ); $deps = array ( 'jquery', 'jquery-ui-core', 'backbone', 'editor' ); wp_enqueue_script ( 'toastr', AL_ASSETS_URL . 'js/toastr.min.js', $deps, self::$version, true ); wp_enqueue_script ( 'al-js', AL_ASSETS_URL . 'js/al.js', $deps, self::$version, true ); } } /** * Main instance * * @return Main */ function AL() { return Main::instance(); } AL();