2023/7/2626 次阅读0 条评论
Wordpress 用户后台显示注册时间和登录IP,以及上次登录时间
Terminal
/** 用户后台显示注册时间和登录IP */function get_client_ip() { if (getenv(\"HTTP_CLIENT_IP\") && strcasecmp(getenv(\"HTTP_CLIENT_IP\"), \"unknown\")) $ip = getenv(\"HTTP_CLIENT_IP\"); else if (getenv(\"HTTP_X_FORWARDED_FOR\") && strcasecmp(getenv(\"HTTP_X_FORWARDED_FOR\"),\"unknown\")) $ip = getenv(\"HTTP_X_FORWARDED_FOR\"); else if (getenv(\"REMOTE_ADDR\") && strcasecmp(getenv(\"REMOTE_ADDR\"), \"unknown\")) $ip = getenv(\"REMOTE_ADDR\"); else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']&& strcasecmp($_SERVER['REMOTE_ADDR'], \"unknown\")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = \"unknown\"; return ($ip);}// 创建一个新字段存储用户注册时的IP地址add_action('user_register', 'log_ip');function log_ip($user_id){ $ip = get_client_ip(); update_user_meta($user_id, 'signup_ip', $ip);}// 创建新字段存储用户登录时间和登录IPadd_action( 'wp_login', 'insert_last_login' );function insert_last_login( $login ) { global $user_id; $user = get_userdatabylogin( $login ); update_user_meta( $user->ID, 'last_login', current_time( 'mysql' ) ); $last_login_ip = get_client_ip(); update_user_meta( $user->ID, 'last_login_ip', $last_login_ip);}// 添加额外的栏目add_filter('manage_users_columns', 'add_user_additional_column');function add_user_additional_column($columns) { $columns['reg_time'] = '注册时间'; $columns['signup_ip'] = '注册IP'; $columns['last_login'] = '上次登录'; // 打算将注册IP和注册时间、登录IP和登录时间合并显示,所以我注销下面两行 /*$columns['signup_ip'] = '注册IP';*/ $columns['last_login_ip'] = '登录IP'; unset($columns['name']);//移除“姓名”这一栏,如果你需要保留,删除这行即可 return $columns;}//显示栏目的内容add_action('manage_users_custom_column', 'show_user_additional_column_content', 10, 3);function show_user_additional_column_content($value, $column_name, $user_id) { $user = get_userdata( $user_id ); // 输出注册时间和注册IP if('reg_time' == $column_name ){ return get_date_from_gmt($user->user_registered) ; }// 输出注册时间和注册IP if('signup' == $column_name ){ return get_user_meta( $user->ID, 'signup_ip', true); } // 输出最近登录时间和登录IP if ( 'last_login' == $column_name && $user->last_login ){ return get_user_meta( $user->ID, 'last_login', true ); }