2015-11-09 3 views
0

Я пытаюсь получить последний раз, когда пользователь был зарегистрирован на сайте WordPress. Сейчас я использую этот кусок кода:Получить последний раз Пользователь был зарегистрирован

add_action('wp_login', 'cd_set_last_login', 10, 2); 
function cd_set_last_login($user_login, $user) { 
    update_user_meta($user->ID, 'last_login', current_time('mysql')); 
} 

Это дает мне последний раз, когда я/пользователь в системе, но если я вошел в 5 минут назад, то это то, что я получаю. Мне нужен последний раз, когда пользователь был активным, поэтому, если бы я был на сайте 2 недели назад, я хочу получить это значение, а не значение с 5 минут назад. Любая помощь будет оценена по достоинству. Благодаря

ответ

0

Просто используйте массив

add_action('wp_login', 'cd_set_last_login', 10, 2); 
function cd_set_last_login($user_login, $user) { 
    if($arr= get_user_meta($user->ID, 'last_login', true)){ 
     $arr[]= current_time('mysql'); 
    } else { 
     $arr= array(); // reset arr 
     $arr[]= current_time('mysql'); 
    } 
    update_user_meta($user->ID, 'last_login', $arr); 
} 

Я не проверил это, но вы можете иметь проблемы экономии массива в MySQL, я думаю, что update_user_meta() будет автоматически сериализацию массива, но если вам не нужно будет использовать функции serialize() и unserialize() для преобразования в строку/обратно в массив

+0

Не стоит отвечать? – David

Смежные вопросы