Luo omat WordPress-käyttäjän yhteyskentät

Tänään loin sinulle uuden laajennuksen. Laajennus, joka käsittelee käyttäjien yhteysmenetelmiä. Periaatteessa, kun muokkaat käyttäjää hallinnossa, siellä on ”yhteystiedot” -lohko. No, haluaisin näyttää sinulle, kuinka lisätä omia kenttiäsi siellä ja mennä vähän pidemmälle, kuinka nämä uudet kentät voidaan näyttää (tai ei) rekisteröintisivulla.


Tässä on esikatselu siitä, mitä aiomme luoda:

edit-tilaustyönä kenttiä

Uudet käyttäjäkentät muokkaussivulla

tilaustyönä kenttiä

Muokatut kentät rekisteröintisivulla

Ja tehdä niin, kuten yleensä, aiomme luoda mukavan ja yksinkertaisen laajennuksen!

Vaihe 1: Luo laajennus

Luo uusi kansio wp-content / plugins -sovellukseen ja kutsu sitä nimellä ”custom-user-contact-menetelmät”. Luo tämän äskettäin luodun kansion sisällä tiedosto nimeltä “rc-custom-user-contact-method.php” ja avaa se suosikkieditoriohjelmistossasi..

Sijoita tämä sisältö tyhjään tiedostoon. Tämä koodi rekisteröi vain laajennuksen:

Vaihe 2: Määritä mukautetut kentät

Seuraavaksi meidän on luotava muuttuja, joka sisältää mukautetut kentät, ne, joita käytetään käyttäjän painos-sivulla ja myös rekisteröinnin oletussivulla. Tallennetaan nämä kentät muuttujaan, jonka nimi on $ extra_field.

$ extra_fields = taulukko (
ryhmä ('facebook', __ ('Facebook käyttäjänimi', 'rc_cucm'), totta),
ryhmä ('twitter', __ ('Twitter käyttäjänimi', 'rc_cucm'), totta),
taulukko ('googleplus', __ ('Google+ ID', 'rc_cucm'), tosi),
taulukko ('linkedin', __ ('linkitetty tunnus', 'rc_cucm'), väärä),
array ('pinterest', __ ('Pinterest käyttäjänimi', 'rc_cucm'), vääriä),
taulukko ('wordpress', __ ('WordPress.org käyttäjänimi', 'rc_cucm'), väärä),
ryhmä ('puhelin', __ ('puhelinnumero', 'rc_cucm'), totta)
);

Tallennamme jokaisen kentän ryhmään, jolla on 3 parametria, ensimmäinen on kentän tunnus, toinen kenttämerkintä ja viimeinen on looginen tieto, joka määrittelee, näkyykö kenttä rekisteröintisivulla vai ei. . Voit lisätä niin monta parametria kuin haluat, esimerkiksi paikkamerkin tai vaaditut tiedot.

Vaihe 3: Yhdistä oikea suodatin

Meidän on nyt koottava toiminto oikealle suodattimelle. Erityistapauksessamme suodatin on “user_contactmethods”, ja funktion, jonka aiomme luoda, nimi on “rc_add_user_contactmethods”.

// Lisää user_contactmethods lisätäksesi uusia kenttiä
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Vaihe 4: Luo mukautetut kentät

Meidän on nyt luotava “rc_add_user_contactmethods” -toiminto. Se lisää räätälöityjä kenttiämme käyttäjän muokkaussivulle. Hyvä uutinen on, että varastoimme kentät taulukkoon, se tarkoittaa, että seuraava toiminto on täysin dynaaminen, ja on melko helppoa lisätä uusia kenttiä vain muuttamalla $ extra_fields-muuttujaa.

/ **
* Lisää mukautettujen käyttäjien mukautettuja yhteysmenetelmiä
*
* @ pääsy julkinen
* @since 1.0
* @palaa tyhjä
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Hanki kentät
globaalit $ extra_-kentät;

// Näytä kaikki kentät
foreach ($ extra_ kentät $ kentäksi) {
if (! isset ($ kontaktimenetelmät [$ kenttä [0]]))
$ user_contactmethods [$ kenttä [0]] = $ kenttä [1];
}

// Palauttaa yhteysmenetelmät
palauta $ user_contactmethods;
}

