From a29978474e2444bd01f073cdf6b0a87a23a9b322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E8=90=BD?= Date: Wed, 12 Feb 2020 11:24:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=E6=96=87=E4=BB=B6=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions/Common.php | 2 +- functions/func_load.php | 1 + functions/optimization.php | 160 +------------------ functions/security.php | 103 ------------- functions/user.php | 307 +++++++++++++++---------------------- 5 files changed, 125 insertions(+), 448 deletions(-) diff --git a/functions/Common.php b/functions/Common.php index 9455188..eed99be 100644 --- a/functions/Common.php +++ b/functions/Common.php @@ -1162,7 +1162,7 @@ function gdk_weauth_token(){ * 微信登陆按钮 */ function weixin_login_btn(){ - $result = '微信登陆'; + $result = '微信登陆'; if(is_user_logged_in()){ $user_id = get_current_user_id(); $user = get_user_by('id', $user_id); diff --git a/functions/func_load.php b/functions/func_load.php index 485740b..1b6239b 100644 --- a/functions/func_load.php +++ b/functions/func_load.php @@ -9,6 +9,7 @@ include( 'security.php' );//安全功能 include( 'shortcode.php' );//短代码 include( 'seo.php' );//seo功能 +include( 'user.php' );//用户功能 include(GDK_ROOT_PATH.'public/download.php');//单页下载 include(GDK_ROOT_PATH.'public/go.php');//跳转中间页 diff --git a/functions/optimization.php b/functions/optimization.php index 71f492f..e58e329 100644 --- a/functions/optimization.php +++ b/functions/optimization.php @@ -309,7 +309,7 @@ add_action('wp_network_dashboard_setup', 'gdk_dweandw_remove', 20); add_action('wp_user_dashboard_setup', 'gdk_dweandw_remove', 20); add_action('wp_dashboard_setup', 'gdk_dweandw_remove', 20); -//国内更新word press加速 +//国内更新WordPress加速 if (gdk_option('gdk_porxy_update') && !gdk_option('gdk_diasble_wp_update')) { add_filter('site_transient_update_core',function($value) { foreach($value->updates as &$update) { @@ -324,7 +324,6 @@ if (gdk_option('gdk_porxy_update') && !gdk_option('gdk_diasble_wp_update')) { } - //文件自动重命名 if(gdk_option('gdk_upload_rename')) { function gdk_upload_rename( $file ) { @@ -492,163 +491,6 @@ function gdk_notify_admin($notify_message,$comment_ID) { } add_filter('comment_notification_text', 'gdk_notify_admin', 10, 2); -//添加后台个人信息 -function gdk_contact_fields($contactmethods) { - $contactmethods['qq'] = 'QQ'; - $contactmethods['sina_weibo'] = '新浪微博'; - $contactmethods['weixin'] = '微信'; - unset($contactmethods['yim']); - unset($contactmethods['aim']); - unset($contactmethods['jabber']); - return $contactmethods; -} -add_filter('user_contactmethods', 'gdk_contact_fields'); - - -//支持中文名注册,来自肚兜 -function gdk_sanitize_user($username, $raw_username, $strict) { - $username = wp_strip_all_tags($raw_username); - $username = remove_accents($username); - $username = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username); - $username = preg_replace('/&.+?;/', '', $username); // Kill entities - if ($strict) { - $username = preg_replace('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username); - } - $username = trim($username); - $username = preg_replace('|\s+|', ' ', $username); - return $username; -} -add_filter('sanitize_user', 'gdk_sanitize_user', 10, 3); - -// 添加一个新的列 ID -function gdk_userid_column($cols) { - $cols['ssid'] = 'ID'; - return $cols; -} -add_action('manage_users_columns', 'gdk_userid_column'); -function gdk_userid_value($value, $column_name, $id) { - if ($column_name == 'ssid') $value = $id; - return $value; -} -add_filter('manage_users_custom_column', 'gdk_userid_value', 30, 3); -/** - * WordPress 后台用户列表显示用户昵称 - * https://www.wpdaxue.com/add-user-nickname-column.html - */ -add_filter('manage_users_columns', 'gdk_add_user_nickname'); -function gdk_add_user_nickname($columns) { - $columns['user_nickname'] = '昵称'; - return $columns; -} -add_action('manage_users_custom_column', 'gdk_show_user_nickname_val', 20, 3); -function gdk_show_user_nickname_val($value, $column_name, $user_id) { - $user = get_userdata( $user_id ); - $user_nickname = $user->nickname; - if ( 'user_nickname' == $column_name ) - return $user_nickname; - return $value; -} -//用户列表显示积分 -add_filter('manage_users_columns', 'gdk_points_columns'); -function gdk_points_columns($columns) { - $columns['points'] = '金币'; - return $columns; -} -function gdk_points_value($value, $column_name, $user_id) { - if ($column_name == 'points') { - $jinbi = GDK_Points::get_user_total_points($user_id, 'accepted'); - if ($jinbi != "") { - $ret = $jinbi; - return $ret; - } else { - $ret = '暂无充值'; - return $ret; - } - } - return $value; -} -add_action('manage_users_custom_column', 'gdk_points_value', 10, 3); - -//用户增加评论数量 -function gdk_users_comments($columns) { - $columns['comments'] = '评论'; - return $columns; -} -add_filter('manage_users_columns', 'gdk_users_comments'); -function gdk_show_users_comments($value, $column_name, $user_id) { - if ($column_name == 'comments') { - $comments_counts = get_comments(array( - 'status' => '1', - 'user_id' => $user_id, - 'count' => true - )); - if ($comments_counts != "") { - $ret = $comments_counts; - return $ret; - } else { - $ret = '暂未评论'; - return $ret; - } - } - return $value; -} -add_action('manage_users_custom_column', 'gdk_show_users_comments', 10, 3); -// 添加一个字段保存IP地址 -function gdk_log_ip($user_id) { - $ip = gdk_get_ip(); - update_user_meta($user_id, 'signup_ip', $ip); -} -add_action('user_register', 'gdk_log_ip'); -// 添加IP地址这个栏目 -function gdk_signup_ip($column_headers) { - $column_headers['signup_ip'] = 'IP地址'; - return $column_headers; -} -add_filter('manage_users_columns', 'gdk_signup_ip'); -function gdk_ripms_columns($value, $column_name, $user_id) { - if ($column_name == 'signup_ip') { - $ip = get_user_meta($user_id, 'signup_ip', true); - if ($ip != "") { - $ret = $ip; - return $ret; - } else { - $ret = '没有记录'; - return $ret; - } - } - return $value; -} -add_action('manage_users_custom_column', 'gdk_ripms_columns', 10, 3); -// 创建一个新字段存储用户登录时间 -function gdk_insert_last_login($login) { - $user = get_user_by('login', $login); - update_user_meta($user->ID, 'last_login', current_time('mysql')); -} -add_action('wp_login', 'gdk_insert_last_login'); -// 添加一个新栏目上次登录 -function gdk_add_last_login_column($columns) { - $columns['last_login'] = '上次登录'; - unset($columns['name']); - return $columns; -} -add_filter('manage_users_columns', 'gdk_add_last_login_column'); -// 显示登录时间到新增栏目 -function gdk_add_last_login($value, $column_name, $user_id) { - if ($column_name == 'last_login') { - $login = get_user_meta($user_id, 'last_login', true); - if ($login != "") { - $ret = $login; - return $ret; - } else { - $ret = '暂未登录'; - return $ret; - } - } - return $value; -} -add_action('manage_users_custom_column', 'gdk_add_last_login', 10, 3); - - // 评论添加@,来自:http://www.ludou.org/wordpress-comment-reply-add-at.html function gdk_comment_add_at($comment_text, $comment = '') { diff --git a/functions/security.php b/functions/security.php index 57505df..55b38e1 100644 --- a/functions/security.php +++ b/functions/security.php @@ -273,109 +273,6 @@ if( gdk_option('gdk_hide_user_name') ){ add_filter( 'rest_prepare_user', 'gdk_custom_rest_prepare_user', 10, 3 ); } -if (!defined('UM_DIR')) { /*判断是否按照UM插件*/ - //注册表单 - function gdk_show_extra_register_fields() { -?> -

- -

-

- -

- add('passwords_not_matched', "错误提示: 两次填写密码不一致"); - } - if (strlen($_POST['password']) < 8) { - $errors->add('password_too_short', "错误提示: 密码必须大于8个字符"); - } - } - add_action('register_post', 'gdk_check_extra_register_fields', 10, 3); - /* - * 提交用户密码进数据库 - */ - function gdk_register_extra_fields($user_id) { - $userdata = array(); - $userdata['ID'] = $user_id; - if ($_POST['password'] !== '') { - $userdata['user_pass'] = $_POST['password']; - } - $pattern = '/[一-龥]/u'; - if (preg_match($pattern, $_POST['user_login'])) { - $userdata['user_nicename'] = $user_id; - } - $new_user_id = wp_update_user($userdata); - } - add_action('user_register', 'gdk_register_extra_fields', 100); -} - -//后台登陆数学验证码 -if (gdk_option('gdk_login_verify')) { - function gdk_login_verify(){ - $num1 = mt_rand(0, 20); - $num2 = mt_rand(0, 20); - echo "

