Opened 6 years ago
Closed 6 years ago
#50534 closed defect (bug) (duplicate)
Menu position conflicts not properly handled in add_menu_page function
| Reported by: | nufocusuk | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Administration | Version: | 5.5 |
| Severity: | normal | Keywords: | |
| Cc: | Focuses: |
Description (last modified by )
In add_menu_page function inside plugin.php the assignment of new menu in the else condition should have $position inside quotes in the same way as the other lines.
If $position is passed in with a decimal value 103.768 (as supplied my MailChimp Forms by MailMunch plugin) then it fails to detect if $menu[103] has already been assigned by another plugin, but then overwrites it by impicitly treating $position as integer rather than a string as in $menu["103.768"].
Result is that random plugins can be missing from the admin menu.
if ( null === $position ) {
$menu[] = $new_menu;
} elseif ( isset( $menu[ "$position" ] ) ) {
$position = $position + substr( base_convert( md5( $menu_slug . $menu_title ), 16, 10 ), -5 ) * 0.00001;
$menu[ "$position" ] = $new_menu;
} else {
$menu[ **$position** ] = $new_menu; //# should be change to **$menu[ "$position" ] = $new_menu;**
}
Change History (2)
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Hi there, welcome to WordPress Trac!
Thanks for the report, we're already tracking this issue in #40927.