Cum să inserezi valori noi în câmpurile Prenume și Nume din WordPress prin baza de date

3 mai 2016, 15:37:19
Vizualizări: 14.3K
Voturi: 4

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'
                        )
                    ); 
                }
          }
1
Comentarii

Există vreun progres în legătură cu întrebarea/răspunsul?

kaiser kaiser
20 mai 2016 14:14:41
Toate răspunsurile la întrebare 2
2
15

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

3 mai 2016 16:40:57
Comentarii

Încă funcționează în 2020!

eyal_katz eyal_katz
3 sept. 2020 02:31:57

@eyal_katz Am actualizat și linkul.

Refilon Refilon
3 sept. 2020 09:58:50
0

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"
18 apr. 2018 22:21:11