Jos tallennat ja aktivoit laajennuksen, tässä vaiheessa sinun pitäisi nähdä mukautetut kentät käyttäjän muokkaussivulla. Koska käytämme oikeaa koukkua, meidän ei tarvitse luoda ”tallenna” kentätietoja. Joten, laajennus toimii hyvin tällä hetkellä. Mutta haluaisin mennä vähän pidemmälle ja lisätä vaihtoehdon näyttää nämä kentät rekisteröintisivulla. Tee tarkistamalla asetus "Kuka tahansa voi rekisteröidä" -valintaruudun alla, muuten et näe "Rekisteröi" -linkkiä.

Vaihe 5: Rekisteröintisivun koukut

Jos haluat lisätä kenttiämme rekisteröintisivulle, meidän on käytettävä vähintään kahta koukkua ja luotava kaksi toimintoa. Yksi näyttää kentät ja toinen tallentaa kentätiedot tietokantaan.

Kohdistetaan toiminnot:

// Lisää kentät rekisteröintiprosessiin
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Vaihe 6: Näytä mukautettujen kenttien rekisteröintisivu

Yllä olevassa koodissa ilmoitimme kaksi funktiota. Ensimmäinen on näyttää kentät rekisteröintisivulla. Tässä osassa meidän on pidettävä huolta kunkin taulukon kolmannesta parametrista $ extra_-kentissä. Tämä boolean-parametri kertoo, onko kentät näytettävä vai ei. True: kenttä näkyy, false: kenttää ei näytetä.

/ **
* Näytä mukautetut kentät rekisteröintisivulla
*
* Näytä mukautetut kentät rekisteröinnissä, jos kentän kolmas parametri on asetettu true
*
* @ pääsy julkinen
* @since 1.0
* @palaa tyhjä
* /
toiminto rc_register_form_display_extra_fields () {

// Hanki kentät
globaalit $ extra_-kentät;

// Näytä jokainen kenttä, jos 3. parametri on asetettu arvoon "true"
foreach ($ extra_ kentät $ kentäksi) {
if ($ -kenttä [2] == totta) {
$ field_value = isset ($ _POST [$ kenttä [0]])? $ _POST [$ kenttä [0]]: '';
kaiku '

'; } // loppu Jos } // lopeta esikuva }

Vaihe 7: Tallenna kenttien arvot rekisteröinnin yhteydessä

Nyt kun kentämme näkyvät rekisteröintisivulla, meidän on tallennettava niiden arvot tietokantaan. Tämä on "rc_user_register_save_extra_fields" -toiminnon aika. Tätä varten meidän on käytettävä ”wp_update_user ()”Toiminto.

/ **
* Tallenna kenttäarvot
*
* @ pääsy julkinen
* @since 1.0
* @palaa tyhjä
* /
toiminto rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Hanki kentät
globaalit $ extra_-kentät;

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

// Tallenna jokainen kenttä
foreach ($ extra_ kentät $ kentäksi) {
if ($ -kenttä [2] == totta) {
$ käyttäjän tiedot [$ kenttä [0]] = $ _POST [$ kenttä [0]];
} // loppu Jos
} // lopeta esikuva

$ new_user_id = wp_update_user ($ userdata);
}

johtopäätös

Näimme perusteet uusien kenttien lisäämiseksi käyttäjän yhteysmenetelmiin, mutta siinä kaikki. Voit esimerkiksi poistaa olemassa olevat kentät, kuten “Yahoo IM”, “AIM” ja “Jabber”, tekemällä yksinkertaisen katkaisun (). Voit myös lisätä joitain toimintoja mukautettujen kenttien puhdistamiseksi tarkistaaksesi esimerkiksi, onko puhelinnumerolla asianmukainen muoto, tarvitaanko kenttä vai ei jne. Jne. Älä epäröi kysyä kommentteista kommentteja!

Voi, ja viimeinen asia ... jos haluat näyttää minkä tahansa kentän tiedot, käytä tätä:

// Param 1 on käyttäjätunnus
// Param 2 on kentän tunnus
// Param 3 on olemassa, jotta saadaan var tai taulukko
echo get_user_meta (1, 'twitter', tosi);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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