php - How to update user meta for multiple meta_key in wordpress -


i'm trying update multiple meta_key user in wordpress

update_user_meta( $user_id, array( 'nickname' => $userfirstname, 'first_name' => $userfirstname, 'last_name' => $userlastname , 'city' => $usercityid , 'gender' => $usergenderid) ); 

but not working. how can update multiple meta_key user?

try:

<?php $user_id = 1234;  $metas = array(      'nickname'   => $userfirstname,     'first_name' => $userfirstname,      'last_name'  => $userlastname ,     'city'       => $usercityid ,     'gender'     => $usergenderid );  foreach($metas $key => $value) {     update_user_meta( $user_id, $key, $value ); } 

so instead of passing array update_user_meta accepts string arguments $meta_key, loop on array , call update_user_meta each key/value pair in array.

edit:

wordpress doesn't give built in way update multiple metas @ once. part of reason using built in function because filters , hooks can registered operate on meta information. these won't called if update them directly.

that said, can try (code untested):

$columns  = implode(" = '%s', ", array_keys($metas)) . " = '%s'"; $values   = array_values($metas); $values[] = $user_id; $table    = _get_meta_table('user'); $sql      = "update $table set $columns user_id = %d"; $wpdb->query(     $wpdb->prepare($sql, $values) ); 

Comments