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:
- Pomijanie i drukowanie wybranych elementów na drukarce 3D Bambu Lab A1 Mini (i A1) za pomocą aplikacji Bambu Handy - 1970-01-01
- Zmiany w Orange Flex, czyli koniec Social Pass, ale więcej gigabajtów, oraz koniec zabawy z UNLMTD w najdroższym pakiecie - 1970-01-01
- Zakupy w sklepie Bambu Lab bez podatku VAT, czyli rejestracja jako B2B oraz specjalny link do specjalnego sklepu - 1970-01-01