/**
 * Fetches a random piece of profile data for the user.
 *
 * @package BuddyPress Core
 * @param int $user_id User ID of the user to get random data for
 * @param bool $exclude_fullname Optional; whether or not to exclude the full name field as random data. Defaults to true.
 * @global BuddyPress $bp The one true BuddyPress instance
 * @global $wpdb WordPress DB access object.
 * @global $current_user WordPress global variable containing current logged in user information
 * @uses xprofile_format_profile_field() Formats profile field data so it is suitable for display.
 * @return string|bool The fetched random data for the user, or false if no data or no match.
 */
function xprofile_get_random_profile_data($user_id, $exclude_fullname = true)
{
    $field_data = BP_XProfile_ProfileData::get_random($user_id, $exclude_fullname);
    if (empty($field_data)) {
        return false;
    }
    $field_data[0]->value = xprofile_format_profile_field($field_data[0]->type, $field_data[0]->value);
    if (empty($field_data[0]->value)) {
        return false;
    }
    /**
     * Filters a random piece of profile data for the user.
     *
     * @since BuddyPress (1.0.0)
     *
     * @param array $field_data Array holding random profile data.
     */
    return apply_filters('xprofile_get_random_profile_data', $field_data);
}
/**
 * Fetches a random piece of profile data for the user.
 *
 * @package BuddyPress Core
 * @param $user_id User ID of the user to get random data for
 * @param $exclude_fullname whether or not to exclude the full name field as random data.
 * @global object $bp Global BuddyPress settings object
 * @global $nxtdb NXTClass DB access object.
 * @global $current_user NXTClass global variable containing current logged in user information
 * @uses xprofile_format_profile_field() Formats profile field data so it is suitable for display.
 * @return $field_data The fetched random data for the user.
 */
function xprofile_get_random_profile_data($user_id, $exclude_fullname = true)
{
    $field_data = BP_XProfile_ProfileData::get_random($user_id, $exclude_fullname);
    if (!$field_data) {
        return false;
    }
    $field_data[0]->value = xprofile_format_profile_field($field_data[0]->type, $field_data[0]->value);
    if (!$field_data[0]->value || empty($field_data[0]->value)) {
        return false;
    }
    return apply_filters('xprofile_get_random_profile_data', $field_data);
}
function bp_get_member_profile_data($args = '')
{
    global $bp, $members_template;
    if (!bp_is_active('xprofile')) {
        return false;
    }
    // Declare local variables
    $data = false;
    $user_id = 0;
    // Guess at default $user_id
    if (!empty($members_template->member->id)) {
        $user_id = $members_template->member->id;
    } elseif (!empty($bp->displayed_user->id)) {
        $user_id = $bp->displayed_user->id;
    }
    $defaults = array('field' => false, 'user_id' => $user_id);
    $r = nxt_parse_args($args, $defaults);
    extract($r, EXTR_SKIP);
    // Populate the user if it hasn't been already.
    if (empty($members_template->member->profile_data) && method_exists('BP_XProfile_ProfileData', 'get_all_for_user')) {
        $members_template->member->profile_data = BP_XProfile_ProfileData::get_all_for_user($user_id);
    }
    // Get the field data if there is data to get
    if (!empty($members_template->member->profile_data)) {
        $data = xprofile_format_profile_field($members_template->member->profile_data[$field]['field_type'], $members_template->member->profile_data[$field]['field_data']);
    }
    return apply_filters('bp_get_member_profile_data', $data);
}
/**
 * Get a piece of user profile data.
 *
 * When used in a bp_has_members() loop, this function will attempt
 * to fetch profile data cached in the template global. It is also safe
 * to use outside of the loop.
 *
 * @param array|string $args {
 *     Array of config parameters.
 *     @type string $field   Name of the profile field.
 *     @type int    $user_id ID of the user whose data is being fetched.
 *                           Defaults to the current member in the loop, or if not
 *                           present, to the currently displayed user.
 * }
 * @return string|bool Profile data if found, otherwise false.
 */
function bp_get_member_profile_data($args = '')
{
    global $members_template;
    if (!bp_is_active('xprofile')) {
        return false;
    }
    // Declare local variables.
    $data = false;
    // Guess at default $user_id.
    $default_user_id = 0;
    if (!empty($members_template->member->id)) {
        $default_user_id = $members_template->member->id;
    } elseif (bp_displayed_user_id()) {
        $default_user_id = bp_displayed_user_id();
    }
    $defaults = array('field' => false, 'user_id' => $default_user_id);
    $r = wp_parse_args($args, $defaults);
    // If we're in a members loop, get the data from the global.
    if (!empty($members_template->member->profile_data)) {
        $profile_data = $members_template->member->profile_data;
    }
    // Otherwise query for the data.
    if (empty($profile_data) && method_exists('BP_XProfile_ProfileData', 'get_all_for_user')) {
        $profile_data = BP_XProfile_ProfileData::get_all_for_user($r['user_id']);
    }
    // If we're in the members loop, but the profile data has not
    // been loaded into the global, cache it there for later use.
    if (!empty($members_template->member) && empty($members_template->member->profile_data)) {
        $members_template->member->profile_data = $profile_data;
    }
    // Get the data for the specific field requested.
    if (!empty($profile_data) && !empty($profile_data[$r['field']]['field_type']) && !empty($profile_data[$r['field']]['field_data'])) {
        $data = xprofile_format_profile_field($profile_data[$r['field']]['field_type'], $profile_data[$r['field']]['field_data']);
    }
    /**
     * Filters resulting piece of member profile data.
     *
     * @since 1.2.0
     *
     * @param string|bool $data Profile data if found, otherwise false.
     */
    return apply_filters('bp_get_member_profile_data', $data);
}
	function bp_get_member_profile_data( $args = '' ) {
		global $members_template;

		if ( !function_exists( 'xprofile_install' ) )
			return false;

		$defaults = array(
			'field' => false, // Field name
		);

		$r = wp_parse_args( $args, $defaults );
		extract( $r, EXTR_SKIP );

		// Populate the user if it hasn't been already.
		if ( empty( $members_template->member->profile_data ) && method_exists( 'BP_XProfile_ProfileData', 'get_all_for_user' ) )
			$members_template->member->profile_data = BP_XProfile_ProfileData::get_all_for_user( $members_template->member->id );

		$data = xprofile_format_profile_field( $members_template->member->profile_data[$field]['field_type'], $members_template->member->profile_data[$field]['field_data'] );

		return apply_filters( 'bp_get_member_profile_data', $data );
	}