Удаляет мета-поля пользователя с определённым ID.
Функция позволяет удалять метаданные как по ключу, так и по паре ключ и значение, что помогает избежать удаления дубликатов (метаданных с одним и тем же ключом).
Возвращает true
, если метаданные были удалены, false
– если не были. Например, если был указан ID несуществующего пользователя.
delete_user_meta( $user_id, $meta_key, $meta_value = '' )
Параметры
- $user_id
- (целое число) ID пользователя.
- $meta_key
- (строка) Ключ метаданных для удаления.
- $meta_value
- Если вдруг у вас в базе данных несколько значений мета-поля с одним и тем же ключом, то, если вы укажете этот параметр, то функция удалит только те из них, чьи значения будут соответствовать, иначе – все.
Примеры
Предположим, что мы добавили несколько полей в профили пользователей, например «Город» и «Пол» – в этом уроке можете глянуть.
Давайте удалим эти поля!
// удалили все значения полей города и пола для пользователя с ID 552 delete_user_meta( 552, 'city' ); delete_user_meta( 552, 'gender' );
Теперь давайте предположим, что у одного пользователя может быть несколько значений города в мета-полях. Причём каждое из них – записано в отдельное поле. Давайте удалим только то из них, которое соответствует одному городу – Сидней.
delete_user_meta( 552, 'city', 'Сидней' );
А ещё добавим проверку, существовало ли у пользователя такое значение поля:
if ( ! delete_user_meta( 552, 'city', 'Сидней' ) ) { echo 'Этот юзер не был в Сиднее..'; } else { echo 'По идее был, но теперь считай не был'; }
А теперь давайте удалим именно поле со значением города «Сидней» у всех пользователей! Тогда нам как-то нужно будет получить их в цикле, думаю вполне сойдёт WP_User_Query для построения цикла.
$users = new WP_User_Query( array( 'fields' => 'ID' ) ); if ( ! empty( $users->results ) ) { foreach ( $users->results as $user_id ) { delete_user_meta( $user_id, 'city', 'Сидней' ); } }