WordPress get_user_Meta显示错误的值

bfhwhh0e  于 12个月前  发布在  WordPress
关注(0)|答案(2)|浏览(173)

我试图做一些自定义片段为我的WordPress网站.我已经做了几个,这一个出于某种原因是不工作.我使用我的网站上的Formidable表单注册用户,并在注册时有一个自定义的Meta字段创建称为“信息”和值设置为“否”.此字段仅当用户创建一个条目在我的客户-info表单。然后将Meta值更改为“yes”。
这段代码是为了迫使他们在登录时填写信息表单并将其引导到该页面,但由于某种原因,我从用户Meta中获得的值是“no”。这是错误的。有什么想法吗?我使用的代码:

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

字符串

i2byvkas

i2byvkas1#

我认为你的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语句不正确。

nkoocmlb

nkoocmlb2#

您的代码不正确。比较两个值的操作在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());
    }
}

字符串
有关详细信息,请参阅此链接
https://www.w3schools.com/php/php_operators.asp

相关问题