Вы просто передаете массив с 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
, который вы не можете сделать в пакете.