WordPress allows you to show a single menu in a specific location in your theme. But if you wanted to show a different menu to logged-in users on your website, you need to add some code to your theme to add the functionality.
There may be plugins available for this but I prefer to code. When a few lines of code can solve a problem why use a plugin?
Maybe you can do it in many ways but I’ll show you the easiest ways.
first, register 2 or more menus
add_action( 'after_setup_theme', 'woo_reg_nav_menus' );
function woo_reg_nav_menus(){
register_nav_menus( array(
'logged-in-menu' => 'Logged In Menu',
'logged-out-menu' => 'Logged Out Menu'
));
}
Then add the code below where you want to show the menus.
wp_nav_menu( array(
'theme_location' => is_user_logged_in() ? 'logged-in-menu' : 'logged-out-menu'
) );