Vytvorte si vlastné polia kontaktu používateľa WordPress

Dnes som pre vás vytvoril nový doplnok. Doplnok, ktorý sa zaoberá kontaktnými metódami používateľov. V podstate, keď upravujete používateľa v správe, je tu blok „kontaktných informácií“. Chcel by som vám ukázať, ako tam pridať svoje vlastné polia a ísť ešte ďalej, ako ukázať (alebo nie) tieto nové polia na registračnej stránke..


Tu je ukážka toho, čo vytvoríme:

edit-custom-fields

Nové polia používateľov na stránke úprav

Vlastné polia

Vlastné polia na stránke registrácie

A ako zvyčajne, vytvoríme pekný a jednoduchý doplnok!

Krok 1: Vytvorte doplnok

Vytvorte nový priečinok v wp-content / plugins a nazvite ho „custom-user-contact-methods“. V tomto novo vytvorenom priečinku vytvorte súbor s názvom „rc-custom-user-contact-methods.php“ a otvorte ho v obľúbenom softvéri editora..

Vložte tento obsah do svojho prázdneho súboru. Tento kód jednoducho zaregistruje doplnok:

Krok 2: Definujte svoje vlastné polia

Ďalej musíme vytvoriť premennú, ktorá bude obsahovať naše vlastné polia, ktoré sa použijú na stránke vydania používateľa a tiež na predvolenej stránke registrácie. Uložme tieto polia do premennej s názvom $ extra_fields.

$ extra_fields = array (
pole („facebook“, __ („používateľské meno Facebook“, „rc_cucm“), pravdivé),
pole („twitter“, __ („používateľské meno Twitter“, „rc_cucm“), true),
pole („googleplus“, __ („Google+ ID“, „rc_cucm“), true),
pole ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
pole ('pinterest', __ ('Pinterest meno používateľa', 'rc_cucm'), nepravdivé),
array ('wordpress', __ ('WordPress.org Username', 'rc_cucm'), false),
pole ('phone', __ ('Phone Number', 'rc_cucm'), true)
);

Do poľa ukladáme každé pole, ktoré má 3 parametre, prvým je ID poľa, druhým je označenie poľa a posledným je boolovská informácia, ktorá definuje, či sa pole zobrazí na registračnej stránke alebo nie. , Môžete pridať ľubovoľný počet parametrov, napríklad zástupný symbol alebo požadované informácie.

Krok 3: Zaveste správny filter

Teraz musíme prepojiť funkciu so správnym filtrom. V našom špecifickom prípade je filter „user_contactmethods“ a názov funkcie, ktorú vytvoríme, je „rc_add_user_contactmethods“.

// Na pridanie nových polí použite metódu user_contact
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Krok 4: Vytvorte si vlastné polia

Teraz musíme vytvoriť funkciu „rc_add_user_contactmethods“. Je to pole, ktoré pridá naše vlastné polia na stránku úprav používateľa. Dobrou správou je, že naše polia sme uložili do poľa, to znamená, že nasledujúca funkcia bude plne dynamická a bude ľahké pridať nové polia iba úpravou premennej $ extra_fields..

/ **
* Pridajte vlastné užívateľské metódy kontaktu
*
* @access public
* @ od 1.0
* @return neplatné
* /
function rc_add_user_contactmethods ($ user_contactmethods) {

// Získať polia
global $ extra_fields;

// Zobrazte jednotlivé polia
foreach ($ extra_fields ako $ field) {
if (! isset ($ contactmethods [$ field [0]])))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Vráti metódy kontaktu
return $ user_contactmethods;
}

Ak v tomto kroku doplnok uložíte a aktivujete, na stránke úprav používateľa by ste mali vidieť svoje vlastné polia. Keďže používame správny háčik, nemusíme vytvárať údaje polí „uložiť“. Plugin teda momentálne pracuje skvele. Chcel by som však ísť ešte ďalej a pridať možnosť zobrazovať tieto polia na stránke registrácie. Skontrolujte, či je v nastaveniach začiarknuté políčko „Každý sa môže zaregistrovať“, inak sa vám nebude zobrazovať odkaz „Registrovať“..

Krok 5: Háčiky na registráciu

Ak chcete pridať naše polia na registračnú stránku, musíme mať prístup aspoň k dvom háčikom a vytvoriť dve funkcie. Jeden zobrazí polia a druhý uloží údaje polí do databázy.

Zaveste naše funkcie:

// Pridajte naše polia do procesu registrácie
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Krok 6: Zobrazte stránku registrácie vlastných polí

Vo vyššie uvedenom kóde sme deklarovali dve funkcie. Prvým je zobrazenie polí na registračnej stránke. V tejto časti sa musíme postarať o tretí parameter každého poľa v $ extra_fields. Tento booleovský parameter určuje, či sa majú polia zobraziť alebo nie. Pravda: pole je zobrazené, nesprávne: pole nie je zobrazené.

/ **
* Zobraziť vlastné polia na stránke registrácie
*
* Zobraziť vlastné polia pri registrácii, ak je parameter tretieho poľa nastavený na true
*
* @access public
* @ od 1.0
* @return neplatné
* /
function rc_register_form_display_extra_fields () {

// Získať polia
global $ extra_fields;

// Zobrazte každé pole, ak je 3. parameter nastavený na „true“.
foreach ($ extra_fields ako $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
ozvena

,; } // koniec Ak } // koniec foreach }

Krok 7: Uložte hodnoty polí po registračnom procese

Teraz, keď sa naše polia zobrazia na stránke registrácie, potrebujeme uložiť ich hodnoty do databázy. Toto je okamih funkcie „rc_user_register_save_extra_fields“. Aby sme to mohli urobiť, musíme použiť „wp_update_user ()“.

/ **
* Uložiť hodnoty polí
*
* @access public
* @ od 1.0
* @return neplatné
* /
funkcia rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Získať polia
global $ extra_fields;

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

// Uložte každé pole
foreach ($ extra_fields ako $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // koniec Ak
} // koniec foreach

$ new_user_id = wp_update_user ($ userdata);
}

záver

Videli sme základy, ako pridať nové metódy do kontaktných metód používateľa, ale to je všetko. Môžete napríklad odstrániť existujúce polia ako „Yahoo IM“, „AIM“ a „Jabber“ jednoduchým odstavením (). Môžete však tiež pridať niektoré funkcie na dezinfekciu vlastných polí, aby ste napríklad skontrolovali, či telefónne číslo má vhodný formát, či je pole povinné alebo nie atď. Atď. Neváhajte požiadať o konkrétne funkcie v komentároch.!

Jo, a posledná vec ... ak chcete zobraziť údaje z ktoréhokoľvek poľa, jednoducho použite toto:

// Parameter 1 je ID používateľa
// Parameter 2 je ID poľa
// Parameter 3 obsahuje var alebo pole
echo get_user_meta (1, 'twitter', true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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