Ustvarite svoja polja za stike z uporabnikom WordPress

Danes sem za vas ustvaril nov vtičnik. Vtičnik, ki obravnava načine stika z uporabniki. Ko v uporabniku urejate uporabnika v administraciji, obstaja blok “kontaktni podatki”. No, rad bi vam pokazal, kako naj tam dodate svoja polja in še malo naprej, kako prikazati (ali ne) ta nova polja na strani za registracijo..


Tu je predogled, kaj bomo ustvarili:

edit-custom-polja

Nova uporabniška polja na strani za urejanje

polja po meri

Polja po meri na strani za registracijo

In tako bomo, kot običajno, ustvarili lep in preprost vtičnik!

1. korak: Ustvarite vtičnik

Ustvarite novo mapo v wp-content / plugins-ju in jo imenite “metode-stiki po meri uporabnika”. Znotraj te novo ustvarjene mape ustvarite datoteko z imenom »rc-custom-user-contact-method.php« in jo odprite v svoji najljubši programski opremi za urejevalnik.

Vsebino postavite v prazno datoteko. Ta koda preprosto registrira vtičnik:

2. korak: Določite svoja polja po meri

Nato moramo ustvariti spremenljivko, ki bo vsebovala naša polja po meri, tista, ki jih bomo uporabljali na strani z uporabniško izdajo in tudi na privzeti strani za registracijo. Shranimo ta polja v spremenljivko, imenovano $ extra_fields.

$ extra_fields = matrika (
matrika ('facebook', __ ('Facebook uporabniško ime', 'rc_cucm'), resnično),
array ('twitter', __ ('uporabniško ime za Twitter', 'rc_cucm'), resnično),
matrika ('googleplus', __ ('ID za Google+', 'rc_cucm'), resnično),
matrika ('linkedin', __ ('Povezana vrednost v ID-ju', 'rc_cucm'), napačno),
matrika ('pinterest', __ ('Uporabniško ime Pinterest', 'rc_cucm'), napačno),
array ('wordpress', __ ('Uporabniško ime za WordPress.org', 'rc_cucm'), napačno),
matrika ('telefon', __ ('telefonska številka', 'rc_cucm'), resnično)
);

Vsako polje shranimo v matriko, ki ima 3 parametre, prvo je ID polja, drugo je oznaka polja, zadnje pa je logična informacija, ki določa, ali je polje prikazano na strani za registracijo ali ne . Dodate lahko toliko želenih parametrov, na primer rezervirano mesto ali zahtevane podatke.

3. korak: Priključite desni filter

Zdaj moramo funkcijo priključiti na pravi filter. V našem posebnem primeru je filter "user_contactmethods", ime funkcije, ki jo bomo ustvarili, je "rc_add_user_contactmethods".

// Za dodajanje novih polj uporabite user_contactmethods
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

4. korak: ustvarite naša polja po meri

Zdaj moramo ustvariti funkcijo "rc_add_user_contactmethods". To je tisto, ki bo dodalo naša polja po meri na stran za urejanje uporabnikov. Dobra novica je, da smo svoja polja shranili znotraj matrike, kar pomeni, da bo naslednja funkcija popolnoma dinamična, poleg tega pa bo precej enostavno dodati nova polja le s spreminjanjem spremenljivke $ extra_fields.

/ **
* Dodajte uporabnikom načine stikov po meri
*
* @ dostopna javnost
* @since 1.0
* @ neveljavna razveljavitev
* /
funkcija rc_add_user_contactmethods ($ user_contactmethods) {

// Pridobite polja
globalna $ extra_fields;

// Prikažite vsa polja
foreach ($ extra_fields kot $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Vrne načine stika
vrni $ user_contactmethods;
}

Če shranite in aktivirate vtičnik, morate na tem koraku na strani za urejanje uporabnikov videti svoja polja po meri. Ko uporabljamo pravi kavelj, nam ni treba ustvarjati podatkov o shranjevanju polja. Torej, vtičnik trenutno deluje odlično. Vendar bi rad šel še malo naprej in dodal možnost za prikaz teh polj na strani za registracijo. Preverite, če v nastavitvah potrdite potrditveno polje »Vsak se lahko registrira«, sicer ne boste mogli videti povezave »Registracija«..

5. korak: Kljuke za registracijo strani

Za dodajanje naših polj na registracijsko stran moramo odpreti vsaj dva trnka in ustvariti dve funkciji. Eno za prikaz polj in drugo za shranjevanje podatkov o poljih v bazo podatkov.

Priključimo naše funkcije:

// Dodajte svoja polja v postopek registracije
dodajanje ('register_form', 'rc_register_form_display_extra_fields');
dodajanje ('user_register', 'rc_user_register_save_extra_fields', 100);

6. korak: Prikažite stran za registracijo polj po meri

V zgornji kodi smo razglasili dve funkciji. Prvi je prikaz polj na strani za registracijo. V tem delu moramo skrbeti za tretji parameter vsakega niza v $ extra_fields. Ta logični parameter pove, ali je treba prikazati polja ali ne. Res: polje je prikazano, false: polje ni prikazano.

/ **
* Pokaži polja po meri na strani za registracijo
*
* Pri registraciji prikažite polja po meri, če je tretji parameter polja nastavljen na true
*
* @ dostopna javnost
* @since 1.0
* @ neveljavna razveljavitev
* /
funkcija rc_register_form_display_extra_fields () {

// Pridobite polja
globalna $ extra_fields;

// Prikažite vsako polje, če je 3. parameter nastavljen na "true"
foreach ($ extra_fields kot $ field) {
if ($ polje [2] == res) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ polje [0]]: '';
odmev '

'; } // endif } // konec foreach }

7. korak: Shranite vrednosti polj po postopku registracije

Zdaj, ko so naša polja prikazana na strani za registracijo, moramo njihove vrednosti shraniti v bazo podatkov. To je čas funkcije "rc_user_register_save_extra_fields". Da bi to storili, moramo uporabiti "wp_update_user ()"Funkcija.

/ **
* Shrani vrednosti polja
*
* @ dostopna javnost
* @since 1.0
* @ neveljavna razveljavitev
* /
funkcija rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Pridobite polja
globalna $ extra_fields;

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

// Shrani vsako polje
foreach ($ extra_fields kot $ field) {
if ($ polje [2] == res) {
$ userdata [$ field [0]] = $ _POST [$ polje [0]];
} // endif
} // konec foreach

$ new_user_id = wp_update_user ($ userdata);
}

Zaključek

No, videli smo osnove, kako nove načine za stike z uporabnikom dodati nova polja, vendar je to vse. Lahko na primer odstranite obstoječa polja, kot so "Yahoo IM", "AIM" in "Jabber" s preprostim izklopom (). Lahko pa dodate tudi nekaj funkcij za očiščenje polj po meri, da na primer preverite, ali je telefonska številka ustrezne oblike, če je potrebno polje ali ne itd. Itd.!

In še zadnja stvar ... če želite prikazati podatke katerega koli svojega polja, preprosto uporabite to:

// Param 1 je uporabniški ID
// Param 2 je ID polja
// Param 3 je tu, da dobite var ali niz
echo get_user_meta (1, 'twitter', res);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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