| @@ -1,7 +1,9 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | namespace Elementor\Core\App; |
| 3 | 3 | |
| 4 | +use Elementor\Core\Admin\Menu\Admin_Menu_Manager; | |
| 5 | +use Elementor\Core\App\AdminMenuItems\Theme_Builder_Menu_Item; | |
| 4 | 6 | use Elementor\Icons_Manager; |
| 5 | 7 | use Elementor\Modules\WebCli\Module as WebCLIModule; |
| 6 | 8 | use Elementor\Core\Base\App as BaseApp; |
| 7 | 9 | use Elementor\Core\Settings\Manager as SettingsManager; |
| @@ -34,16 +36,10 @@ | ||
| 34 | 36 | public function get_base_url() { |
| 35 | 37 | return admin_url( 'admin.php?page=' . self::PAGE_ID . '&ver=' . ELEMENTOR_VERSION ); |
| 36 | 38 | } |
| 37 | 39 | |
| 38 | - public function register_admin_menu() { | |
| 39 | - add_submenu_page( | |
| 40 | - Source_Local::ADMIN_MENU_SLUG, | |
| 41 | - esc_html__( 'Theme Builder', 'elementor' ), | |
| 42 | - esc_html__( 'Theme Builder', 'elementor' ), | |
| 43 | - 'manage_options', | |
| 44 | - self::PAGE_ID | |
| 45 | - ); | |
| 40 | + private function register_admin_menu( Admin_Menu_Manager $admin_menu ) { | |
| 41 | + $admin_menu->register( static::PAGE_ID, new Theme_Builder_Menu_Item() ); | |
| 46 | 42 | } |
| 47 | 43 | |
| 48 | 44 | public function fix_submenu( $menu ) { |
| 49 | 45 | global $submenu; |
| @@ -257,9 +253,11 @@ | ||
| 257 | 253 | } |
| 258 | 254 | |
| 259 | 255 | $this->add_component( 'onboarding', new Modules\Onboarding\Module() ); |
| 260 | 256 | |
| 261 | - add_action( 'admin_menu', [ $this, 'register_admin_menu' ], 21 /* after Elementor page */ ); | |
| 257 | + add_action( 'elementor/admin/menu/register', function ( Admin_Menu_Manager $admin_menu ) { | |
| 258 | + $this->register_admin_menu( $admin_menu ); | |
| 259 | + }, Source_Local::ADMIN_MENU_PRIORITY + 10 ); | |
| 262 | 260 | |
| 263 | 261 | // Happens after WP plugin page validation. |
| 264 | 262 | add_filter( 'add_menu_classes', [ $this, 'fix_submenu' ] ); |
| 265 | 263 | |