Update
Solution was easy I’m stupid I just tweaked the menu creation and directly assigned the parent-menu-id:
if (!empty($term->parent) && $term->parent != 0) {
$parent_menu_item_id = get_parent_menu_item_id_by_name($term->parent, $menu_id);
if ($parent_menu_item_id) {
$menu_item_id = wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => $term_name,
'menu-item-object-id' => intval($term_id),
'menu-item-object' => 'product_cat',
'menu-item-type' => 'taxonomy',
'url' => get_term_link($term),
'menu-item-parent-id' => $parent_menu_item_id,
'menu-item-status' => 'publish'
));
} else {
$menu_item_id = wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => $term_name,
'menu-item-object-id' => intval($term_id),
'menu-item-object' => 'product_cat',
'menu-item-type' => 'taxonomy',
'url' => get_term_link($term),
'menu-item-status' => 'publish'
));
}
}