BP_XProfile_Field::delete( boolean $delete_data = false )
Delete a profile field.
Description
Parameters
- $delete_data
-
(Optional) Whether or not to delete data.
Default value: false
Return
(boolean)
Source
File: bp-xprofile/classes/class-bp-xprofile-field.php
public function delete( $delete_data = false ) {
global $wpdb;
// Prevent deletion if no ID is present.
// Prevent deletion by url when can_delete is false.
// Prevent deletion of option 1 since this invalidates fields with options.
if ( empty( $this->id ) || empty( $this->can_delete ) || ( $this->parent_id && $this->option_order == 1 ) ) {
return false;
}
/**
* Fires before the current field instance gets deleted.
*
* @since BuddyPress 3.0.0
*
* @param BP_XProfile_Field $this Current instance of the field being deleted. Passed by reference.
* @param bool $delete_data Whether or not to delete data.
*/
do_action_ref_array( 'xprofile_field_before_delete', array( &$this, $delete_data ) );
$bp = buddypress();
$sql = $wpdb->prepare( "DELETE FROM {$bp->profile->table_name_fields} WHERE id = %d OR parent_id = %d", $this->id, $this->id );
if ( ! $wpdb->query( $sql ) ) {
return false;
}
// Delete all metadata for this field.
bp_xprofile_delete_meta( $this->id, 'field' );
// Delete the data in the DB for this field.
if ( true === $delete_data ) {
BP_XProfile_ProfileData::delete_for_field( $this->id );
}
/**
* Fires after the current field instance gets deleted.
*
* @since BuddyPress 3.0.0
*
* @param BP_XProfile_Field $this Current instance of the field being deleted. Passed by reference.
* @param bool $delete_data Whether or not to delete data.
*/
do_action_ref_array( 'xprofile_field_after_delete', array( &$this, $delete_data ) );
return true;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.1.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.