Currently, the visibility for the following xprofile fields aren’t “user” selectable:
- 1st Text Field – labeled as “Name” by default
- Single Fields – Checkbox Acceptance
- WordPress Fields – Biography
- WordPress Fields – Text Field (First Name, Last Name, Website)
In your example, “surname” as you have applied would be “WordPress Field – Text Field – Last Name” and as indicated the visibility is not “user” selectable.
As to the other xprofile fields the visibility can be set for either:
- Allow members to override – visibility is selectable by users
- Enforce field visibility – visibility is set per selection
Admin can set the visibility during creation or editing of xprofile fields that allow for “Visibility” settings, e.g., Single Fields – Text Box will have a “Visibility” metabox whereby an Admin can set the “Visibility” parameters. See BuddyPress xProfile fields administration for other information.
Why can’t the WordPress profile fields be selected by the user?
For example, the city field is useful for the admin, so it’s mandatory, but the user doesn’t want to make it public.
To do this, you need to create a custom city field not linked to the user’s WordPress profile, but this would then be a duplicate field.
I stated that the visibility for WordPress Fields are “currently” not user selectable. Why this decision was made was unknown to me, until recently, and appears to be along the same lines of why the “Requirements” metabox doesn’t appear for the WordPress Fields, as well.
Given this conversation, I looked for a possible reason that might uncover a decision to not include such capabilities and found that ticket #8487 (Add visibility and required controls to the WordPress profile fields) provides the history behind why the decision was made not to include the capabilities (visibility and requirements) and why these capabilities have yet to be incorporated (no one has provided a patch).
Ok, thanks
In admin, can I set the surname field not to be publicly visible?
When you create or edit a xprofile field that contains a metabox like the following:

If this metabox is present, then you can set the visibility parameters for a given xprofile field.