我已经编写了一个插入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做了很多高级的事情,我知道这是一件基本的事情,但有时像我这样的开发人员会搞砸这样的小事。我已经做了三天了。谁能告诉我我的代码出了什么问题吗?提前谢谢。
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\')