plugin_slug = $plugin->get_plugin_slug(); // Add the options page and menu item. add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) ); // Load admin style sheet and JavaScript. add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) ); add_action( 'add_meta_boxes', array( $this, 'stock_alert_box' ) ); } /** * Return an instance of this class. * * @since 1.0 * * @return object A single instance of this class. */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } /** * Register and enqueue admin-specific style sheet. * * @since 1.0 * * @return null Return early if no settings page is registered. */ public function enqueue_admin_styles() { wp_enqueue_style( $this->plugin_slug .'-admin-styles', AFFINITEPSAURL . 'admin/assets/css/admin.min.css', array(), Affinite_Back_In_Stock::VERSION ); } /** * Register the administration menu for this plugin into the WordPress Dashboard menu. * * @since 1.0 */ public function add_plugin_admin_menu() { $manage = apply_filters( 'affinite_back_in_stock_manage', 'manage_options' ); add_submenu_page( 'woocommerce', esc_html__( 'Back in Stock Notification', 'affinite-back-in-stock' ), esc_html__( 'Back in Stock Notification', 'affinite-back-in-stock' ), $manage, $this->plugin_slug, array( $this, 'display_plugin_admin_page' ) ); } /** * Render the settings page for this plugin. * * @since 1.0.0 */ public function display_plugin_admin_page() { include_once( 'views/admin.php' ); } /** * Metabox for order detail * * @since 1.0.0 */ public function stock_alert_box() { include('includes/metabox.php'); add_meta_box( 'stock-alert', esc_html__( 'Stock Alert data', 'affinite-back-in-stock' ), 'affinite_stock_alert_meta_box', 'product', 'normal', 'high' ); } }