Wordpress wp_update_user仅在刷新后更新

时间:2012-11-21 16:36:19

标签: php mysql wordpress

我的Wordpress安装中有一个自定义页面,其中包括允许用户从前端显示更改他们的电子邮件地址。

但是,当他们这样做时,电子邮件在数据库中被正确更改,但在页面上没有更新,直到另一个刷新(有或没有$_POST)。这种行为非常奇怪,我无法找到原因。

以下是代码中有问题的部分:

if ( !empty( $_POST['user_email'] ) )
    wp_update_user( array ('ID' => $queried_user->id, 'user_email' => esc_attr( $_POST['user_email'] ) ) ) ;

如果我执行var_dump($_POST)var_dump($queried_user),我会在user_email变量中正确显示$_POST,但相应地,仍然是$queried_user中的旧{{1}} 1}}变量。但是,通过PHPMyAdmin查看数据库,我可以看到数据已经更新。再次刷新浏览器页面后,一切都会正确显示。

任何指针?

1 个答案:

答案 0 :(得分:3)

不确定如何填充$ queried_user,但请尝试以下操作:

if ( !empty( $_POST['user_email'] ) )
{
   $queried_user->user_email=$_POST['user_email'];
   wp_update_user( array ('ID' => $queried_user->id, 'user_email' => esc_attr( $queried_user->user_email ) ) ) ;
}