Wordpress wp_update_user 仅在刷新后更新

Sun*_*tva 5 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'] ) ) ) ;
Run Code Online (Sandbox Code Playgroud)

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

任何指针?

Gar*_*ary 4

不确定您如何填充 $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 ) ) ) ;
}
Run Code Online (Sandbox Code Playgroud)