Cum să inserezi valori noi în câmpurile Prenume și Nume din WordPress prin baza de date
Am un formular personalizat de înregistrare pe site-ul meu WordPress care are funcționalitate de email de confirmare pentru activarea contului. Pentru pasul de confirmare, păstrez o altă tabelă în baza de date unde țin informațiile utilizatorilor în așteptare, iar când aceștia accesează link-ul de confirmare, copiez informațiile din acea tabelă și le adaug în tabelul wp_users. Problema este că am câmpurile Prenume și Nume ale căror informații sunt stocate într-o altă tabelă WordPress numită wp_usermeta.
Deci întrebarea mea este cum pot insera prenumele și numele corespunzătoare utilizatorului atunci când îl adaug în wp_users după confirmare, astfel:
$checkUserID = $wpdb->get_results("SELECT * FROM pendingwpusers WHERE token = '".$gettokenval."'");
$checkUserIDMain = $wpdb->query("SELECT * FROM store_users WHERE TrackNumber = '".$gettokenval."'");
//$aaaa = mysql_num_rows($checkUserIDMain);
//var_dump($checkUserIDMain);
if($checkUserID && $checkUserIDMain == 0){
foreach ($checkUserID as $checkUser) {
//if(wp_mail($to, $subject, $message, $header)){}else{mail($to, $subject, $message, $header);}
$hashedpass = md5($checkUser->user_pass);
$wpdb->insert(
'store_users',
array(
'user_login' => $checkUser->user_login,
'user_pass' => $hashedpass,
'user_nicename' => $checkUser->user_nicename,
'user_email' => $checkUser->user_email,
'user_registered' => $checkUser->user_registered,
'display_name' => $checkUser->display_name,
'TrackNumber' => $checkUser->token
),
array(
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s',
'%s'
)
);
}
}

Dacă aveți ID-ul utilizatorului, puteți face asta:
wp_update_user([
'ID' => $userId, // acesta este ID-ul utilizatorului pe care doriți să îl actualizați.
'first_name' => $firstName,
'last_name' => $lastName,
]);
Puteți actualiza/insera aproape toate câmpurile cu această funcție. Consultați documentația aici

