Sukurkite savo „WordPress“ vartotojo kontaktų laukus

Šiandien jums sukūriau naują papildinį. Papildinys, kuriame aptariami vartotojų kontaktiniai būdai. Iš esmės, kai redaguojate vartotoją administracijoje, yra „kontaktinės informacijos“ blokas. Na, aš norėčiau jums parodyti, kaip ten pridėti savo laukus ir šiek tiek toliau eiti, kaip šiuos naujus laukus rodyti (ar ne) registracijos puslapyje.


Čia yra peržiūra to, ką ketinsime sukurti:

taisyti-pritaikyti-laukai

Nauji vartotojo laukai redagavimo puslapyje

pasirinktiniai laukai

Pasirinktiniai laukai registracijos puslapyje

Norėdami tai padaryti, kaip įprasta, sukursime gražų ir paprastą papildinį!

1 veiksmas: sukurkite papildinį

Sukurkite naują aplanką „wp-content / plugins“ ir pavadinkite jį „vartotojo vartotojo kontaktų metodais“. Šiame naujai sukurtame aplanke sukurkite failą pavadinimu „rc-custom-user-contact-method.php“ ir atidarykite jį savo mėgstamiausioje redaktoriaus programinėje įrangoje..

Įdėkite šį turinį į tuščią failą. Šis kodas tiesiog registruoja papildinį:

2 veiksmas: apibrėžkite pasirinktinius laukus

Toliau turime sukurti kintamąjį, kuriame bus mūsų pasirinktiniai laukai, kuriuos naudosime vartotojo leidimo puslapyje, taip pat numatytajame registracijos puslapyje. Saugokime šiuos laukus į kintamąjį, vadinamą $ extra_fields.

$ extra_fields = masyvas (
masyvas ('facebook', __ ('Facebook vartotojo vardas', 'rc_cucm'), tiesa),
masyvas („twitter“, __ („Twitter vartotojo vardas“, „rc_cucm“), tiesa),
masyvas („googleplus“, __ („Google+ ID“, „rc_cucm“), tiesa),
masyvas ('linkedin', __ ('Linked In ID', 'rc_cucm'), klaidingas),
masyvas ('pinterest', __ ('Pinterest Nick', 'rc_cucm'), klaidingas),
masyvas ('wordpress', __ ('WordPress.org vartotojo vardas', 'rc_cucm'), klaidingas),
masyvas ('telefonas', __ ('telefono numeris', 'rc_cucm'), tiesa)
);

Mes saugome kiekvieną lauką masyve, turinčiame 3 parametrus, pirmasis yra lauko ID, antrasis yra lauko etiketė, o paskutinis yra loginė informacija, apibrėžianti, ar laukas rodomas registracijos puslapyje, ar ne . Galite pridėti tiek parametrų, kiek norite, pavyzdžiui, vietos žymeklį ar reikiamą informaciją.

3 žingsnis: Prikabinkite tinkamą filtrą

Dabar turime pajungti funkciją į dešinįjį filtrą. Mūsų konkrečiu atveju filtras yra „user_contactmethods“, o funkcijos, kurią ketiname sukurti, pavadinimas yra „rc_add_user_contactmethods“..

// Norėdami pridėti naujų laukų, naudokite „user_contactmethods“
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

4 žingsnis: sukurkite pasirinktinius laukus

Dabar turime sukurti funkciją „rc_add_user_contactmethods“. Tai bus tas, kuris pridės mūsų pasirinktinius laukus prie vartotojo redagavimo puslapio. Geros žinios yra tai, kad mes išsaugojome savo laukus masyve, tai reiškia, kad ši funkcija bus visiškai dinamiška ir bus gana lengva pridėti naujų laukų, tiesiog modifikuojant $ extra_fields kintamąjį.

/ **
* Pridėkite pasirinktinių vartotojų kontaktinius metodus
*
* @ prieiga visuomenei
* @since 1.0
* @atsukti negalioja
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Gaukite laukus
globalūs papildomi laukai;

// Rodyti visus laukus
foreach ($ extra_field kaip $ laukas) {
if (! isset ($ kontaktiniai metodai [$ laukas [0]]))
$ user_contactmethods [$ laukas [0]] = $ laukas [1];
}

// Grąžina kontaktinius metodus
grąžinti $ user_contactmethods;
}

