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…

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:

(!) Zgłoś błąd na stronie

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)