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 Description
Parameters 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 Return
(boolean)
Source 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 );
$retval = false;
// 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 and group query cache.
wp_cache_delete( $field_id, 'bp_xprofile_fields' );
$retval = $parent;
}
bp_core_reset_incrementor( 'bp_xprofile_groups' );
return $retval;
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |