Вы просто передаете массив с user_ids до update_user_meta
? Тогда это не сработает.
Используя цикл по всем user_ids он должен работать:
foreach($user_ids as $user_id){
update_user_meta($user_id, $key, $value);
}
Подумайте о SQL генерируется, имея при этом в виду дизайн базы данных WordPress. Он имеет таблицу wp_usermeta
, с колонками user_id
, meta_key
и meta_value
. Это означает, что каждое метазначение имеет строку в этой таблице для каждого пользователя. Вы можете использовать код, как
global $wpdb;
$ids = implode("', '", $user_ids);
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->usermeta} SET meta_value = %s WHERE user_id IN ('{$ids}') AND meta_key = %s"), $value, $key);
Однако это не будет работать, если meta_key
для определенного пользователя еще не существует. Тогда вам понадобится инструкция INSERT
, которую вы не можете сделать в партии.
Нет, не работает. Обновляется только один пользователь. :( –
Пожалуйста, добавьте еще какой-нибудь код или попробуйте отладить его самостоятельно. – Joost