In the WordPress admin area I want to make a submenu like:

Email Campaigns

  • Wait for approve
  • Approved
  • Sent
  • Blacklist

    add_menu_page( 'Email Campaigns', 'Email Campaigns', "manage_options", 'email_campaigns', array(__CLASS__,'showEmailCampaignsPage'),'dashicons-email-alt',4); add_submenu_page( 'email_campaigns', 'Approved', 'Approved', "manage_options", 'email_campaigns_approved', array(__CLASS__,'showEmailCampaignsPage')); add_submenu_page( 'email_campaigns', 'Sent', 'Sent', "manage_options", 'email_campaigns_sent', array(__CLASS__,'showEmailCampaignsPage')); add_submenu_page( 'email_campaigns', 'Blacklist', 'Blacklist', "manage_options", 'email_campaigns_blacklist', array(__CLASS__,'showEmailCampaignsPage')); 

It turns out that the first submenu item is named after the main menu:

screenshot

How to change Email Campaigns in the submenu to Wait for approve (in posts done means you can!)

    1 answer 1

    You need to set the $ function argument to null and add a submenu with a new header.

      add_menu_page( 'Email Campaigns', 'Email Campaigns', "manage_options", 'email_campaigns', null,'dashicons-email-alt',4); add_submenu_page( 'email_campaigns', 'Wait for Approve', 'Wait for Approve', "manage_options", 'email_campaigns', array(__CLASS__,'showEmailCampaignsPageWait')); add_submenu_page( 'email_campaigns', 'Approved', 'Approved', "manage_options", 'email_campaigns_approved', array(__CLASS__,'showEmailCampaignsPageApproved')); add_submenu_page( 'email_campaigns', 'Sent', 'Sent', "manage_options", 'email_campaigns_sent', array(__CLASS__,'showEmailCampaignsPageSent')); add_submenu_page( 'email_campaigns', 'Sent Error', 'Sent Error', "manage_options", 'email_campaigns_sent_error', array(__CLASS__,'showEmailCampaignsPageSentError')); add_submenu_page( 'email_campaigns', 'Blacklist', 'Blacklist', "manage_options", 'email_campaigns_blacklist', array(__CLASS__,'showEmailCampaignsPageBlacklist')); 

    enter image description here