plugin_path() . '/view/'); if(is_admin()){ $this->init($page_title, $menu_title, $capability, $menu_slug, $priority, $menu_as_link); add_action('a2wl_admin_assets', array($this, 'admin_register_assets'), 1); add_action('a2wl_admin_assets', array($this, 'admin_enqueue_assets'), 2); add_action('wp_loaded', array($this, 'before_render_action')); if ($this->is_current_page() && !A2WL_Woocommerce::is_woocommerce_installed() && !has_action('admin_notices', array($this, 'woocomerce_check_error'))) { add_action('admin_notices', array($this, 'woocomerce_check_error')); } if ($this->is_current_page() && !has_action('admin_notices', array($this, 'global_system_message'))) { add_action('admin_notices', array($this, 'global_system_message')); } } } function woocomerce_check_error() { echo '

'.__('Ali2Woo notice! Please install the WooCommerce plugin first.', 'ali2woo-lite').'

'; } function global_system_message() { $system_message = a2wl_get_setting('system_message'); if($system_message && !empty($system_message['message'])){ $message_class='updated'; if($system_message['type'] == 'error'){ $message_class='error'; } echo '

'.$system_message['message'].'

'; } } protected function init($page_title, $menu_title, $capability, $menu_slug, $priority, $menu_as_link) { $this->page_title = $page_title; $this->menu_title = $menu_title; $this->capability = $capability; $this->menu_slug = $menu_slug; $this->menu_as_link = $menu_as_link; add_action('a2wl_init_admin_menu', array($this, 'add_submenu_page'), $priority); } public function add_submenu_page($parent_slug) { if($this->menu_as_link){ $page_id = add_submenu_page($parent_slug, $this->page_title, $this->menu_title, $this->capability, $this->menu_slug); } else { $page_id = add_submenu_page($parent_slug, $this->page_title, $this->menu_title, $this->capability, $this->menu_slug, array($this, 'render')); } add_action("load-$page_id", array($this, 'configure_screen_options')); } public function before_render_action() { if ($this->is_current_page()) { $this->before_admin_render(); } } public function before_admin_render() { } public function configure_screen_options() { } abstract public function render($params = array()); public function admin_register_assets() { if ($this->is_current_page()) { if (!wp_style_is('a2wl-admin-style', 'registered')) { wp_register_style('a2wl-admin-style', A2WL()->plugin_url() . '/assets/css/admin_style.css', array(), A2WL()->version); } if (!wp_style_is('a2wl-admin-style-new', 'registered')) { wp_register_style('a2wl-admin-style-new', A2WL()->plugin_url() . '/assets/css/admin_style_new.css', array(), A2WL()->version); } if (!wp_script_is('a2wl-admin-script', 'registered')) { wp_register_script('a2wl-admin-script', A2WL()->plugin_url() . '/assets/js/admin_script.js', array('jquery'), A2WL()->version); $lang_data = array(); wp_localize_script('a2wl-admin-script', 'a2wl_common_data', array('baseurl' => A2WL()->plugin_url().'/','lang' => apply_filters('a2wl_configure_lang_data', $lang_data), 'lang_cookies'=>A2WL_AliexpressLocalizator::getInstance()->getLocaleCookies(false))); } if (!wp_script_is('a2wl-admin-svg', 'registered')) { wp_register_script('a2wl-admin-svg', A2WL()->plugin_url() . '/assets/js/svg.min.js', array('jquery'), A2WL()->version); } /* select2 */ if (!wp_style_is('a2wl-select2-style', 'registered')) { wp_register_style('a2wl-select2-style', A2WL()->plugin_url() . '/assets/js/select2/css/select2.min.css', array(), A2WL()->version); } if (!wp_script_is('a2wl-select2-js', 'registered')) { wp_register_script('a2wl-select2-js', A2WL()->plugin_url() . '/assets/js/select2/js/select2.min.js', array('jquery'), A2WL()->version); } /*jquery.lazyload*/ if (!wp_script_is('a2wl-lazyload-js', 'registered')) { wp_register_script('a2wl-lazyload-js', A2WL()->plugin_url() . '/assets/js/jquery/jquery.lazyload.js', array('jquery'), A2WL()->version); } /* bootstrap */ if (!wp_style_is('a2wl-bootstrap-style', 'registered')) { wp_register_style('a2wl-bootstrap-style', A2WL()->plugin_url() . '/assets/js/bootstrap/css/bootstrap.min.css', array(), A2WL()->version); } if (!wp_script_is('a2wl-bootstrap-js', 'registered')) { wp_register_script('a2wl-bootstrap-js', A2WL()->plugin_url() . '/assets/js/bootstrap/js/bootstrap.min.js', array('jquery'), A2WL()->version); } } } public function admin_enqueue_assets($page) { if ($this->is_current_page()) { wp_enqueue_script('jquery-effects-core'); if (!wp_style_is('a2wl-admin-style', 'enqueued')) { wp_enqueue_style('a2wl-admin-style'); wp_style_add_data( 'a2wl-admin-style', 'rtl', 'replace' ); } if (!wp_style_is('a2wl-admin-style-new', 'enqueued')) { wp_enqueue_style('a2wl-admin-style-new'); } if (!wp_script_is('a2wl-admin-script', 'enqueued')) { wp_enqueue_script('a2wl-admin-script'); } if (!wp_script_is('a2wl-admin-svg', 'enqueued')) { wp_enqueue_script('a2wl-admin-svg'); } /* select2 */ if (!wp_style_is('a2wl-select2-style', 'enqueued')) { wp_enqueue_style('a2wl-select2-style'); } if (!wp_script_is('a2wl-select2-js', 'enqueued')) { wp_enqueue_script('a2wl-select2-js'); } /*jquery.lazyload*/ if (!wp_script_is('a2wl-lazyload-js', 'enqueued')) { wp_enqueue_script('a2wl-lazyload-js'); } /* bootstrap */ if (!wp_style_is('a2wl-bootstrap-style', 'enqueued')) { wp_enqueue_style('a2wl-bootstrap-style'); } if (!wp_script_is('a2wl-bootstrap-js', 'enqueued')) { wp_enqueue_script('a2wl-bootstrap-js'); } } } protected function is_current_page(){ return /*strpos($_SERVER['REQUEST_URI'], 'wp-admin/admin.php') !== false*/is_admin() && isset($_REQUEST['page']) && $_REQUEST['page'] && $this->menu_slug == $_REQUEST['page']; } } }