我想插入一些用户元数据以确定用户之前是否已登录 - 如果他们没有,则打算显示欢迎屏幕。
我已经谷歌搜索了所有这些功能,但它们似乎并不适合我。
这是我的代码......
add_action('init', function() {
$user_ID = get_current_user_id();
$has_visited = get_user_meta($userID, 'has_visited');
//check if has_visited key exists - if it doesn't, user's first visit
if(!$has_visited) {
//set the has_visited key
update_user_meta($user_ID, 'has_visited', 1);
echo 'user has not logged in before';
exit;
}
else { echo 'user has logged in before'; exit; }
});
这些函数是否可以在init钩子上运行。我需要它们,所以如果是第一次访问,我可以将用户重定向到另一个页面。
提前感谢您的帮助和智慧。
答案 0 :(得分:1)
因为你这里有一个错字:
$has_visited = get_user_meta($userID, 'has_visited');
但是,你很难过:
$user_ID = get_current_user_id();
所以$user_ID
和$userID
不一样。
无论如何,首先你需要创建另一个条件来检查用户是否已登录,因为如果没有,则不会有用户ID。
所以你的完整代码应该是这样的:
add_action('init', function() {
if (is_user_logged_in()) { //Added this
$user_ID = get_current_user_id();
$has_visited = get_user_meta($user_ID, 'has_visited', true); //Fixed this
//check if has_visited key exists - if it doesn't, user's first visit
if (!$has_visited) {
//set the has_visited key
update_user_meta($user_ID, 'has_visited', 1);
echo 'user has not logged in before';
exit;
} else {
echo 'user has logged in before';
exit;
}
}
echo "User not logged in";
});