Egyedi mezők hozzáadása a WordPress profil oldalakhoz
Előfordulhat, hogy szeretnél valamilyen megjegyzést, egyéb adatot tárolni a felhasználói profilban, az előre megadott mezőkön túl. Erre egy kézenfekvő megoldás lehet az Advanced Custom Fields nevű plugin használata - de mi van akkor, ha plugin nélkül szeretnéd ezt megoldani?
Ebben az esetben két dologról kell gondoskodnunk:
- Az adatbeviteli mezők biztosításáról
- Az adatok mentéséről
Az alábbi snippet mindkettőt megoldja, ugorjunk is neki! Az mu-plugins mappában hozzunk létre egy fájlt (add_user_custom_fields.php
), az alábbi tartalommal:
Két függvényt látunk a fenti kódban:
- Az első (
show_user_flagged_info()
) gondoskodik arról, hogy a felhasználói profil oldalon megjelenjen a mező (méghozzá abban a struktúrában, amit a HTML részben leírunk). Fontos: ha nem szeretnénk, hogy a felhasználó a saját profiljában lássa ezeket a mezőket, akkor azadd_action( 'show_user_profile', 'show_user_flagged_info' );
sort töröljük! - A második (
save_user_flagged_info($user_id)
) elvégzi a szükséges adatbázisműveletet, vagyis frissíti a felhasználó metaadatát. A fenti megjegyzés itt is aktuális: ha nem szeretnénk, hogy a felhasználó ezt az adatot frissíthesse, akkor töröljük azadd_action( 'personal_options_update', 'save_user_flagged_info' );
sort.
Mentést követően navigáljunk el a saját vagy egy felhasználónk profil oldalára: ha minden igaz, akkor a mező meg fog jelenni, és ha bepipáljuk, akkor az adatábázisban létre is jön a bejegyzés a felhasználóhoz.
Készen is vagyunk! A fenti snippetet is felhasználva készítettük az Utánvét Ellenőr hivatalos pluginját, amivel felhasználó szinten szűrni tudod az utánvétes rendelés elérhetőségét.