Jak zapisać i wyświetlić adres IP użytkownika WordPress

Każdy użytkownik połączony z Internetem posiada unikalny adres IP. Niektórzy właściciele stron WordPress chcą mieć stały wgląd w te dane, dlatego szukają sposobu jak zapisać adres IP użytkownika w panelu /wp-admin/ (w zakładce 'Użytkownicy’).

Może to być związane z typem strony, którą prowadzimy, lub wymogiem klienta, dla którego zapisywanie IP będzie pomocne w dalszym rozwoju biznesu. Przykładem może być potrzeba przechowywania adresu ze względów bezpieczeństwa, oferowanie płatnych planów członkowskich, produktów wirtualnych itp.

Adres IP użytkowników na WordPressie

Ten post został napisany we współpracy z firmą JCHost.pl. Korektę kodu wykonał Krzysztof z wpmagus.pl. W artykule opiszemy sposób, jak dodać funkcjonalność przechowywania adresu IP na stronie WordPress.

Najpierw zapiszemy IP w bazie, by później dodać dodatkową kolumnę z adresem w zakładce „Użytkownicy” w panelu /wp-admin/.

Wszystkie poniższe funkcje dodajemy do motywu, z którego korzystamy, w pliku functions.php.

Krok 1: Zapisanie adresu IP w bazie danych

Pierwszą rzeczą, by móc wyświetlić adres IP każdego z użytkowników, jest zapisanie go w bazie danych. Możemy to zrobić za pomocą prostej funkcji ‘wyciągnięcia’ adresu, która jest powtarzana za każdym razem, gdy użytkownik się loguje:

function save_users_ip ( $login, $user ) {
    update_user_meta( $user->ID, 'user_ip', $_SERVER['REMOTE_ADDR'] );
}
add_action( 'wp_login', 'save_users_ip', 10, 2 ); 

Krok 2: Dodanie nowej kolumny w zakładce „Użytkownicy”

Następną rzeczą będzie stworzenie dodatkowej kolumny w panelu admina na liście zarejestrowanych użytkowników. Możemy to zrobić z pomocą tej funkcji:

function add_users_ip_column($column) {
    return array_merge( $column, 
        array('user_ip' => __('Adres IP')) );}
add_filter('manage_users_columns','add_users_ip_column');  

Krok 3: Pobranie i wyświetlenie adresu IP

Teraz pozostało nam już tylko wyciągnąć zapisany wcześniej adres IP każdego z użytkowników oraz wyświetlić go w nowej kolumnie. Wystarczy, że dodamy następującą funkcję:

function show_users_ip( $output, $column_name, $user_id ) {
   if ( 'user_ip' === $column_name ) { 
       $user = get_userdata( $user_id );
       return esc_html($user->user_ip);
   }

   return $output;
}
add_filter( 'manage_users_custom_column', 'show_users_ip', 10, 3 ); 

Krok 4: Sprawdzenie poprawności działania

Ostatnią rzeczą będzie oczywiście test praktyczny. Aby sprawdzić, czy adres IP jest zapisywany i wyświetlany poprawnie, wylogujmy się z panelu admina i zalogujmy ponownie.

Następnie przejdźmy do zakładki „Użytkownicy” i sprawdźmy,czy w nowej kolumnie wyświetla się nasz adres IP. Powinno to wyglądać tak:

Końcowe przemyślenia

Jak widać, zapisanie adresu IP użytkownika w bazie, a następnie jego wyświetlenie w panelu admina WordPress, wcale nie jest takie trudne. Wystarczą 3 krótkie funkcje i voila!

Warto pamiętać, że bezpieczeństwo jest najważniejsze.Funkcje związane z wrażliwymi danymi użytkowników nie powinny być stosowane w niezabezpieczonym środowisku. Jeśli chcesz połączyć niesamowitą szybkość strony z kilkupoziomową ochroną, wybierz sprawdzony hosting WordPress – usługę JCHost.pl, współautora tego artykułu.


Opublikowano

w

,

przez

Tagi:

Komentarze

5 odpowiedzi na „Jak zapisać i wyświetlić adres IP użytkownika WordPress”

  1. Awatar Konrad Karpieszuk

    Edycja: zmieniłem ostatni blok kodu, bo nie działał w oryginalnym zapisie autora wpisu

  2. Awatar Krzysiek

    Zacząłem pisać komentarz, ale wyszło tego tyle, że powstał artykuł…. O tym, jak pisząc kilka linijek kodu można zaszkodzić stronie i klientowi… Zapraszam do lektury:

    https://wpmagus.pl/artykuly/przechowywanie-adresu-ip-uzytkownikow-i-jak-tego-nie-robic/

    1. Awatar JCHost.pl

      Panie Krzysztofie, dziękuję za korektę kodu! Poprawiłem go i dodałem o Panu wzmiankę w poście.

  3. Awatar Łukasz
    Łukasz

    Szkoda, że się sprzedałeś. Nie dość, że jak sam piszesz kod nie działa i musisz po nichg poprawiać, pokazuje tylko jak słaby to jest hosting. Zawsze miałem Ciebie za mądrego faceta i chętnie czytałem bloga. Po tym wpisie spadłeś poziomem na blogi ala Ola czy Kasia. Rekalma i zero merytotyki a dodatkowo błędy.

    A dwa pisanie o „dobrej pomocy technicznej” jchost jest śmieszne – skoro nawet kodu poprawnie nie napiszą.

    0.218 s – to jest na czystym wp i na pustym u nich serwerze. Wynosiłem klienta od nich bo poza marketingiem ostatnio nachalnym – to nic tam nie ma,.

    1. Awatar Konrad Karpieszuk

      Sprzedania się tu na pewno nie ma: nie dostalem od Jchost żądnych pieniedzy. Tzn teraz dostalem, bo zamiescili reklame banerowa. Ale do momentu publikacji wpisu nie było żadnej rozmowy z zadnej strony o reklamie. Probowano mnie namowic abym dolaczyl do ich programu partnerskiego i tego typu linki wkleil w tresc, ale sie nie zgodzilem (bo nie lubie programow parterskich z zalozenia).

      Na dev.wpzlecenia publikowac moze kazdy i wg mnie autor sam ponosi odpowiedzialnosc za poziom i tresc wpisu.

      Jesli chcesz wyzszego poziomu, zapraszam do kontaktu i opublikowania czegos :)