options = get_option( MODULES_OPTION, [] ); $this->includes(); $this->load_sections(); $this->setup(); } /** * Include required files * * @return void */ private function includes() { require_once ADMINOPTIMIZER_PATH . 'includes/polyfill.php'; } /** * Initialize all sections * * @return void */ private function load_sections() { $this->modules['presets'] = new Presets(); $this->modules['performance'] = new Performance( $this->options ); $this->modules['security'] = new Security( $this->options ); $this->modules['content-seo'] = new Content_SEO( $this->options ); $this->modules['custom-fields-types'] = new Custom_Fields_Types( $this->options ); $this->modules['users'] = new Admin_Users( $this->options ); $this->modules['tools'] = new System_Tools( $this->options ); $this->modules['export'] = new Export_Import(); $this->settings = new Admin_Settings(); } /** * Setup admin menu * * @return void */ private function setup() { add_action( 'admin_menu', [ $this, 'add_menu' ] ); } /** * Add admin menu * * @return void */ public function add_menu() { $menu_title = __( 'Admin Optimizer', 'admin-optimizer' ); $page_title = __( 'Admin Optimizer', 'admin-optimizer' ); add_menu_page( $page_title, $menu_title, 'manage_options', ADMINOPTIMIZER_MODULES_MENU_SLUG, '', self::MENU_SVG_ICON ); do_action( 'adminoptimizer_add_submenu_page' ); } }