WordPress上次登录到每个用户

时间:2014-08-18 作者:jamper

尝试获取每个用户的最后一次登录并将其显示在管理面板中。目前,我可以在管理循环中显示第一个用户,但是我无法拉出其余的用户。

我想我需要循环并提取每个用户meta\\u值,其中meta\\u值等于最后一次登录,但我尝试了一个标准查询,但它不起作用。代码为:

    function modify_user_column( $column_name, $user_id ) {

//get current user object
    $current_user = wp_get_current_user();


    if( \'last_login\' != $column_name ) {

            return get_last_login( $current_user->ID );
    }

}
add_action( \'manage_users_custom_column\', \'modify_user_column\', 10, 2 );
get\\u last\\u login()是:

    function get_last_login($user_id) {

   $last_login = get_user_meta($user_id, \'last_login\', false);


  $last_login = get_user_meta($user_id, \'last_login\', true);
$date_format = get_option(\'date_format\') . \' \' . get_option(\'time_format\');
$the_last_login = mysql2date($date_format, $last_login, false);
return $the_last_login;

}
谢谢

1 个回复
最合适的回答,由SO网友:D-B 整理而成

这将向用户管理员添加一个新列,并显示其上次登录。

<?php
/* Plugin Name: (#158276) WPSE | Last user login */

// Add user meta `last_login` that saves the UNIX time stamp 
// to identify the exact time when a user logged in
add_action( \'wp_login\', \'add_login_time\' );
function add_login_time( $user_login ) {
    global $wpdb;
    $user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_login = %s", $user_login ) );
    update_user_meta( $user_id, \'last_login\', current_time(\'mysql\') );
}

// Add a new column to an admin list table
add_filter( \'manage_users_columns\', \'add_last_login_column\' );
function add_last_login_column( $columns ) {
    $columns[\'last_login\'] = __( \'Last login\', \'last_login\' );
    return $columns;
}

// Contents of the new admin list table column
add_action( \'manage_users_custom_column\',  \'add_last_login_column_value\', 10, 3 );
function add_last_login_column_value( $value, $column_name, $user_id ) {
    $meta = get_user_meta( $user_id, \'last_login\', true );
    if ( \'last_login\' == $column_name && $meta ) {
        return date_i18n( 
            sprintf(
                \'%s - %s\',
                get_option( \'date_format\' ),
                get_option( \'time_format\' )
            ),
            strtotime( $meta ),
            get_option( \'gmt_offset\' )
        );
    }
    return $value;
}

结束