Am avut o problemă similară (utilizatori de test în WooCommerce) și am scris acest script shell:
#!/bin/bash
# setări pentru configurația locală
DB=wordpress ; DBUSER=wordpress ; DBPASS=wordpress
INS_WPU="INSERT INTO wp_users (ID, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES"
INS_WPM="INSERT INTO wp_usermeta (umeta_id, user_id, meta_key, meta_value) VALUES"
# parola este 'testuser'
TESTUSERPASS='$P$BptzXm87Y8pxffjyy4Ur0ANs8uqW7J.'
function ins_test_user(){
# 2 parametri: prenume, nume
NAM1="$1"
NAM2="$2"
# obține ultimul ID neutilizat din wp_users
SQL="select 1+max(ID) from wp_users into @wpuid;\n"
# obține ultimul ID neutilizat din wp_usermeta
SQL="${SQL}select 1+max(umeta_id) from wp_usermeta into @wpmid;\n"
# inserează înregistrare în wp_users
SQL="${SQL}${INS_WPU} (@wpuid, '${NAM1}${NAM2}','${TESTUSERPASS}','${NAM1} ${NAM2}','${NAM1}.${NAM2}@example.org','http://${NAM1}.${NAM2}.example.com',now(),'',0,'utilizator test ${CODE}');\n"
# inserează înregistrări în wp_usermeta
SQL="${SQL}${INS_WPM}(0+@wpmid,@wpuid,'billing_phone','');\n"
SQL="${SQL}${INS_WPM}(1+@wpmid,@wpuid,'nickname','${NAM1} ${NAM2}');\n"
SQL="${SQL}${INS_WPM}(2+@wpmid,@wpuid,'first_name','${NAM1}');\n"
SQL="${SQL}${INS_WPM}(3+@wpmid,@wpuid,'last_name','${NAM2}');\n"
SQL="${SQL}${INS_WPM}(4+@wpmid,@wpuid,'description','');\n"
SQL="${SQL}${INS_WPM}(5+@wpmid,@wpuid,'rich_editing','true');\n"
SQL="${SQL}${INS_WPM}(6+@wpmid,@wpuid,'syntax_highlighting','true');\n"
SQL="${SQL}${INS_WPM}(7+@wpmid,@wpuid,'comment_shortcuts','false');\n"
SQL="${SQL}${INS_WPM}(8+@wpmid,@wpuid,'admin_color','fresh');\n"
SQL="${SQL}${INS_WPM}(9+@wpmid,@wpuid,'use_ssl','0');\n"
SQL="${SQL}${INS_WPM}(10+@wpmid,@wpuid,'show_admin_bar_front','true');\n"
SQL="${SQL}${INS_WPM}(11+@wpmid,@wpuid,'locale','');\n"
SQL="${SQL}${INS_WPM}(12+@wpmid,@wpuid,'wp_capabilities','a:1:{s:8:\"customer\";b:1;}');\n"
SQL="${SQL}${INS_WPM}(13+@wpmid,@wpuid,'wp_user_level','0');\n"
SQL="${SQL}${INS_WPM}(14+@wpmid,@wpuid,'dismissed_wp_pointers','');\n"
SQL="${SQL}${INS_WPM}(15+@wpmid,@wpuid,'billing_first_name','${NAM1}');\n"
SQL="${SQL}${INS_WPM}(16+@wpmid,@wpuid,'billing_last_name','${NAM2}');\n"
SQL="${SQL}${INS_WPM}(17+@wpmid,@wpuid,'billing_company','');\n"
SQL="${SQL}${INS_WPM}(18+@wpmid,@wpuid,'billing_address_1','undeva');\n"
SQL="${SQL}${INS_WPM}(19+@wpmid,@wpuid,'billing_address_2','tărâmul viselor');\n"
SQL="${SQL}${INS_WPM}(20+@wpmid,@wpuid,'billing_city','X');\n"
SQL="${SQL}${INS_WPM}(21+@wpmid,@wpuid,'billing_postcode','90210');\n"
SQL="${SQL}${INS_WPM}(22+@wpmid,@wpuid,'billing_country','AF');\n"
SQL="${SQL}${INS_WPM}(23+@wpmid,@wpuid,'billing_state','');\n"
SQL="${SQL}${INS_WPM}(24+@wpmid,@wpuid,'billing_email','${NAM1}.${NAM2}@example.org');\n"
SQL="${SQL}${INS_WPM}(25+@wpmid,@wpuid,'shipping_first_name','');\n"
SQL="${SQL}${INS_WPM}(26+@wpmid,@wpuid,'shipping_last_name','');\n"
SQL="${SQL}${INS_WPM}(27+@wpmid,@wpuid,'shipping_company','');\n"
SQL="${SQL}${INS_WPM}(28+@wpmid,@wpuid,'shipping_address_1','');\n"
SQL="${SQL}${INS_WPM}(29+@wpmid,@wpuid,'shipping_address_2','');\n"
SQL="${SQL}${INS_WPM}(30+@wpmid,@wpuid,'shipping_city','');\n"
SQL="${SQL}${INS_WPM}(31+@wpmid,@wpuid,'shipping_postcode','');\n"
SQL="${SQL}${INS_WPM}(32+@wpmid,@wpuid,'shipping_country','');\n"
SQL="${SQL}${INS_WPM}(33+@wpmid,@wpuid,'shipping_state','');\n"
# comite după fiecare utilizator
SQL="${SQL}commit;\n"
echo -e "$SQL"
}
{
echo "set autocommit=off;\n"
ins_test_user jane doe
ins_test_user joe bloggs
ins_test_user architeuthis dux
ins_test_user ftagn fnord
ins_test_user pete brick
ins_test_user kaiser soze
echo "set autocommit=on;\n"
} | mysql -D $DB -u $DBUSER --password="$DBPASS"
