the only change is how the add_submenu_page() commands are used.
They went from being
add_submenu_page(null, null, null,
to being
add_submenu_page('options.php', null, null,
This was a problem as in some cases, when running PHP8.0+ it would give PHP Deprecated
- when WP_DEBUG was set to TRUE it would show this error in the logs on every page load.
- when Query Monitor was installed.
The page /wp-admin/options.php is a hidden admin page that shows all the things in the options table. By using this, rather than null, it satisfied the php requirements while also not showing the submenu pages in the admin menu.
It should be noted that /wp-admin/options.php does give the ability to make destructive change, so be careful if you ever go to this page!