Intereting Posts
Как вы используете отображаемый образ последнего сообщения в категории в качестве фонового изображения Показывать пустые таксономии с помощью get_terms () Добавить класс в другие сообщения, используя get_posts Регистрировать и регистрировать условные (специфичные для браузера) файлы javascript? Получение значений выпадающего списка таксономии Показать счетчик сообщений в боковой панели – Переменная Если заявление для калорий Можем ли мы создать дочернюю тему для премиальной дочерней темы, построенной на основе Genesis? Пейджинг не работает в категории.php Могу ли я отключить автозаполнение? С get_posts (), как я могу поместить категорию как переменную Программно обновлять пользовательские атрибуты WooCommerce загрузить больше сообщений по категориям Автоматическое добавление заголовка изображения, надписи, Alt текста, описания при загрузке изображений в WordPress Все параметры загружены в память по каждому запросу?

delete_user_meta для пользователя в spesific group

У меня есть таблица с идентификатором группы и идентификатором клиента. Я хочу удалить термин условия usermeta из нескольких идентификаторов клиента, которые принадлежат определенному идентификатору группы

Table group_client_ID |group_ID|client_ID| +--------+---------+ | 1 | 9 | | 1 | 10 | | 2 | 11 | | 2 | 12 | | 3 | 14 | | 3 | 17 | | 4 | 18 | | 5 | 20 | | 6 | 21 | | 6 | 22 | | 7 | 25 | | 8 | 34 | 

Здесь мой код для удаления usermeta «условия при условии»

при запуске есть параметр ошибки, ожидаемый как строка 1, заданный массив.

 function say_goodby_to_the_meta(){ $role = 'wpc_client'; // assign role $users = get_users('role='.$role); foreach ($users as $user) { global $wpdb; $stats = $wpdb->get_results(" SELECT ".$wpdb->prefix." client_group_clients.client_id FROM ".$wpdb->prefix." client_group_clients WHERE ".$wpdb->prefix." client_group_clients.group_id IN (1, 2, 5, 6) ", $users); $stats = array(); if (is_array($stats) || is_object($stats)){ delete_user_meta($stat->ID, 'terms_and_conditions'); } echo 'Fini!'; } } 

FYI: это процесс, когда я нажимаю кнопку

Solutions Collecting From Web of "delete_user_meta для пользователя в spesific group"

В вашей функции, похоже, есть некоторые недоразумения о том, как работает файл $ wpdb.

Но также, я не понимаю, что именно находится в столбце «client_id». Это идентификатор пользователя из WordPress?

В любом случае, обратите внимание на следующие технические ошибки в вашей функции.

1: префикс $ wpdb-> возвращает префикс, который используется в любой таблице wordpress (если не изменен: «wp_». Если ваша таблица имеет только имя «group_client_ID», вам не нужно ставить префикс $ wpdb-> из этого. Кроме того, если ваша таблица была вызвана, например, «wp_group_client_ID», заявление SQL было бы неправильным, поскольку между префиксом и «остатком» имени таблицы («group_client_ID») были пробелы,

2: Вы можете дать $ wpdb-> get_results второй параметр, но этот параметр предназначен для типа результата, который вы хотите получить. Вы можете ввести «OBJECT», который приведет к возврату объекта, или вы можете поместить в «ARRAY_A» / «ARRAY_N», что приведет к возврату массива (ассоциативно / численно). Я не совсем понимаю, почему вы помещаете в него $ users, но это определенно не так, как это работает.

3: если я правильно понимаю, то в столбце client_ID есть идентификаторы пользователя wordpress, и если они находятся в строке с идентификатором group_ID из 1,2,5 или 6, мета-термины и условия этих пользователей должны быть удалены. Итак, почему получение пользователей по ролям и почему foreach? Для меня это не имеет смысла.

4: ЕСЛИ мое предположение верно, вы можете сделать это одним простым шагом. ПРЕДУПРЕЖДЕНИЕ. Следующий код стирает meta_key «terms_and_conditions» от пользователей WordPress, среди которых user_ids находятся в таблице «group_client_ID» с group_id из 1,2,5 или 6. ЕСЛИ ЭТО НЕ ПРЕДНАЗНАЧЕННЫЙ РЕЗУЛЬТАТ, НЕ ИСПОЛЬЗУЙ ЭТО!

 function say_goodby_to_the_meta(){ global $wpdb; $deleted = $wpdb->query($wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE meta_key=%s AND user_id IN (SELECT client_id FROM group_client_ID WHERE group_ID IN (1,2,5,6))",'terms_and_conditions')); if($deleted === false){ //There was an error in the query. Try Replacing "DELETE" with "SELECT" and checking the resulting Error in PHPMyAdmin } else { echo 'The Terms and Conditions Meta Key was deleted for '.$deleted.' Users.'; } }