Wordpress get_user_meta 显示错误值
Wordpress get_user_meta showing wrong value
您好,感谢您花时间尝试帮助我。我对 PHP 一点经验都没有。我正在尝试为我的 wordpress 网站做一些自定义片段。我已经做了一些,但由于某种原因,这个不起作用。我在我的网站上使用 Formidable Forms 来注册用户,在注册时创建了一个名为“信息”的自定义元字段,该值设置为“否”。只有当用户在我的客户信息表单中创建条目时,该字段才会更改。然后元值更改为“是”。此代码段是强制他们在登录时填写信息表单并将他们定向到该页面,但出于某种原因,我从用户元数据中获得的值为“否”。这是错误的。有任何想法吗?我使用的代码:
function my_logged_in_redirect() {
$userid = get_current_user_id();
$info = get_user_meta($userid, 'info', true);
$loggedin = is_user_logged_in();
if (is_page(1795)){
if ($loggedin == true && $info = 'no'){
wp_redirect(home_url('/dashboard/account-information'));
}
else if ($loggedin == true && $info = 'yes'){
wp_redirect(home_url('/dashboard'));
}
else if ($loggedin == false){
wp_redirect(home_url());
}
}
}
add_action( 'template_redirect', 'my_logged_in_redirect' );
好吧,我认为您的 if 语句可能马上就错了。 if ($loggedin == true && $info = 'no'){
应该改为 if ($loggedin == true && $info == 'no'){
还有这个else if ($loggedin == true && $info = 'yes'){
到这个else if ($loggedin == true && $info == 'yes'){
除了这些要点之外,您的代码看起来并没有错 ^。看起来 $info
可能具有正确的值,但只是 if 语句不正确。
您的代码不正确。
比较两个值的操作在 php 和 ==
和 ===
.
中完成
- 只等于值(==)
- 数量和数据类型相等(===)
- 运算符(=)用于设置值
这段代码是正确的:
if (is_page(1795)) {
if ($loggedin == true && $info == 'no') {
wp_redirect(home_url('/dashboard/account-information'));
} else if ($loggedin == true && $info == 'yes') {
wp_redirect(home_url('/dashboard'));
} else if ($loggedin == false) {
wp_redirect(home_url());
}
}
有关详细信息,请参阅此link
您好,感谢您花时间尝试帮助我。我对 PHP 一点经验都没有。我正在尝试为我的 wordpress 网站做一些自定义片段。我已经做了一些,但由于某种原因,这个不起作用。我在我的网站上使用 Formidable Forms 来注册用户,在注册时创建了一个名为“信息”的自定义元字段,该值设置为“否”。只有当用户在我的客户信息表单中创建条目时,该字段才会更改。然后元值更改为“是”。此代码段是强制他们在登录时填写信息表单并将他们定向到该页面,但出于某种原因,我从用户元数据中获得的值为“否”。这是错误的。有任何想法吗?我使用的代码:
function my_logged_in_redirect() {
$userid = get_current_user_id();
$info = get_user_meta($userid, 'info', true);
$loggedin = is_user_logged_in();
if (is_page(1795)){
if ($loggedin == true && $info = 'no'){
wp_redirect(home_url('/dashboard/account-information'));
}
else if ($loggedin == true && $info = 'yes'){
wp_redirect(home_url('/dashboard'));
}
else if ($loggedin == false){
wp_redirect(home_url());
}
}
} add_action( 'template_redirect', 'my_logged_in_redirect' );
好吧,我认为您的 if 语句可能马上就错了。 if ($loggedin == true && $info = 'no'){
应该改为 if ($loggedin == true && $info == 'no'){
还有这个else if ($loggedin == true && $info = 'yes'){
到这个else if ($loggedin == true && $info == 'yes'){
除了这些要点之外,您的代码看起来并没有错 ^。看起来 $info
可能具有正确的值,但只是 if 语句不正确。
您的代码不正确。
比较两个值的操作在 php 和 ==
和 ===
.
- 只等于值(==)
- 数量和数据类型相等(===)
- 运算符(=)用于设置值
这段代码是正确的:
if (is_page(1795)) {
if ($loggedin == true && $info == 'no') {
wp_redirect(home_url('/dashboard/account-information'));
} else if ($loggedin == true && $info == 'yes') {
wp_redirect(home_url('/dashboard'));
} else if ($loggedin == false) {
wp_redirect(home_url());
}
}
有关详细信息,请参阅此link