"; - } - add_action('login_form', 'gdk_login_verify'); - add_action('register_form', 'gdk_login_verify'); - - function gdk_login_verify_val(){ - $sum = $_POST['sum']; - switch ($sum) { - case $_POST['num1'] + $_POST['num2']: - break; - case null: - wp_die('错误: 请输入验证码  返回上页'); - break; - default: - wp_die('错误: 验证码错误,请重试  返回上页'); - } - } - add_action('login_form_login', 'gdk_login_verify_val'); - add_action('register_post', 'gdk_login_verify_val'); -} - -//仅显示作者自己的文章 -function gdk_show_mypost($wp_query) { - if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/edit.php') !== false) { - if (!current_user_can('manage_options')) { - $wp_query->set('author', get_current_user_id()); - } - } -} -add_filter('parse_query', 'gdk_show_mypost'); - -//在文章编辑页面的[添加媒体]只显示用户自己上传的文件 -function gdk_show_myupload($wp_query_obj) { - global $pagenow; - if (!is_a(wp_get_current_user(), 'WP_User')) return; - if ('admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments') return; - if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) $wp_query_obj->set('author', get_current_user_id()); - return; -} -add_action('pre_get_posts', 'gdk_show_myupload'); - -//在[媒体库]只显示用户上传的文件 -function gdk_show_myupload_library($wp_query) { - if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/upload.php') !== false) { - if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) { - $wp_query->set('author', get_current_user_id()); - } - } -} -add_filter('parse_query', 'gdk_show_myupload_library'); - //记录登陆失败发邮件 add_action( 'wp_authenticate', 'log_login', 10, 2 ); diff --git a/functions/user.php b/functions/user.php index bec8896..89a97e1 100644 --- a/functions/user.php +++ b/functions/user.php @@ -1,18 +1,27 @@ user_login; + $msg = "有人要求重设如下帐号的密码:\r\n\r\n"; + $msg.= network_site_url() . "\r\n\r\n"; + $msg.= sprintf('用户名:%s', $user_login) . "\r\n\r\n"; + $msg.= "若这不是您本人要求的,请忽略本邮件,一切如常。\r\n\r\n"; + $msg.= "要重置您的密码,请打开下面的链接:\r\n\r\n"; + $msg.= wp_login_url() . "?action=rp&key=$key&login=" . rawurlencode($user_login); + return $msg; } -add_filter('user_contactmethods', 'gdk_add_contact_fields'); +add_filter('retrieve_password_message', 'gdk_reset_password_message', null, 2); + + if (!defined('UM_DIR')) { /*判断是否按照UM插件*/ //注册表单 @@ -60,23 +69,77 @@ if (!defined('UM_DIR')) { /*判断是否按照UM插件*/ } add_action('user_register', 'gdk_register_extra_fields', 100); } -//注册之后跳转 -if (gdk_option('gdk_register_redirect_ok')) { - function gdk_registration_redirect() { - if (gdk_option('gdk_redirect_choise') == 'gdk_redirect_home') { - $redirect_url = home_url(); - } elseif (gdk_option('gdk_redirect_choise') == 'gdk_redirect_author') { - $redirect_url = get_author_posts_url($user_id); - } elseif (gdk_option('gdk_redirect_choise') == 'gdk_redirect_profile') { - $redirect_url = admin_url('wp-admin/profile.php'); - } elseif (gdk_option('gdk_redirect_choise') == 'gdk_redirect_profile' && gdk_option('gdk_register_redirect_url')) { - $redirect_url = gdk_option('gdk_register_redirect_url'); - } - return $redirect_url; + +//后台登陆数学验证码 +if (gdk_option('gdk_login_verify')) { + function gdk_login_verify(){ + $num1 = mt_rand(0, 20); + $num2 = mt_rand(0, 20); + echo "

