how to make a profile entry read only except for site managers [closed]

You can hide profile fields on the edit screen from everyone except site admins – therefore they can only be edited by site admins. They will still be visible on the public profile screen. You can get the field id by looking at the url in wp-admin when you edit that field, or just rolling over the edit button. Add this function to your child-theme functions.php or bp-custom.php

function arcee_hide_profile_fields( $retval ) {

    if( is_super_admin () )
        return $retval;

    if(  bp_is_profile_edit()  )
        $retval['exclude_fields'] = '3,43,253'; //field ID's separated by comma

    return $retval;

}
add_filter( 'bp_after_has_profile_parse_args', 'arcee_hide_profile_fields' );