Moving some admin logic to the admin settings class

This commit is contained in:
Brian 2021-10-06 12:40:20 -06:00
parent 1d695ea372
commit 85f7d28a0f
Signed by: brian
GPG Key ID: DE1A5390A3B84CD8
2 changed files with 35 additions and 30 deletions

View File

@ -16,27 +16,50 @@ class AdminSettings {
* @return void * @return void
*/ */
public function __construct() { public function __construct() {
add_action( 'admin_menu', array( $this, 'append_to_admin_menu' ), 12 ); add_action( 'admin_menu', array( $this, 'add_admin_menu' ), 11 );
add_action( 'admin_menu', array( $this, 'add_submenu_items' ), 12 );
add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) );
} }
/** /**
* Append to the admin menu (prevents doubling). * Setting up the WordPress admin menu for this plugin. Also setting up
* a submenu item that will take the place of the main settings page.
* *
* @since 1.0.0 * @since 1.0.0
* *
* @return void * @return void
*/ */
public function append_to_admin_menu(): void { public function add_admin_menu(): void {
$parent_slug = 'nmsp-plugin-name-menu-slug'; $page_title = __( 'Namespace Plugin Name - Settings', 'nmsp_plugin_name_settings_title' );
$page_title = __( 'Namespace Plugin Name - Settings', 'nmsp_plugin_name_settings_title' ); $menu_title = __( 'Settings', 'nmsp_plugin_name_settings_title' );
$menu_title = __( 'Settings', 'nmsp_plugin_name_settings_title' ); $capability = 'manage_options';
$capability = 'manage_options'; $menu_slug = 'nmsp-plugin-name-menu-slug';
$menu_slug = $parent_slug; $icon = plugins_url( '../assets/images/menu-icon.svg', __FILE__ );
$callback = array( $this, 'show_main_settings_page' ); $position = 100;
$callback = array( $this, 'show_main_settings_page' );
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $callback ); add_menu_page( $page_title, $menu_title, $capability, $menu_slug, '', $icon, $position );
add_submenu_page( $menu_slug, $page_title, $menu_title, $capability, $menu_slug, $callback );
}
/**
* Append to the admin menu entry for this plugin.
*
* @since 1.0.0
*
* @return void
*/
public function add_submenu_items(): void {
$parent_menu_slug = 'nmsp-plugin-name-menu-slug';
$page_title = __( 'Namespace Plugin Name - Settings', 'nmsp_plugin_name_settings_title' );
$menu_title = __( 'Settings', 'nmsp_plugin_name_settings_title' );
$menu_slug = $parent_menu_slug;
$capability = 'manage_options';
$callback = '';
add_submenu_page( $parent_menu_slug, $page_title, $menu_title, $capability, $menu_slug, $callback );
} }
/** /**

View File

@ -113,28 +113,10 @@ class App {
*/ */
public function scaffold_plugin(): void { public function scaffold_plugin(): void {
if ( is_admin() ) { if ( is_admin() ) {
add_action( 'admin_menu', array( $this, 'add_admin_menu' ) ); // admin only logic here
} }
}
/** // other logic here
* Setting up the WordPress dashboard menu for this plugin.
* Setting this here to be overriden later so that a base is always available.
*
* @since 1.0.0
*
* @return void
*/
public function add_admin_menu(): void {
$page_title = __( 'Namespace Plugin Name', 'nmsp_plugin_name_menu' );
$menu_title = __( 'Namespace Plugin Name', 'nmsp_plugin_name_menu' );
$capability = 'manage_options';
$menu_slug = 'nmsp-plugin-name-menu-slug';
$callback = '';
$icon = plugins_url( '../assets/images/menu-icon.svg', __FILE__ );
$position = 100;
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $callback, $icon, $position );
} }
/** /**