WP_INSERT_USER对我不起作用?

时间:2016-12-18 作者:Prasad Patel

我已经编写了一个插入wordpress用户的代码,如果我尝试添加新用户,我会收到wp\\U insert\\U user的错误,如下所示:

“可捕获的致命错误:第5132行的WP\\u error类对象无法转换为/my/project/path/to/WP content/plugins/my\\u plugin\\u name/plugin\\u file\\u name.php中的字符串”

如果我回显返回类型为“wp\\u insert\\u user”,则得到上述结果。我的wp\\U insert\\U用户代码如下:

  $user_data = array(
                    \'ID\' => \'\',
                    \'user_pass\' => \'\',
                    \'user_login\' => $first_name,
                    \'display_name\' => $first_name.\' \'.$last_name,
                    \'user_email\' => $user_email,
                    \'first_name\' => $first_name,
                    \'last_name\' => $last_name,
                    \'role\' => \'my_user_role\'
                );
                $random_password = wp_generate_password(8,false);
                $user_id = wp_insert_user( $user_data );
                echo "<pre>";
                echo $user_ id;
                echo "</pre>";
                wp_set_password($random_password, $user_id);
我用wordpress做了很多高级的事情,我知道这是一件基本的事情,但有时像我这样的开发人员会搞砸这样的小事。我已经做了三天了。谁能告诉我我的代码出了什么问题吗?提前谢谢。

1 个回复
SO网友:Tunji

问题来自wp_insert_user 事实上你的价值user_pass 为空。

你应该更新你的代码

 $random_password = wp_generate_password(8,false);
 $user_data = array(
                \'user_login\' => $first_name,
                \'user_pass\' => $random_password,
                \'user_email\' => $trainer_email,
                \'first_name\' => $first_name,
                \'last_name\' => $last_name,
                \'role\' => \'trainer\'
            );
并删除此行wp_set_password($random_password, $user_id);

您还应该检查$user_id 确保不会返回WP_Error object 您可以使用var_dump($user_id\')