"; } - add_filter('registration_redirect', 'gdk_registration_redirect'); + add_action('login_form', 'gdk_login_verify'); + add_action('register_form', 'gdk_login_verify'); + + function gdk_login_verify_val(){ + $sum = $_POST['sum']; + switch ($sum) { + case $_POST['num1'] + $_POST['num2']: + break; + case null: + wp_die('错误: 请输入验证码  返回上页'); + break; + default: + wp_die('错误: 验证码错误,请重试  返回上页'); + } + } + add_action('login_form_login', 'gdk_login_verify_val'); + add_action('register_post', 'gdk_login_verify_val'); } +//仅显示作者自己的文章 +function gdk_show_mypost($wp_query) { + if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/edit.php') !== false) { + if (!current_user_can('manage_options')) { + $wp_query->set('author', get_current_user_id()); + } + } +} +add_filter('parse_query', 'gdk_show_mypost'); + +//在文章编辑页面的[添加媒体]只显示用户自己上传的文件 +function gdk_show_myupload($wp_query_obj) { + global $pagenow; + if (!is_a(wp_get_current_user(), 'WP_User')) return; + if ('admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments') return; + if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) $wp_query_obj->set('author', get_current_user_id()); + return; +} +add_action('pre_get_posts', 'gdk_show_myupload'); + +//在[媒体库]只显示用户上传的文件 +function gdk_show_myupload_library($wp_query) { + if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/upload.php') !== false) { + if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) { + $wp_query->set('author', get_current_user_id()); + } + } +} +add_filter('parse_query', 'gdk_show_myupload_library'); + + +//添加后台个人信息 +function gdk_contact_fields($contactmethods) { + $contactmethods['qq'] = 'QQ'; + $contactmethods['sina_weibo'] = '新浪微博'; + $contactmethods['weixin'] = '微信'; + unset($contactmethods['yim']); + unset($contactmethods['aim']); + unset($contactmethods['jabber']); + return $contactmethods; +} +add_filter('user_contactmethods', 'gdk_contact_fields'); + + //支持中文名注册,来自肚兜 function gdk_sanitize_user($username, $raw_username, $strict) { $username = wp_strip_all_tags($raw_username); @@ -92,104 +155,55 @@ function gdk_sanitize_user($username, $raw_username, $strict) { } add_filter('sanitize_user', 'gdk_sanitize_user', 10, 3); -//修复 WordPress 找回密码提示“抱歉,该key似乎无效” -function gdk_reset_password_message($message, $key) { - if (strpos($_POST['user_login'], '@')) { - $user_data = get_user_by('email', trim($_POST['user_login'])); - } else { - $login = trim($_POST['user_login']); - $user_data = get_user_by('login', $login); - } - $user_login = $user_data->user_login; - $msg = "有人要求重设如下帐号的密码:\r\n\r\n"; - $msg.= network_site_url() . "\r\n\r\n"; - $msg.= sprintf('用户名:%s', $user_login) . "\r\n\r\n"; - $msg.= "若这不是您本人要求的,请忽略本邮件,一切如常。\r\n\r\n"; - $msg.= "要重置您的密码,请打开下面的链接:\r\n\r\n"; - $msg.= wp_login_url() . "?action=rp&key=$key&login=" . rawurlencode($user_login); - return $msg; -} -add_filter('retrieve_password_message', 'gdk_reset_password_message', null, 2); - -//仅显示作者自己的文章 -function mypo_query_useronly($wp_query) { - if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/edit.php') !== false) { - if (!current_user_can('manage_options')) { - $wp_query->set('author', get_current_user_id()); - } - } -} -add_filter('parse_query', 'mypo_query_useronly'); -//在文章编辑页面的[添加媒体]只显示用户自己上传的文件 -function only_my_upload_media($wp_query_obj) { - global $pagenow; - if (!is_a(wp_get_current_user(), 'WP_User')) return; - if ('admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments') return; - if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) $wp_query_obj->set('author', get_current_user_id()); - return; -} -add_action('pre_get_posts', 'only_my_upload_media'); -//在[媒体库]只显示用户上传的文件 -function only_my_media_library($wp_query) { - if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/upload.php') !== false) { - if (!current_user_can('manage_options') && !current_user_can('manage_media_library')) { - $wp_query->set('author', get_current_user_id()); - } - } -} -add_filter('parse_query', 'only_my_media_library'); - // 添加一个新的列 ID -function ssid_column($cols) { +function gdk_userid_column($cols) { $cols['ssid'] = 'ID'; return $cols; } -add_action('manage_users_columns', 'ssid_column'); -function ssid_return_value($value, $column_name, $id) { +add_action('manage_users_columns', 'gdk_userid_column'); +function gdk_userid_value($value, $column_name, $id) { if ($column_name == 'ssid') $value = $id; return $value; } -add_filter('manage_users_custom_column', 'ssid_return_value', 10, 3); +add_filter('manage_users_custom_column', 'gdk_userid_value', 30, 3); +/** + * WordPress 后台用户列表显示用户昵称 + * https://www.wpdaxue.com/add-user-nickname-column.html + */ +add_filter('manage_users_columns', 'gdk_add_user_nickname'); +function gdk_add_user_nickname($columns) { + $columns['user_nickname'] = '昵称'; + return $columns; +} +add_action('manage_users_custom_column', 'gdk_show_user_nickname_val', 20, 3); +function gdk_show_user_nickname_val($value, $column_name, $user_id) { + $user = get_userdata( $user_id ); + $user_nickname = $user->nickname; + if ( 'user_nickname' == $column_name ) + return $user_nickname; + return $value; +} //用户列表显示积分 -add_filter('manage_users_columns', 'my_users_columns'); -function my_users_columns($columns) { +add_filter('manage_users_columns', 'gdk_points_columns'); +function gdk_points_columns($columns) { $columns['points'] = '金币'; return $columns; } -function output_my_users_columns($value, $column_name, $user_id) { +function gdk_points_value($value, $column_name, $user_id) { if ($column_name == 'points') { - $jinbi = GDK_Points::get_user_total_points($user_id, POINTS_STATUS_ACCEPTED); + $jinbi = GDK_Points::get_user_total_points($user_id, 'accepted'); if ($jinbi != "") { $ret = $jinbi; return $ret; } else { - $ret = '穷逼一个'; + $ret = '暂无充值'; return $ret; } } return $value; } -add_action('manage_users_custom_column', 'output_my_users_columns', 10, 3); -//本地头像 -function gdk_user_avatar($column_headers) { - $column_headers['local_avatar'] = '本地头像'; - return $column_headers; -} -add_filter('manage_users_columns', 'gdk_user_avatar'); -function gdk_ripms_user_avatar($value, $column_name, $user_id) { - if ($column_name == 'local_avatar') { - $localavatar = get_user_meta($user_id, 'simple_local_avatar', true); - if (empty($localavatar)) { - $ret = '未设置'; - return $ret; - } else { - $ret = '已设置'; - return $ret; - } - } - return $value; -} -add_action('manage_users_custom_column', 'gdk_ripms_user_avatar', 10, 3); +add_action('manage_users_custom_column', 'gdk_points_value', 10, 3); + //用户增加评论数量 function gdk_users_comments($columns) { $columns['comments'] = '评论'; @@ -216,11 +230,11 @@ function gdk_show_users_comments($value, $column_name, $user_id) { add_action('manage_users_custom_column', 'gdk_show_users_comments', 10, 3); // 添加一个字段保存IP地址 function gdk_log_ip($user_id) { - $ip = $_SERVER['REMOTE_ADDR']; + $ip = gdk_get_ip(); update_user_meta($user_id, 'signup_ip', $ip); } add_action('user_register', 'gdk_log_ip'); -// 添加“IP地址”这个栏目 +// 添加IP地址这个栏目 function gdk_signup_ip($column_headers) { $column_headers['signup_ip'] = 'IP地址'; return $column_headers; @@ -246,7 +260,7 @@ function gdk_insert_last_login($login) { update_user_meta($user->ID, 'last_login', current_time('mysql')); } add_action('wp_login', 'gdk_insert_last_login'); -// 添加一个新栏目“上次登录” +// 添加一个新栏目上次登录 function gdk_add_last_login_column($columns) { $columns['last_login'] = '上次登录'; unset($columns['name']); @@ -254,7 +268,7 @@ function gdk_add_last_login_column($columns) { } add_filter('manage_users_columns', 'gdk_add_last_login_column'); // 显示登录时间到新增栏目 -function gdk_add_last_login_column_value($value, $column_name, $user_id) { +function gdk_add_last_login($value, $column_name, $user_id) { if ($column_name == 'last_login') { $login = get_user_meta($user_id, 'last_login', true); if ($login != "") { @@ -267,81 +281,4 @@ function gdk_add_last_login_column_value($value, $column_name, $user_id) { } return $value; } -add_action('manage_users_custom_column', 'gdk_add_last_login_column_value', 10, 3); - -//后台登陆数学验证码 -if (gdk_option('gdk_admin_captcha')) { - function gdk_add_login_fields(){ - $num1 = mt_rand(0, 20); - $num2 = mt_rand(0, 20); - echo "

