0

登録時にユーザーパスワードを設定するために見つけたすべてを試しましたが、成功しませんでした...フィールドが表示され、検証(パスワードが一致する場合など)が画面に表示され、ユーザー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は、カスタム登録フィールドに入力したデータを示し、パスも入力したデータを示しますカスタム登録フィールドのパスワードで...

4

2 に答える 2

1

まず、WordPress はパスワードに MD5 暗号化を使用していると思います。

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

次に、パスワードをクリア テキストでインターネット経由で送信しないでください。パスワードを送信する前に JavaScript でパスワードを暗号化できると、おそらくより安全になります。

最後に、 で ID を指定して、既存のユーザーを更新してみますwp_update_user

于 2012-09-24T01:08:01.190 に答える
1

あはは!エラーが見つかりました。ユーザーがログインするために管理者の承認が必要な「新規ユーザー承認」と呼ばれる別のプラグインがインストールされています。そのプラグインは、管理者がユーザーのログインを受け入れたときに別のパスワードを生成し (パスワードを読み取り可能なモードでユーザーに送信できるようにするため)、ユーザーが登録したときに行ったパスワードの更新を無効にします (後でランダムなパスワードを生成したため)管理者は受け入れます)。

これは、プラグインを無効にして functions.php をテストすることで見つかりました。それはうまくいきました。両方を機能させるために、ランダムなパスワードを生成するプラグインのコードを消去しました。ユーザーはアカウントの概要を電子メールで受け取りませんが。それは私のニーズに合っています。

よろしく、 Vcoder

于 2012-09-25T13:38:39.700 に答える