bp_xprofile_delete_meta( int $object_id, string $object_type, string|bool $meta_key = false, mixed $meta_value = false, bool $delete_all = false )

Delete a piece of xprofile metadata.

Description

Parameters

$object_id

(Required) ID of the object the metadata belongs to.

$object_type

(Required) Type of object. 'group', 'field', or 'data'.

$meta_key

(Optional) Key of the metadata being deleted. If omitted, all metadata for the object will be deleted.

Default value: false

$meta_value

(Optional) If provided, only metadata that matches the value will be permitted.

Default value: false

$delete_all

(Optional) If true, delete matching metadata entries for all objects, ignoring the specified object_id. Otherwise, only delete matching metadata entries for the specified object. Default: false.

Default value: false

Return

(bool) True on success, false on failure.

Source

File: bp-xprofile/bp-xprofile-functions.php

function bp_xprofile_delete_meta( $object_id, $object_type, $meta_key = false, $meta_value = false, $delete_all = false ) {
	global $wpdb;

	// Sanitize object type.
	if ( ! in_array( $object_type, array( 'group', 'field', 'data' ) ) ) {
		return false;
	}

	// Legacy - if no meta_key is passed, delete all for the item.
	if ( empty( $meta_key ) ) {
		$table_key  = 'xprofile_' . $object_type . 'meta';
		$table_name = $wpdb->{$table_key};
		$keys = $wpdb->get_col( $wpdb->prepare( "SELECT meta_key FROM {$table_name} WHERE object_type = %s AND object_id = %d", $object_type, $object_id ) );

		// Force delete_all to false if deleting all for object.
		$delete_all = false;
	} else {
		$keys = array( $meta_key );
	}

	add_filter( 'query', 'bp_filter_metaid_column_name' );
	add_filter( 'query', 'bp_xprofile_filter_meta_query' );

	$retval = false;
	foreach ( $keys as $key ) {
		$retval = delete_metadata( 'xprofile_' . $object_type, $object_id, $key, $meta_value, $delete_all );
	}

	remove_filter( 'query', 'bp_xprofile_filter_meta_query' );
	remove_filter( 'query', 'bp_filter_metaid_column_name' );

	return $retval;
}

Changelog

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.