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
Post a Comment