我正在尝试为我的 WordPress 网站制作一些自定义片段。我已经做了一些,但由于某种原因,这个不起作用。我在网站上使用 Formidable Forms 来注册用户,注册时会创建一个名为“info”的自定义元字段,并将值设置为“no”。仅当用户在我的客户信息表单中创建条目时,此字段才会更改。然后元值更改为“yes”。
此代码片段是强制他们在登录时填写信息表单并将其引导至该页面,但由于某种原因,我从用户元获得的值是“否”。这是错误的。有任何想法吗?我正在使用的代码:
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());
}
}
欲了解更多信息,请参阅此链接