i'm writing a plugin which requires another plugin. So i have to check first if the other plugin exists in a correct version. If yes i want to add a submenu page to the plugin page but here my code doesn't seem to work. I think the problem is, that i only can check the existence of other plugins with a late hook (admin_init). But to add submenus i have to use an earlier hook (admin_menu). How to solve that? class acf_multisite_sync { function __construct() { add_action('admin_init', array($this, 'acf_sync_init')); } function acf_sync_init() { $plugins = get_plugins(); if (isset($plugins['advanced-custom-fields-pro/acf.php'])) { if ($plugins['advanced-custom-fields-pro/acf.php']['Version'] >= 5 && is_plugin_active('advanced-custom-fields-pro/acf.php' && is_main_site())) { add_action('admin_menu', array($this, 'acf_sync_submenu')); } } } function acf_sync_submenu() { add_submenu_page( 'edit.php?post_type=acf-field-group', 'Multisite', 'Multisite', 'manage_options', 'acf-sync', array($this, 'acf_sync_callback') ); } function acf_sync_callback() { echo 'My Submenu Content'; } } new acf_multisite_sync();