$b['position']; } ); // add submenus. foreach ( $submenus as $submenu ) { add_submenu_page( self::PARENT_SLUG, $submenu['page_title'], $submenu['menu_title'], $submenu['capability'], $submenu['menu_slug'], $submenu['callback'] ); } } /** * Build the admin menu icon. * * A cart with a clock in it (OW-063; the header's ProductIcon is the * same drawing) as a base64 SVG data URI, per the WP convention for * custom menu icons. Filled shapes only, no strokes or masks: WP's * svg-painter.js rewrites every `fill="…"` to the admin colour * scheme's idle, hover and active colours. `#a7aaad` (WP's default * idle menu grey) is what shows before that script runs. * * @return string */ private static function get_menu_icon(): string { $svg = '' . '' . '' . '' . '' . ''; return 'data:image/svg+xml;base64,' . base64_encode( $svg ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode -- Encodes a fixed SVG for the menu icon data URI, as WordPress expects; no input involved. } }