W jednym z projektów, nad którymi aktualnie pracuje „na potrzeby pewnej funkcjonalności” pojawiła się potrzeba zmodyfikowania opcji związanych z danymi kontaktowymi, które dostępne są profilu użytkownika, i jak to często w takiej sytuacji bywa – pojawił się pomysł na kolejny wpis…
Spis treści w artykule
Dane kontaktowe użytkownika w WordPressie
W WordPressie, jak chyba w każdym (a przynajmniej większości) CMSie mamy wbudowaną obsługę użytkowników, którzy oprócz tego, że mogą mieć różne uprawnienia, to mają również swój profil, w którym mogą umieszczać m.in. swoje dane kontaktowe, które później można wykorzystać czy to na potrzeby wewnętrznej komunikacji, do wyświetlenia na stronie, i w standardzie wygląda to tak:
Zresztą w podobny sposób działa to np. w sklepie internetowym opartym na WooCommerce, z tym, że tam oczywiście pól jest więcej, ale to wynika już ze specyfiki sklepu internetowego, bo dane są potrzebne nie tylko na potrzeby kontaktu, ale i do realizacji zamówienia, czy wystawienia rachunku/faktury…
Dodatkowe pole w danych kontaktowych
By dodać dodatkowe pole w danych kontaktowych – w naszym przypadku będzie to miejsce na wpisanie numeru telefonu – wystarczy dodać kilka linijek kodu do pliku functions.php:
function webinsider_wp_user_contactmethods( $user_contactmethods ) {
# Dodajemy:
$user_contactmethods['telefon'] = __( 'Telefon' );
return $user_contactmethods;
}
add_filter( 'user_contactmethods', 'webinsider_wp_user_contactmethods' );
W rezultacie otrzymujemy coś w tym stylu:
Kasujemy zbyteczne pola
Zapewne w wielu przypadkach – przynajmniej na rynku krajowym – niektóre pola są zbyteczne, i tylko niepotrzebnie wydłużają formularz, a do tego mogą wprowadzać zamieszanie, dlatego za pomocą poniższego kodu pozbędziemy się 3 pól – AIM, Yahoo IM, Jabber:
function webinsider_wp_user_contactmethods( $user_contactmethods ) {
# Usuwamy:
unset( $user_contactmethods['aim'] );
unset( $user_contactmethods['yim'] );
unset( $user_contactmethods['jabber'] );
return $user_contactmethods;
}
add_filter( 'user_contactmethods', 'webinsider_wp_user_contactmethods' );
W wyniku czego pola te znikają z formularza:
Usuwamy i dodajemy
Oczywiście możemy całość połączyć, i jednocześnie skasować niepotrzebne pola, i dodać inne, dodatkowe:
function webinsider_wp_user_contactmethods( $user_contactmethods ) {
# Dodajemy:
$user_contactmethods['telefon'] = __( 'Telefon' );
# Usuwamy:
unset( $user_contactmethods['aim'] );
unset( $user_contactmethods['yim'] );
unset( $user_contactmethods['jabber'] );
return $user_contactmethods;
}
add_filter( 'user_contactmethods', 'webinsider_wp_user_contactmethods' );
W ten sposób skasowaliśmy pola związane z usługami AIM, Yahoo IM i Jabber, a dodaliśmy pole na numer telefonu:


- Notepad++ i wtyczka Linefilter3, czyli prosty sposób na filtrowanie treści, np. logów serwera, nie tylko na prośbę prokuratury ;-) - 1970-01-01
- Poważny danych wyciek z ALAB Laboratoria – do internetu trafiły nie tylko dane osobowe, ale też i dane medyczne, i choć już jest grubo, to ponoć tylko zapowiedź prawdziwego armagedonu - 1970-01-01
- Prosty sposób na bezpłatny dostęp do płatnych ikon Font Awesome, czyli krótkie testy przed ewentualnym zakupem - 1970-01-01