BP_XProfile_Field::get_member_types()
Gets the profile types to which this field should be available.
Description
Will not return inactive profile types, even if associated metadata is found.
‘null’ is a special pseudo-type, which represents users that do not have a profile type.
Return
(array) Array of profile type names.
Source
File: bp-xprofile/classes/class-bp-xprofile-field.php
public function get_member_types() {
if ( ! is_null( $this->member_types ) ) {
return $this->member_types;
}
$raw_types = bp_xprofile_get_meta( $this->id, 'field', 'member_type', false );
// If `$raw_types` is not an array, it probably means this is a new field (id=0).
if ( ! is_array( $raw_types ) ) {
$raw_types = array();
}
// If '_none' is found in the array, it overrides all types.
$types = array();
if ( ! in_array( '_none', $raw_types ) ) {
$registered_types = bp_get_member_types();
// Eliminate invalid profile types saved in the database.
foreach ( $raw_types as $raw_type ) {
// 'null' is a special case - it represents users without a type.
if ( 'null' === $raw_type || isset( $registered_types[ $raw_type ] ) ) {
$types[] = $raw_type;
}
}
// If no profile types have been saved, intepret as *all* profile types.
if ( empty( $types ) ) {
$types = array_values( $registered_types );
// + the "null" type, ie users without a type.
$types[] = 'null';
}
}
/**
* Filters the profile types to which an XProfile object should be applied.
*
* @since BuddyPress 2.4.0
*
* @param array $types profile types.
* @param BP_XProfile_Field $field Field object.
*/
$this->member_types = apply_filters( 'bp_xprofile_field_member_types', $types, $this );
return $this->member_types;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 2.4.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.