/** * Filter BP_User_Query::populate_extras to override each queries users fullname. * * @since 1.7.0 * * @param BP_User_Query $user_query User query to filter. * @param string $user_ids_sql SQL statement to use. */ function bp_xprofile_filter_user_query_populate_extras(BP_User_Query $user_query, $user_ids_sql = '') { if (!bp_is_active('xprofile')) { return; } $user_id_names = bp_core_get_user_displaynames($user_query->user_ids); // Loop through names and override each user's fullname. foreach ($user_id_names as $user_id => $user_fullname) { if (isset($user_query->results[$user_id])) { $user_query->results[$user_id]->fullname = $user_fullname; } } }
/** * Fetch the display name for a user. * * @since 1.0.1 * * @param int|string|bool $user_id_or_username User ID or username. * @return string|bool The display name for the user in question, or false if * user not found. */ function bp_core_get_user_displayname($user_id_or_username) { if (empty($user_id_or_username)) { return false; } if (!is_numeric($user_id_or_username)) { $user_id = bp_core_get_userid($user_id_or_username); } else { $user_id = $user_id_or_username; } if (empty($user_id)) { return false; } $display_names = bp_core_get_user_displaynames(array($user_id)); if (!isset($display_names[$user_id])) { $fullname = false; } else { $fullname = $display_names[$user_id]; } /** * Filters the display name for the passed in user. * * @since 1.0.1 * * @param string $fullname Display name for the user. * @param int $user_id ID of the user to check. */ return apply_filters('bp_core_get_user_displayname', $fullname, $user_id); }
/** * @group bp_core_get_user_displaynames */ public function test_bp_core_get_user_displaynames_one_in_cache() { $u1 = $this->factory->user->create(); xprofile_set_field_data(1, $u1, 'Foo'); // Fake the cache for $u2 $u2 = 123; wp_cache_set('bp_user_fullname_' . $u2, 'Bar', 'bp'); $expected = array($u1 => 'Foo', $u2 => 'Bar'); $this->assertSame($expected, bp_core_get_user_displaynames(array($u1, $u2))); }
/** * Append xProfile fullnames to an activity array. * * @since 2.0.0 * * @param array $activities Activities array. * @return array */ protected static function append_user_fullnames($activities) { if (bp_is_active('xprofile') && !empty($activities)) { $activity_user_ids = wp_list_pluck($activities, 'user_id'); if (!empty($activity_user_ids)) { $fullnames = bp_core_get_user_displaynames($activity_user_ids); if (!empty($fullnames)) { foreach ((array) $activities as $i => $activity) { if (!empty($fullnames[$activity->user_id])) { $activities[$i]->user_fullname = $fullnames[$activity->user_id]; } } } } } return $activities; }
/** * Fetch the display name for a user. * * @param int|string $user_id_or_username User ID or username. * @return string|bool The display name for the user in question, or false if * user not found. */ function bp_core_get_user_displayname($user_id_or_username) { $fullname = ''; if (empty($user_id_or_username)) { return false; } if (!is_numeric($user_id_or_username)) { $user_id = bp_core_get_userid($user_id_or_username); } else { $user_id = $user_id_or_username; } if (empty($user_id)) { return false; } $display_names = bp_core_get_user_displaynames(array($user_id)); if (!isset($display_names[$user_id])) { $fullname = false; } else { $fullname = $display_names[$user_id]; } return apply_filters('bp_core_get_user_displayname', $fullname, $user_id); }