"; - } - add_action('login_form', 'gdk_add_login_fields'); - add_action('register_form', 'gdk_add_login_fields'); - function gdk_login_val(){ - $sum = $_POST['sum']; - switch ($sum) { - case $_POST['num1'] + $_POST['num2']: - break; - case null: - wp_die('错误: 请输入验证码  返回上页'); - break; - default: - wp_die('错误: 验证码错误,请重试  返回上页'); - } - } - add_action('login_form_login', 'gdk_login_val'); - add_action('register_post', 'gdk_login_val'); -} -//限制每个ip的注册数量 -if (gdk_option('gdk_regist_ips')) { - function validate_reg_ips(){ - global $err_msg; - $allow_time = gdk_option('gdk_regist_ips_num'); - //每个IP允许注册的用户数 - $allowed = true; - $ipsfile = ABSPATH . '/ips.txt'; - $ips = file_get_contents($ipsfile); - $times = substr_count($ips, getIp()); - if ($times >= $allow_time) { - $allowed = false; - $err_msg = "该IP注册用户超过上限,无法继续注册!"; - } - $ips = ''; - return $allowed; - } - add_filter('validate_username', 'validate_reg_ips', 10, 1); - function ip_restrict_errors($errors){ - global $err_msg; - if (isset($errors->errors['invalid_username'])) { - $errors->errors['invalid_username'][0] = $err_msg; - } - return $errors; - } - add_filter('registration_errors', 'ip_restrict_errors'); - function update_reg_ips(){ - $ipsfile = ABSPATH . '/ips.txt'; - file_put_contents($ipsfile, getIp() . "\r\n", FILE_APPEND); - } - add_action('user_register', 'update_reg_ips'); - function getIp(){ - 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; - } -} \ No newline at end of file +add_action('manage_users_custom_column', 'gdk_add_last_login', 10, 3); \ No newline at end of file