WordPress后台用户页面显示注册用户IP和最近登录IP的解决方法

温馨提示:本文最后更新于2023-12-26 01:02:27,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长

需求:在wordpress后台用户页面显示出用户注册时的ip地址和最近登录时ip,这个功能还是非常重要的,比如上次博主博客遇到恶意刷帖,10分钟被注册了几个垃圾账号,同步刷帖,如果能够在当时显示出注册时的IP地址,就能够及时的封禁IP!不至于花时间去查网站日志(如果嫌代码麻烦,文末提供了插件)

操作步骤如下

1、创建一个新的插件目录并创建一个新的 PHP 文件,例如 user-ip-details.php

2、在 PHP 文件开头添加插件的基本信息,例如插件名称、版本等等。示例代码如下:

/**
* Plugin Name: User IP Details
* Plugin URI: https://www.pengqi.club/2925.html
* Description: 用于在wordpress后台用户页面显示出<a href="https://pdha.top/tag/%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C" title="更多关于 用户注册 的文章" target="_blank">用户注册</a>时的ip地址,和能够显示出最近登录时的ip地址
* Version: 1.0.5
* Author: 淇云博客
* Author URI: https://www.pengqi.club/
* Text Domain: user-ip-details
* Domain Path: /languages
*/
/**
 * Plugin Name: User IP Details
 * Plugin URI: https://www.pengqi.club/2925.html
 * Description: 用于在wordpress后台用户页面显示出<a href="https://pdha.top/tag/%E7%94%A8%E6%88%B7%E6%B3%A8%E5%86%8C" title="更多关于 用户注册 的文章" target="_blank">用户注册</a>时的ip地址,和能够显示出最近登录时的ip地址
 * Version: 1.0.5
 * Author: 淇云博客
 * Author URI: https://www.pengqi.club/
 * Text Domain: user-ip-details
 * Domain Path: /languages
 */
/** * Plugin Name: User IP Details * Plugin URI: https://www.pengqi.club/2925.html * Description: 用于在wordpress后台用户页面显示出用户注册时的ip地址,和能够显示出最近登录时的ip地址 * Version: 1.0.5 * Author: 淇云博客 * Author URI: https://www.pengqi.club/ * Text Domain: user-ip-details * Domain Path: /languages */

3、在 user-ip-details.php 文件中添加以下代码:

// Add custom columns to the users table.
add_filter( 'manage_users_columns', 'user_ip_details_add_columns' );
function user_ip_details_add_columns( $columns ) {
$columns['user_ip_address'] = 'IP地址';
return $columns;
}
// Populate custom columns with data.
add_action( 'manage_users_custom_column', 'user_ip_details_populate_columns', 10, 3 );
function user_ip_details_populate_columns( $value, $column_name, $user_id ) {
if ( 'user_ip_address' === $column_name ) {
$registration_ip = get_user_meta( $user_id, 'registration_ip', true );
$last_login_ip = get_user_meta( $user_id, 'last_login_ip', true );
if ( empty( $registration_ip ) && empty( $last_login_ip ) ) {
return 'N/A';
}
if ( ! empty( $registration_ip ) && ! empty( $last_login_ip ) ) {
$ip_details = sprintf(
'<strong>注册IP:</strong> %s<br><strong>最后登录IP:</strong> %s',
$registration_ip,
$last_login_ip
);
} elseif ( ! empty( $registration_ip ) ) {
$ip_details = $registration_ip;
} else {
$ip_details = $last_login_ip;
}
return $ip_details;
}
return $value;
}
// Save registration IP and last login IP when a user registers or logs in.
add_action( 'user_register', 'user_ip_details_save_registration_ip' );
add_action( 'wp_login', 'user_ip_details_save_last_login_ip', 10, 2 );
function user_ip_details_save_registration_ip( $user_id ) {
if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
update_user_meta( $user_id, 'registration_ip', $_SERVER['REMOTE_ADDR'] );
}
}
function user_ip_details_save_last_login_ip( $user_login, $user ) {
if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
update_user_meta( $user->ID, 'last_login_ip', $_SERVER['REMOTE_ADDR'] );
}
}
// Add custom columns to the users table.
add_filter( 'manage_users_columns', 'user_ip_details_add_columns' );
function user_ip_details_add_columns( $columns ) {
    $columns['user_ip_address'] = 'IP地址';
    return $columns;
}

