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.