Prevent update of custom user profile meta field on the front end after 1st entry

You could very easily do a check to see if that field already had a value in the database and if it does, display the name, if it doesn’t, display a form field. You haven’t provided any code so my example below is a really loose snippet of pseudo-code showing the the method.

<?php
    $current_user = get_current_user_id();
    $student_name = get_user_meta( $current_user, 'student_name', true );
    if( !empty( $student_name ) ) :
        echo '<span class="student_name_provided">' . $student_name . '</span>';
    else :
        echo '<input type="text" name="student_name" id="student_name" value=""/>';
    endif;
?>

So if !empty() or not empty, then it displays the value of the student_name user meta in a span tag that you can style however you like.

But, if the check returns an empty value for student_name it instead loads a text input field where the student can then provide their name.

Now all of this would need to be incorporated with whatever other front end editable stuff you’ve got set up, but the if( !empty() ) : conditional check is the key aspect because it allows you to change what you provide the user with on the front end.

Hope that helps.