bp_xprofile_repeater_field_get_children( array $children, boolean $for_editing, BP_XProfile_Field $field )
Return children of repeated field sets.
Description
Parameters
- $children
-
(Required)
- $for_editing
-
(Required)
- $field
-
(Required)
Source
File: bp-xprofile/bp-xprofile-repeaters.php
function bp_xprofile_repeater_field_get_children ( $children, $for_editing, $field ) { global $wpdb; $bp = buddypress(); if ( ! bp_xprofile_get_meta( $field->id, 'field', '_is_repeater_clone', true ) ) { return $children; } //If the current field is a clone, //we'll query template field for children/field-options $template_field_id = bp_xprofile_get_meta( $field->id, 'field', '_cloned_from', true ); if ( empty( $template_field_id ) ) { return $children; } $template_field = xprofile_get_field( $template_field_id ); if ( $template_field == null ) { return $children; } if ( ! ( $template_children = wp_cache_get( $template_field_id, 'field_children_options' ) ) ) { // This is done here so we don't have problems with sql injection. if ( empty( $for_editing ) && ( 'asc' === $template_field->order_by ) ) { $sort_sql = 'ORDER BY name ASC'; } elseif ( empty( $for_editing ) && ( 'desc' === $template_field->order_by ) ) { $sort_sql = 'ORDER BY name DESC'; } else { $sort_sql = 'ORDER BY option_order ASC'; } $parent_id = $template_field_id; $bp = buddypress(); $sql = $wpdb->prepare( "SELECT * FROM {$bp->profile->table_name_fields} WHERE parent_id = %d AND group_id = %d {$sort_sql}", $parent_id, $template_field->group_id ); $template_children = $wpdb->get_results( $sql ); wp_cache_set( $template_field_id, $template_children, 'field_children_options' ); } if ( !empty( $template_children ) ) { //Since some children will be shared in all clones of a kind, //there are duplicate radiobutton/checkbox ids and hence associated labels behave incorreclty. //we'll need to manipuate children ids $temp = array(); $clone_number = (int) bp_xprofile_get_meta( $field->id, 'field', '_clone_number', true ); foreach ( $template_children as $child ) { $child->id .= '_' . $clone_number; $temp[] = $child; } $children = $temp; } return $children; }
Changelog
Version | Description |
---|---|
BuddyBoss 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.