Atlikdami šį veiksmą ir suaktyvinę papildinį, vartotojo redagavimo puslapyje turėtumėte pamatyti savo pasirinktinius laukus. Kadangi mes naudojame teisingą kabliuką, mums nereikia kurti „išsaugoti“ laukų duomenų. Taigi, papildinys šiuo metu veikia puikiai. Bet norėčiau šiek tiek žengti toliau ir pridėti parinktį rodyti tuos laukus registracijos puslapyje. Įsitikinkite, kad pažymėjote nustatymus, pažymėtus žymimąjį laukelį „Kiekvienas gali registruotis“, nes kitaip nematysite nuorodos „Registracija“..

5 žingsnis: Registracijos puslapio kabliukai

Norėdami įtraukti laukus registracijos puslapyje, turime prieiti bent prie dviejų kabliukų ir sukurti dvi funkcijas. Vienas iš jų skirtas laukų rodymui, o antrasis - laukų duomenų išsaugojimui duomenų bazėje.

Pakabinkime savo funkcijas:

// Pridėkite mūsų laukus prie registracijos proceso
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

6 veiksmas: rodykite pasirinktinių laukų registracijos puslapį

Aukščiau esančiame kode deklaravome dvi funkcijas. Pirmiausia laukus reikia parodyti registracijos puslapyje. Šioje dalyje turime pasirūpinti kiekvieno masyvo trečiuoju parametru, esančiu $ extra_fields. Šis loginis parametras nurodo, ar laukai turi būti rodomi, ar ne. Tiesa: laukas rodomas, klaidingas: laukas nerodomas.

/ **
* Registracijos puslapyje rodyti pasirinktinius laukus
*
* Rodykite pasirinktinius laukus registracijos metu, jei trečiasis lauko parametras yra teisingas
*
* @ prieiga visuomenei
* @since 1.0
* @atsukti negalioja
* /
funkcija rc_register_form_display_extra_fields () {

// Gaukite laukus
globalūs papildomi laukai;

// Parodykite kiekvieną lauką, jei 3-asis parametras nustatytas kaip „teisingas“
foreach ($ extra_field kaip $ laukas) {
if ($ laukas [2] == tiesa) {
$ field_value = isset ($ _POST [$ laukas [0]])? $ _POST [$ laukas [0]]: '';
aidėti '

'; } // endif } // pabaiga }

7 žingsnis: Įrašykite laukų vertes registracijos metu

Dabar, kai mūsų laukai yra rodomi registracijos puslapyje, mums reikia jų vertes saugoti duomenų bazėje. Tai yra funkcijos „rc_user_register_save_extra_fields“ tikslas. Norėdami tai padaryti, turime naudoti „wp_update_user ()" funkcija.

/ **
* Išsaugokite lauko vertes
*
* @ prieiga visuomenei
* @since 1.0
* @atsukti negalioja
* /
funkcija rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = masyvas ()) {

// Gaukite laukus
globalūs papildomi laukai;

$ userdata = masyvas ();
$ userdata ['ID'] = $ user_id;

// Išsaugokite kiekvieną lauką
foreach ($ extra_field kaip $ laukas) {
if ($ laukas [2] == tiesa) {
$ vartotojo duomenys [$ laukas [0]] = $ _POST [$ laukas [0]];
} // endif
} // pabaiga

$ new_user_id = wp_update_user ($ vartotojo duomenys);
}

Išvada

Na, mes pamatėme, kaip pridėti naujų laukų prie vartotojo kontaktų metodų, bet viskas. Pavyzdžiui, galite pašalinti esamus laukus, tokius kaip „Yahoo IM“, „AIM“ ir „Jabber“, atlikdami paprastą atjungimą (). Bet taip pat galite pridėti keletą funkcijų, kad sutvarkytumėte pasirinktinius laukus, kad patikrintumėte, ar, pavyzdžiui, telefono numeris turi tinkamą formatą, ar laukas yra būtinas, ar ne ir tt ir tt ... Neskubėkite paklausti konkrečių funkcijų komentaruose.!

O paskutinis dalykas ... jei norite parodyti bet kurio savo lauko duomenis, tiesiog naudokite tai:

// „1 param“ yra vartotojo ID
// „2 Param“ yra lauko ID
// Param 3 yra ten, kad gautum var ar masyvą
echo get_user_meta (1, 'twitter', tiesa);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map