// Populate custom columns with data.
add_action( 'manage_users_custom_column', 'user_ip_details_populate_columns', 10, 3 );
function user_ip_details_populate_columns( $value, $column_name, $user_id ) {
    if ( 'user_ip_address' === $column_name ) {
        $registration_ip = get_user_meta( $user_id, 'registration_ip', true );
        $last_login_ip   = get_user_meta( $user_id, 'last_login_ip', true );

        if ( empty( $registration_ip ) && empty( $last_login_ip ) ) {
            return 'N/A';
        }

        if ( ! empty( $registration_ip ) && ! empty( $last_login_ip ) ) {
            $ip_details = sprintf(
                '<strong>注册IP:</strong> %s<br><strong>最后登录IP:</strong> %s',
                $registration_ip,
                $last_login_ip
            );
        } elseif ( ! empty( $registration_ip ) ) {
            $ip_details = $registration_ip;
        } else {
            $ip_details = $last_login_ip;
        }

        return $ip_details;
    }

    return $value;
}

// Save registration IP and last login IP when a user registers or logs in.
add_action( 'user_register', 'user_ip_details_save_registration_ip' );
add_action( 'wp_login', 'user_ip_details_save_last_login_ip', 10, 2 );
function user_ip_details_save_registration_ip( $user_id ) {
    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
        update_user_meta( $user_id, 'registration_ip', $_SERVER['REMOTE_ADDR'] );
    }
}
function user_ip_details_save_last_login_ip( $user_login, $user ) {
    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
        update_user_meta( $user->ID, 'last_login_ip', $_SERVER['REMOTE_ADDR'] );
    }
}
// Add custom columns to the users table. add_filter( 'manage_users_columns', 'user_ip_details_add_columns' ); function user_ip_details_add_columns( $columns ) { $columns['user_ip_address'] = 'IP地址'; return $columns; } // Populate custom columns with data. add_action( 'manage_users_custom_column', 'user_ip_details_populate_columns', 10, 3 ); function user_ip_details_populate_columns( $value, $column_name, $user_id ) { if ( 'user_ip_address' === $column_name ) { $registration_ip = get_user_meta( $user_id, 'registration_ip', true ); $last_login_ip = get_user_meta( $user_id, 'last_login_ip', true ); if ( empty( $registration_ip ) && empty( $last_login_ip ) ) { return 'N/A'; } if ( ! empty( $registration_ip ) && ! empty( $last_login_ip ) ) { $ip_details = sprintf( '<strong>注册IP:</strong> %s<br><strong>最后登录IP:</strong> %s', $registration_ip, $last_login_ip ); } elseif ( ! empty( $registration_ip ) ) { $ip_details = $registration_ip; } else { $ip_details = $last_login_ip; } return $ip_details; } return $value; } // Save registration IP and last login IP when a user registers or logs in. add_action( 'user_register', 'user_ip_details_save_registration_ip' ); add_action( 'wp_login', 'user_ip_details_save_last_login_ip', 10, 2 ); function user_ip_details_save_registration_ip( $user_id ) { if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { update_user_meta( $user_id, 'registration_ip', $_SERVER['REMOTE_ADDR'] ); } } function user_ip_details_save_last_login_ip( $user_login, $user ) { if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { update_user_meta( $user->ID, 'last_login_ip', $_SERVER['REMOTE_ADDR'] ); } }

4、将 PHP 文件上传到插件目录中,然后在 WordPress 后台启用插件。现在,当您查看用户管理页面时,您将可以看到一个新的 IP 地址列,其中包含每个新用户注册时使用的 IP 地址和最近登录时的IP地址。(别忘了在PHP开头添加<?php哟)

WordPress 后台用户页面显示注册用户IP和最近登录IP的解决方法插图

WordPress 后台用户页面显示注册用户IP和最近登录IP的解决方法插图1

插件下载地址

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

------关注微信公众号:胖大海TuT------
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
Travel imparts new vigor to the mind.
旅行给思想带来新的活力。
评论 抢沙发

请登录后发表评论

    暂无评论内容