This plugin provides filter to manage the menu item by meta value:
function custom_menu_item_visibility( $visible, $item ){
if( isset( $item->roles ) ){
$user_id = get_current_user_id();
$user_meta = get_user_meta( $user_id, 'your-meta-key', true );
if ( /* your condition */ ){
$visible = true;
} else {
$visible = false;
}
}
return $visible;
}
add_filter( 'nav_menu_roles_item_visibility', 'custom_menu_item_visibility', 10, 2 );