WP update_user_meta() is not working


WP update_user_meta() is not working

我的目标是创建一个用于计算用户登录次数的插件。但目前,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);
    }