WP_UPDATE_USER不是即时的?

时间:2014-08-29 作者:whitenoisedb

我正在尝试更新$\\u POST收到的用户邮件,并立即使用它。它会改变,但会输出旧的。怎么做呢?

global $current_user;
get_currentuserinfo();

if (isset($_POST[\'email\'])) {
        wp_update_user( array(\'ID\' => $current_user->ID, \'user_email\' => $_POST[\'email\']) );
        get_currentuserinfo(); //just in case
}

echo \'<p>You\'ll recieve a mail here: \' . $current_user->user_email . \'</p>\'; //outputs old mail
可能必须使用全局$current\\u用户变量?

编辑:

Chuncky修复,

global $current_user;
get_currentuserinfo();

$email = $current_user->user_email;

if (isset($_POST[\'email\'])) {
     wp_update_user( array(\'ID\' => $current_user->ID, \'user_email\' => $_POST[\'email\']) );
     $email = $_POST[\'email\'];
}

echo \'<p>You\'ll recieve a mail here: \' . $email . \'</p>\';

1 个回复
最合适的回答,由SO网友:Tomás Cot 整理而成

    global $current_user;
    get_currentuserinfo();

    if (isset($_POST[\'email\'])) {
            wp_update_user( array(\'ID\' => $current_user->ID, \'user_email\' => $_POST[\'email\']) );
            unset($current_user);
            get_currentuserinfo(); //just in case
    }

    echo \'<p>You\'ll recieve a mail here: \' . $current_user->user_email . \'</p>\'; 
现在应该可以了,问题出在get_currentuserinfo() 作用because it checks if the variable is already set and is an instace of WP_User, 如果是,则函数“中止”(返回)并且不更新变量。

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在