Dnes jsem pro vás vytvořil nový plugin. Plugin, který se zabývá způsoby kontaktu uživatelů. V zásadě, když upravujete uživatele ve správě, je zde blok „kontaktních informací“. Chtěl bych vám ukázat, jak tam přidat vlastní pole, a jít ještě dále, jak ukázat (nebo ne) tato nová pole na registrační stránce..
Zde je náhled toho, co chceme vytvořit:
Nová uživatelská pole na stránce úprav
Vlastní pole na registrační stránce
A jako obvykle, vytvoříme pěkný a jednoduchý plugin!
Contents
Krok 1: Vytvořte plugin
Vytvořte novou složku ve wp-content / plugins a nazvejte ji „custom-user-contact-methods“. V této nově vytvořené složce vytvořte soubor s názvem „rc-custom-user-contact-methods.php“ a otevřete jej ve svém oblíbeném editoru..
Umístěte tento obsah do vašeho prázdného souboru. Tento kód jednoduše zaregistruje plugin:
Krok 2: Definujte svá vlastní pole
Dále musíme vytvořit proměnnou, která bude obsahovat naše vlastní pole, ta, která se použijí na stránce vydání uživatele, a také na výchozí stránce registrace. Uložme tato pole do proměnné nazvané $ extra_fields.
$ extra_fields = array (
pole ('facebook', __ ('uživatelské jméno pro Facebook', 'rc_cucm'), true),
pole ('twitter', __ ('uživatelské jméno Twitter', 'rc_cucm'), true),
pole ('googleplus', __ ('Google+ ID', 'rc_cucm'), true),
pole ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
pole ('pinterest', __ ('Pinterest Uživatelské jméno', 'rc_cucm'), false),
pole ('wordpress', __ ('Uživatelské jméno WordPress.org', 'rc_cucm'), false),
pole ('phone', __ ('Phone Number', 'rc_cucm'), true)
);
Ukládáme každé pole v matici, které má 3 parametry, první je ID pole, druhé je označení pole a poslední je booleovská informace, která definuje, zda se pole zobrazí na registrační stránce nebo ne . Můžete přidat libovolný počet parametrů, například zástupný symbol nebo požadované informace.
Krok 3: Zavěste správný filtr
Nyní musíme připojit funkci ke správnému filtru. V našem konkrétním případě je filtrem „user_contactmethods“ a název funkce, kterou chceme vytvořit, je „rc_add_user_contactmethods“.
// K přidání nových polí použijte user_contactmethods
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');
Krok 4: Vytvořte naše vlastní pole
Nyní musíme vytvořit funkci „rc_add_user_contactmethods“. Je to pole, které přidá naše vlastní pole na stránku úprav uživatele. Dobrou zprávou je, že jsme uložili naše pole do pole, to znamená, že následující funkce bude plně dynamická a bude zcela snadné přidat nová pole pouze úpravou proměnné $ extra_fields.
/ **
* Přidat vlastní uživatele vlastní metody kontaktu
*
* @access public
* @ od 1.0
* @return neplatné
* /
function rc_add_user_contactmethods ($ user_contactmethods) {
// Získat pole
global $ extra_fields;
// Zobrazte všechna pole
foreach ($ extra_fields jako $ field) {
if (! isset ($ contactmethods [$ field [0]])))
$ user_contactmethods [$ field [0]] = $ field [1];
}
// Vrací metody kontaktu
return $ user_contactmethods;
}
Pokud v tomto kroku plugin uložíte a aktivujete, měli byste vidět vlastní pole na stránce úprav uživatele. Protože používáme správný háček, nemusíme vytvářet „ukládat“ data polí. Takže plugin momentálně funguje skvěle. Chtěl bych ale jít ještě dále a přidat možnost zobrazení těchto polí na registrační stránce. V nastavení zaškrtněte políčko „Každý se může zaregistrovat“, jinak se vám nebude zobrazovat odkaz „Registrovat“..
Krok 5: Háčky na registraci
Chcete-li přidat naše pole na registrační stránku, musíme přistupovat alespoň ke dvěma háčkům a vytvořit dvě funkce. Jeden pro zobrazení polí a druhý pro uložení dat polí do databáze.
Pojďme zavěsit naše funkce:
// Přidejte naše pole do procesu registrace
add_action ('registrer_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);
Krok 6: Zobrazte stránku registrace vlastních polí
Ve výše uvedeném kódu jsme deklarovali dvě funkce. Prvním z nich je zobrazení polí na registrační stránce. V této části se musíme postarat o třetí parametr každého pole v $ extra_fields. Tento booleovský parametr říká, zda je třeba pole zobrazit nebo ne. Pravda: pole je zobrazeno, nepravda: pole není zobrazeno.
/ **
* Zobrazit vlastní pole na registrační stránce
*
* Zobrazit vlastní pole při registraci, pokud je třetí parametr pole nastaven na true
*
* @access public
* @ od 1.0
* @return neplatné
* /
funkce rc_register_form_display_extra_fields () {
// Získat pole
global $ extra_fields;
// Zobrazte každé pole, pokud je 3. parametr nastaven na „true“
foreach ($ extra_fields jako $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
ozvěna
';
} // endif
} // konec foreach
}
Krok 7: Ukládejte hodnoty polí po registraci
Nyní, když jsou naše pole zobrazena na registrační stránce, potřebujeme uložit jejich hodnoty do databáze. Toto je moment funkce „rc_user_register_save_extra_fields“. K tomu je třeba použít „wp_update_user ()”Funkce.
/ **
* Uložte hodnoty pole
*
* @access public
* @ od 1.0
* @return neplatné
* /
funkce rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {
// Získat pole
global $ extra_fields;
$ userdata = array ();
$ userdata ['ID'] = $ user_id;
// Uložte každé pole
foreach ($ extra_fields jako $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // endif
} // konec foreach
$ new_user_id = wp_update_user ($ userdata);
}
Závěr
Viděli jsme základy, jak přidat nová pole ke kontaktním metodám uživatele, ale to je vše. Můžete například odstranit existující pole jako „Yahoo IM“, „AIM“ a „Jabber“ pomocí jednoduchého zrušení nastavení (). Můžete však také přidat některé funkce, které dezinfikují vaše vlastní pole, např. Zda má telefonní číslo odpovídající formát, zda je pole povinné nebo ne atd. Atd. Neváhejte požádat o konkrétní funkce v komentářích!
Jo, a poslední věc ... pokud chcete zobrazit data z jakéhokoli pole, jednoduše použijte toto:
// Parametr 1 je ID uživatele
// Parametr 2 je ID pole
// Parametr 3 umožňuje získat var nebo pole
echo get_user_meta (1, 'twitter', true);