WP update_user_meta()无效

时间:2015-02-13 01:41:07

标签: php wordpress

我的目标是创建一个插件来计算用户登录的次数。但是现在看来,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');
?>

1 个答案:

答案 0 :(得分:1)

使用所有注释掉的代码来跟踪代码有点困难,而且我不确定调用各种用户函数的目的是变量。

我将如何做到这一点:

    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);

    }