Astăzi am creat un nou plugin pentru tine. Un plugin care se ocupă de metodele de contact ale utilizatorilor. Practic, când editați un utilizator din administrație, există un bloc „informații de contact”. Ei bine, aș dori să vă arăt cum să adăugați câmpurile dvs. acolo și să mergeți un pic mai departe, cum să arătați (sau nu) aceste câmpuri noi pe pagina de înregistrare.


Iată o previzualizare a ceea ce vom crea:

edit-personalizate-domenii

Câmpuri noi de utilizator pe pagina de editare

câmpuri customizate

Câmpuri personalizate pe pagina de înregistrare

Și pentru a face acest lucru, ca de obicei, vom crea un plugin frumos și simplu!

Pasul 1: Creează pluginul

Creați un nou folder în wp-content / plugins și numiți-l „metode personalizate-utilizator-contact-metode”. În acest folder nou creat, creați un fișier numit „rc-custom-user-contact-method.php” și deschideți-l în software-ul dvs. de editor preferat..

Plasați acest conținut în fișierul dvs. gol. Acest cod înregistrează pur și simplu pluginul:

Pasul 2: Definiți câmpurile dvs. personalizate

În continuare, trebuie să creăm o variabilă care să conțină câmpurile noastre personalizate, cele pe care să le utilizăm în pagina ediției utilizatorului, precum și pe pagina implicită de înregistrare. Să stocăm aceste câmpuri într-o variabilă numită $ extra_fields.

$ extra_fields = array (
tablou („facebook”, __ („nume de utilizator Facebook”, „rc_cucm”), adevărat),
tablou („twitter”, __ („nume de utilizator Twitter”, „rc_cucm”), adevărat),
tablou („googleplus”, __ („ID Google+”, „rc_cucm”), adevărat),
array ('linkedin', __ ('Linked In ID', 'rc_cucm'), fals),
array ('pinterest', __ ('Numele de utilizator Pinterest', 'rc_cucm'), false),
array ('wordpress', __ ('Username WordPress.org', 'rc_cucm'), false),
tablou („telefon”, __ („Număr de telefon”, „rc_cucm”), adevărat)
);

Stocăm fiecare câmp dintr-un tablou care are 3 parametri, primul este ID-ul câmpului, al doilea este eticheta câmpului, iar ultimul este o informație booleană care definește dacă câmpul este afișat pe pagina de înregistrare sau nu . Puteți adăuga cât mai mulți parametri doriți, de exemplu un marcator de locație sau o informație necesară.

Pasul 3: Agățați filtrul drept

Acum trebuie să conectăm o funcție la filtrul potrivit. În cazul nostru specific, filtrul este „user_contactmethods”, iar numele funcției pe care o vom crea este „rc_add_user_contactmethods”..

// Utilizați user_contactmethods pentru a adăuga câmpuri noi
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Pasul 4: Creați câmpurile noastre personalizate

Acum trebuie să creăm funcția „rc_add_user_contactmethods”. Este cel care va adăuga câmpurile noastre personalizate la pagina de editare a utilizatorului. Vestea bună este că am stocat câmpurile noastre într-un tablou, înseamnă că următoarea funcție va fi complet dinamică și va fi destul de ușor să adăugați câmpuri doar modificând variabila $ extra_fields.

/ **
* Adăugați utilizatori personalizați metode de contact personalizate
*
* @acces public
* @since 1.0
* @return nul
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Obține câmpuri
câmpuri extra $ extra;

// Afișați fiecare câmp
foreach ($ câmpuri în plus ca $ câmp) {
if (! isset ($ contactmethods [$ câmp [0]])))
$ user_contactmethods [$ câmp [0]] = $ câmp [1];
}

// Returnează metodele de contact
returna $ user_contactmethods;
}

La acest pas, dacă salvați și activați pluginul, ar trebui să vedeți câmpurile dvs. personalizate în pagina de editare a utilizatorului. Deoarece folosim cârligul corect, nu trebuie să creăm date de câmp „salvare”. Așadar, pluginul funcționează excelent pentru moment. Dar aș dori să merg un pic mai departe și să adaug opțiunea de a afișa câmpurile respective pe pagina de înregistrare. Verificați în setări caseta de selectare „Oricine se poate înregistra”, altfel nu veți putea vedea linkul „Înregistrați-vă”.

Pasul 5: Cârligarea paginilor de înregistrare

Pentru a adăuga câmpurile noastre pe pagina de înregistrare, trebuie să accesăm cel puțin două cârlige și să creăm două funcții. Una pentru afișarea câmpurilor, iar cea de-a doua pentru salvarea datelor câmpurilor în baza de date.

Haideți să ne conectăm funcțiile:

// Adăugați câmpurile noastre la procesul de înregistrare
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Pasul 6: Afișați pagina de înregistrare a câmpurilor personalizate

În codul de mai sus am declarat două funcții. Primul este să afișăm câmpurile pe pagina de înregistrare. În această parte trebuie să avem grijă de al treilea parametru al fiecărui tablou din $ extra_fields. Acest parametru boolean indică dacă câmpurile trebuie să fie afișate sau nu. Adevărat: câmpul este arătat, fals: câmpul nu este afișat.

/ **
* Afișați câmpuri personalizate pe pagina de înregistrare
*
* Afișați câmpuri personalizate la înregistrare dacă al treilea parametru câmp este setat la adevărat
*
* @acces public
* @since 1.0
* @return nul
* /
function rc_register_form_display_extra_fields () {

// Obține câmpuri
câmpuri extra $ extra;

// Afișați fiecare câmp dacă al treilea parametru este setat pe „adevărat”
foreach ($ câmpuri în plus ca $ câmp) {
if ($ câmp [2] == true) {
$ field_value = isset ($ _POST [$ câmp [0]])? $ _POST [$ câmp [0]]: '';
ecou '

„; } // endif } // final predach }

Pasul 7: Stocați valorile câmpurilor la procesul de înregistrare

Acum că câmpurile noastre sunt afișate pe pagina de înregistrare, trebuie să le stocăm valorile în baza de date. Acesta este momentul funcției „rc_user_register_save_extra_fields”. Pentru a face acest lucru, trebuie să utilizăm „wp_update_user ()”Funcție.

/ **
* Salvați valorile câmpului
*
* @acces public
* @since 1.0
* @return nul
* /
function rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Obține câmpuri
câmpuri extra $ extra;

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

// Salvați fiecare câmp
foreach ($ câmpuri în plus ca $ câmp) {
if ($ câmp [2] == true) {
$ userdata [$ câmp [0]] = $ _POST [$ câmp [0]];
} // endif
} // final predach

$ new_user_id = wp_update_user ($ userdata);
}

Concluzie

Ei bine, am văzut elementele de bază despre cum să adăugăm câmpuri noi la metodele de contact cu utilizatorii, dar asta este totul. Puteți, de exemplu, să eliminați câmpurile existente, cum ar fi „Yahoo IM”, „AIM” și „Jabber”, făcând o simplă ștergere (). Puteți adăuga, de asemenea, câteva funcții pentru igienizarea câmpurilor dvs. personalizate pentru a verifica, de exemplu, dacă numărul de telefon are un format adecvat, dacă este necesar sau nu un câmp etc.!

Oh, și un ultim lucru ... dacă doriți să afișați datele oricărui din câmpul dvs., utilizați pur și simplu acest lucru:

// Param 1 este ID-ul utilizatorului
// Param 2 este ID camp
// Param 3 este acolo pentru a obține un var sau un tablou
echo get_user_meta (1, 'twitter', adevărat);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me