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:
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01