繁体   English   中英

无法在wordpress中设置用户密码

[英]Cannot set user password in wordpress

我已经尝试了我可以找到的所有设置用户密码注册,但没有成功...我有字段显示,验证(如果密码匹配等)我在屏幕上打印它们,我打印用户ID在屏幕上所需的每一个参数都存在,但功能似乎根本不起作用......这不起作用......

$newpassword = "zzzzzz";

update_user_meta($user_id, 'user_pass', $newpassword);

这也不起作用......

add_action( 'user_register', 'ts_register_extra_fields', 10 );
function ts_register_extra_fields($user_id, $password='11',$meta = array()){
    $userdata = array();
      if ( $_POST['password'] !== '' ) {
       $userdata['user_pass'] = $_POST['password'];
    }
    $new_user_id = wp_update_user( $userdata );
  }

我的客户明天需要这个,所以我现在完全迷失了,我不知道为什么它不工作......

忘记添加,所有这些代码都添加到我的主题的functions.php中。 (它进入它,因为我已经说过我在屏幕上发布变量)。

add_action( 'user_register', 'ts_register_extra_fields', 100 );

function ts_register_extra_fields( $user_id, $password = '', $meta = array() ) {

    $userdata = array();

    $userdata['ID'] = $user_id;

    $userdata['contacto'] = $_POST['contacto'];

    $userdata['nif'] = $_POST['nif'];

     if ( $_POST['password'] !== '' ) {
         $userdata['user_pass'] = $_POST['password'];
         echo "im in";
     }
     $new_user_id = wp_insert_user( $userdata );

     echo "id-".$userdata['ID'];

     echo "contacto-".$userdata['contacto'];

     echo "nif-".$userdata['nif'];

     echo "pass-".$userdata['user_pass'];
}

所有那些回声输出正确的数据...例如id = 195,下次我尝试196等... contacto和nif显示我在自定义注册字段中输入的数据,并且通过也显示我输入的数据在自定义注册字段密码中...

首先,我认为WordPress正在使用MD5加密密码。

$hash = wp_hash_password( $newpassword );
// then wp_update_user with $hash as the user_pass value

其次,您不应该通过Internet以明文形式发送密码。 如果您可以在发送之前使用javascript加密密码,那么它可能会更加安全。

最后,通过在wp_update_user指定ID来wp_update_user更新现有用户。

哈哈! 发现错误。 我安装了另一个名为“New User Aprovement”的插件,需要管理员批准才能让用户登录。 当管理员接受用户登录时,该插件生成另一个密码(能够以可读模式将密码发送给用户),使用户注册时生成的密码更新失效(因为它在生成随机密码后生成管理员接受)。

我通过禁用插件并测试functions.php找到了这个。 它确实有效。 为了使它们都工作,我只删除了生成随机密码的插件中的代码。 虽然用户没有通过电子邮件收到帐户摘要。 它适合我的需要。

最好的问候,Vcoder

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM