Looge oma WordPressi kasutaja kontaktväljad

Täna lõin teile uue pistikprogrammi. Pistikprogramm, mis tegeleb kasutajate kontaktmeetoditega. Põhimõtteliselt on administratsioonis kasutaja redigeerimisel blokeeritud kontaktteave. Noh, ma tahaksin teile näidata, kuidas sinna oma välju lisada ja natuke kaugemale minna, kuidas neid uusi välju registreerimislehel näidata (või mitte).


Siin on eelvaade sellest, mida me loome:

redigeeri-kohandatud-väljad

Uued kasutajaväljad muutmislehel

kohandatud väljad

Kohandatud väljad registreerimislehel

Ja selleks, nagu tavaliselt, loome kena ja lihtsa pistikprogrammi!

1. samm: looge pistikprogramm

Looge uus kaust kausta wp-content / plugins ja nimetage seda kohandatud kasutaja-kontakt-meetoditeks. Looge selle vastloodud kausta sees fail nimega “rc-custom-user-contact-method.php” ja avage see oma lemmiktöötlustarkvaras.

Pange see sisu tühja faili. See kood registreerib lihtsalt pistikprogrammi:

2. samm: määratlege oma kohandatud väljad

Järgmisena peame looma muutuja, mis sisaldab meie kohandatud väljad, neid, mida kasutada kasutajaväljaande lehel ja ka registreerimise vaikelehel. Salvestage need väljad muutujasse nimega $ extra_field.

$ extra_fields = array (
massiiv ('facebook', __ ('Facebooki kasutajanimi', 'rc_cucm'), tõsi),
massiiv ('twitter', __ ('Twitteri kasutajanimi', 'rc_cucm'), tõsi),
massiiv ('googleplus', __ ('Google+ ID', 'rc_cucm'), tõsi),
massiiv ('linkedin', __ ('ühendatud ID', 'rc_cucm'), vale),
massiiv ('pinterest', __ ('Pinterest kasutajanimi', 'rc_cucm'), vale),
massiiv ('wordpress', __ ('WordPress.org kasutajanimi', 'rc_cucm'), vale),
massiiv ('telefon', __ ('telefoninumber', 'rc_cucm'), tõsi)
);

Salvestame kõiki välju massiivis, millel on 3 parameetrit, esimene on välja ID, teine ​​põllu silt ja viimane on tõeväärtuse teave, mis määratleb, kas välja näidatakse registreerimislehel või mitte. . Saate lisada nii palju parameetreid, kui soovite, näiteks kohatäide või nõutav teave.

3. samm: konksge parem filter

Nüüd peame funktsiooni ühendama paremasse filtrisse. Meie konkreetsel juhul on filter “user_contactmethods” ja loodava funktsiooni nimi on “rc_add_user_contactmethods”.

// Uute väljade lisamiseks kasutage kasutaja_kontaktimeetodeid
add_filter ('kasutaja_kontaktimeetodid', 'rc_add_user_kontaktimeetodid');

4. samm: looge meie kohandatud väljad

Nüüd peame looma funktsiooni “rc_add_user_contactmethods”. See lisab meie kohandatud väljad kasutaja redigeerimise lehele. Hea uudis on see, et salvestasime oma väljad massiivi, see tähendab, et järgmine funktsioon on täielikult dünaamiline ja uute väljade lisamine on üsna lihtne, muutes lihtsalt muutujat $ extra_fields.

/ **
* Lisage kohandatud kasutajate kohandatud kontaktmeetodeid
*
* @ juurdepääs avalik
* @ väärtus 1.0
* @ tagasivõtmine tühine
* /
funktsioon rc_add_user_contactmethods ($ user_contactmethods) {

// Saa põlde
ülemaailmsed ekstraväljad;

// Kuvage kõik väljad
foreach ($ extra_field on $ väli) {
if (! isset ($ kontaktmeetodid [$ väli [0]]))
$ user_contactmethods [$ väli [0]] = $ väli [1];
}

// Tagastab kontaktmeetodid
return $ user_contactmethods;
}

Kui salvestate ja aktiveerite pistikprogrammi, peaksite selles etapis kasutaja redigeerimise lehel nägema oma kohandatud väljad. Kuna kasutame õiget konksu, ei pea me looma väljade salvestamise andmeid. Niisiis, plugin töötab praegu suurepäraselt. Kuid tahaksin minna natuke kaugemale ja lisada võimalus kuvada neid väljad registreerimislehel. Kontrollige, kas olete märkinud ruudus „Igaüks saab registreerida“, muidu ei näe te linki „Registreeri“.

5. samm: registreerimislehe konksud

Väljade lisamiseks registreerimislehele peame pääsema juurde vähemalt kahele konksule ja looma kaks funktsiooni. Üks väljade kuvamiseks ja teine ​​põldude andmete andmebaasi salvestamiseks.

Haarakem meie funktsioonid:

// Lisage registreerimisprotsessi meie väljad
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

6. samm: kuvage kohandatud väljade registreerimisleht

Ülaltoodud koodis kuulutasime kahte funktsiooni. Esimene neist on väljade kuvamine registreerimislehel. Selles osas peame hoolitsema $ massi väljade iga massiivi kolmanda parameetri eest. See tõeväärtuse parameeter annab teada, kas välju tuleb näidata või mitte. Tõsi: väli on kuvatud, vale: välja ei näidata.

/ **
* Kuva kohandatud väljad registreerimislehel
*
* Kui registreerite välja kolmanda parameetri väärtuseks tõene, kuvage registreerimisel kohandatud väljad
*
* @ juurdepääs avalik
* @ väärtus 1.0
* @ tagasivõtmine tühine
* /
funktsioon rc_register_form_display_extra_fields () {

// Saa põlde
ülemaailmsed ekstraväljad;

// Kuvage iga väli, kui 3. parameeter on seatud väärtusele "tõene"
foreach ($ extra_field on $ väli) {
if ($ väli [2] == õige) {
$ field_value = isset ($ _POST [$ väli [0]])? $ _POST [$ väli [0]]: '';
kaja '

'; } // endif } // lõpp kuulutama }

7. samm: salvestage põldude väärtused registreerimisel

Nüüd, kui meie väljad on registreerimislehel näidatud, peame nende väärtused andmebaasi salvestama. See on funktsiooni “rc_user_register_save_extra_fields” eesmärk. Selleks peame kasutama „wp_update_user ()”Funktsiooni.

/ **
* Salvestage välja väärtused
*
* @ juurdepääs avalik
* @ väärtus 1.0
* @ tagasivõtmine tühine
* /
funktsioon rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Saa põlde
ülemaailmsed ekstraväljad;

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

// Salvestage iga väli
foreach ($ extra_field on $ väli) {
if ($ väli [2] == õige) {
$ kasutajaandmed [$ väli [0]] = $ _POST [$ väli [0]];
} // endif
} // lõpp kuulutama

$ new_user_id = wp_update_user ($ userdata);
}

Järeldus

Noh, me nägime põhitõdesid, kuidas kasutaja kontaktmeetoditele uusi välju lisada, kuid see on ka kõik. Näiteks saate olemasolevad väljad, näiteks “Yahoo IM”, “AIM” ja “Jabber”, eemaldada, kasutades lihtsat unset (). Kuid kohandatud väljade desinfitseerimiseks võite lisada ka mõned funktsioonid, et kontrollida näiteks seda, kas telefoninumber on sobivas vormingus, kas väli on kohustuslik või mitte jne jne. Ärge kõhelge, et küsige kommentaarides konkreetseid funktsioone.!

Ja viimane asi ... kui soovite kuvada mõne oma välja andmeid, kasutage lihtsalt järgmist:

// Param 1 on kasutajatunnus
// Param 2 on välja ID
// Param 3 on olemas varia või massiivi saamiseks
echo get_user_meta (1, 'twitter', tõsi);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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