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.
Comments