Php 向wp_insert_用户注册后无法登录
我做了一个登记表,但在登记后,我无法登录到新创建的帐户。Wordpress说此电子邮件的密码错误,我做错了什么 代码如下:Php 向wp_insert_用户注册后无法登录,php,wordpress,Php,Wordpress,我做了一个登记表,但在登记后,我无法登录到新创建的帐户。Wordpress说此电子邮件的密码错误,我做错了什么 代码如下: $userdata = array( 'user_pass' => $password, 'user_nicename' => $company_clean, 'user_email' => $email, 'user_login' => $c
$userdata = array(
'user_pass' => $password,
'user_nicename' => $company_clean,
'user_email' => $email,
'user_login' => $company_clean,
'display_name' => $company_clean,
'nickname' => $company_clean,
'first_name' => $name,
'last_name' => $last_name,
'rich_editing' => false,
'syntax_highlighting' => false,
'comment_shortcuts' => false,
'user_registered' => date('Y-m-d H:i:s'),
'show_admin_bar_front' => false,
'role' => 'customer',
);
$user_id = wp_insert_user( wp_slash($userdata) );
add_user_meta($user_id, 'company', $company, false);
add_user_meta($user_id, 'primary', '1', false);
add_user_meta($user_id, 'miles', 0, false);
add_user_meta($user_id, 'phone', $phone, false);
if(!term_exists($company, 'customers')){
wp_insert_term(
$company,
'customers'
);
}
wp_redirect(get_home_url() . '/login');
我已经尝试过使用和不使用
wp_slash()
,但结果是一样的。解决了问题,在注册新用户之前,我用md5()
对密码进行了加密,然后我用它来注册它
wp\u insert\u user()
自行加密,因此它是一个双重加密的密码,因此wp无法将输入的值与数据库中存储的杂乱值匹配
无论如何,在网上搜索时,我发现最好使用
wp\u hash\u password()
而不是md5()
在用户注册后是否希望自动登录?不,我只希望用户输入电子邮件和密码,就像您在/wp admin中那样登录。您完全相同的代码适用于我,我可以登录。我添加了die($user\u id)代码>在重定向之前,并获得id。用户是否已添加到wordpress?是的,它已添加到db-->-->中。只是尝试重置密码,重置后我可以毫无问题地登录,因此密码加密有问题,尝试了解问题所在。