BP_XProfile_ProfileData::get_value_byfieldname( array|string $fields, int|null $user_id = null )
Get profile field values by field name and user ID.
Description
Parameters
- $fields
-
(Required) Field(s) to get.
- $user_id
-
(Optional) User ID to get field data for.
Default value: null
Return
(array|bool)
Source
File: bp-xprofile/classes/class-bp-xprofile-profiledata.php
public static function get_value_byfieldname( $fields, $user_id = null ) {
global $wpdb;
if ( empty( $fields ) ) {
return false;
}
$bp = buddypress();
if ( empty( $user_id ) ) {
$user_id = bp_displayed_user_id();
}
$field_sql = '';
if ( is_array( $fields ) ) {
for ( $i = 0, $count = count( $fields ); $i < $count; ++$i ) {
if ( $i == 0 ) {
$field_sql .= $wpdb->prepare( "AND ( f.name = %s ", $fields[$i] );
} else {
$field_sql .= $wpdb->prepare( "OR f.name = %s ", $fields[$i] );
}
}
$field_sql .= ')';
} else {
$field_sql .= $wpdb->prepare( "AND f.name = %s", $fields );
}
$sql = $wpdb->prepare( "SELECT d.value, f.name FROM {$bp->profile->table_name_data} d, {$bp->profile->table_name_fields} f WHERE d.field_id = f.id AND d.user_id = %d AND f.parent_id = 0 $field_sql", $user_id );
$values = $wpdb->get_results( $sql );
if ( empty( $values ) || is_wp_error( $values ) ) {
return false;
}
$new_values = array();
if ( is_array( $fields ) ) {
for ( $i = 0, $count = count( $values ); $i < $count; ++$i ) {
for ( $j = 0; $j < count( $fields ); $j++ ) {
if ( $values[$i]->name == $fields[$j] ) {
$new_values[$fields[$j]] = $values[$i]->value;
} elseif ( !array_key_exists( $fields[$j], $new_values ) ) {
$new_values[$fields[$j]] = NULL;
}
}
}
} else {
$new_values = $values[0]->value;
}
return $new_values;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.0.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.