bp_xprofile_get_hidden_fields_for_user( int $displayed_user_id, int $current_user_id )

Get the ids of fields that are hidden for this displayed/loggedin user pair.

Description

This is the function primarily responsible for profile field visibility. It works by determining the relationship between the displayed_user (ie the profile owner) and the current_user (ie the profile viewer). Then, based on that relationship, we query for the set of fields that should be excluded from the profile loop.

See also

Parameters

$displayed_user_id

(Required) The id of the user the profile fields belong to.

$current_user_id

(Required) The id of the user viewing the profile.

Return

(array) An array of field ids that should be excluded from the profile query

Source

File: bp-xprofile/bp-xprofile-functions.php

function bp_xprofile_get_hidden_fields_for_user( $displayed_user_id = 0, $current_user_id = 0 ) {
	if ( !$displayed_user_id ) {
		$displayed_user_id = bp_displayed_user_id();
	}

	if ( !$displayed_user_id ) {
		return array();
	}

	if ( !$current_user_id ) {
		$current_user_id = bp_loggedin_user_id();
	}

	// @todo - This is where you'd swap out for current_user_can() checks
	$hidden_levels = bp_xprofile_get_hidden_field_types_for_user( $displayed_user_id, $current_user_id );
	$hidden_fields = bp_xprofile_get_fields_by_visibility_levels( $displayed_user_id, $hidden_levels );

	/**
	 * Filters the ids of fields that are hidden for this displayed/loggedin user pair.
	 *
	 * @since BuddyPress 1.6.0
	 *
	 * @param array $hidden_fields     Array of hidden fields for the displayed/logged in user.
	 * @param int   $displayed_user_id ID of the displayed user.
	 * @param int   $current_user_id   ID of the current user.
	 */
	return apply_filters( 'bp_xprofile_get_hidden_fields_for_user', $hidden_fields, $displayed_user_id, $current_user_id );
}

Changelog

Changelog
Version Description
BuddyPress 1.6.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.