我的目标是创建一个用于计算用户登录次数的插件。但目前,update_user_meta()似乎不起作用,或者我没有正确使用它。我只是想用user_id值更新一个自定义变量,这样我就可以知道我在user_meta中存储了一个值。
<?php
function user_login_count2($redirect_to, $request, $user) {
global $user;
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;
if (isset($user_id)) {
if ( get_user_meta($user_id, 'login_count2', true) ){
//$login_count2 = get_user_meta($user_id, 'login_count2', true);
//$login_count2++;
//update_user_meta($user_id, 'login_count2', $login_count2);
$user_id_test = get_user_meta($user_id, 'user_id_test', true);
update_user_meta($user_id, 'user_id_test', $user_id);
}else{
add_user_meta($user_id, 'login_count2', '1');
}
}else{
return $redirect_to;
}
}
add_filter('login_redirect', 'user_login_count2', 10, 3);
function show_login_counts() {
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;
$user_id_test = get_user_meta($user_id, 'user_id_test', true);
if(isset($_GET['ict']) && $_GET['ict'] == 1){
echo $user_id;
echo $user_id_test;
}
}
add_action('wp_footer', 'show_login_counts');
?>
用所有注释掉的代码来跟踪代码有点困难,而且我不确定调用各种用户函数变量的目的是什么。
我会这样做:
add_action('wp_login', 'record_user_login', 10, 2);
function record_user_login($user_login, $user){
// Get current user ID from the user object
$user_id = $user->ID;
// Get previous login count
$login_count = get_user_meta($user_id, 'login_count', true);
// Increment login count if it exists, or set it to 1
if (int_var($login_count)){
$new_count = $login_count++;
}
else {
$new_count = 1;
}
// Update login count in user meta
update_user_meta($user_id, 'login_count', $new_count);
}