BP_XProfile_Field::update_position( int $field_id, int|null $position = null, int|null $field_group_id = null )
Update field position and/or field group when relocating.
Description
Parameters
- $field_id
-
(Required) ID of the field to update.
- $position
-
(Optional) Field position to update.
Default value: null
- $field_group_id
-
(Optional) ID of the field group.
Default value: null
Return
(boolean)
Source
File: bp-xprofile/classes/class-bp-xprofile-field.php
public static function update_position( $field_id, $position = null, $field_group_id = null ) {
global $wpdb;
// Bail if invalid position or field group.
if ( ! is_numeric( $position ) || ! is_numeric( $field_group_id ) ) {
return false;
}
// Get table name and field parent.
$table_name = buddypress()->profile->table_name_fields;
$sql = $wpdb->prepare( "UPDATE {$table_name} SET field_order = %d, group_id = %d WHERE id = %d", $position, $field_group_id, $field_id );
$parent = $wpdb->query( $sql );
// Update $field_id with new $position and $field_group_id.
if ( ! empty( $parent ) && ! is_wp_error( $parent ) ) {
// Update any children of this $field_id.
$sql = $wpdb->prepare( "UPDATE {$table_name} SET group_id = %d WHERE parent_id = %d", $field_group_id, $field_id );
$wpdb->query( $sql );
// Invalidate profile field cache.
wp_cache_delete( $field_id, 'bp_xprofile_fields' );
do_action( 'xprofile_updated_field_position', $field_id, $position, $field_group_id );
return $parent;
}
return false;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.5.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.