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();