web-dev-qa-db-ja.com

登録時のユーザー定義パスワード - 登録メールは自動生成されたパスを送信します

登録時にいくつかのメタフィールドを更新し、ユーザーにパスワードを選択するオプションを提供します。登録電子メールは自動生成されたパスワードを送信します。ユーザー定義のパスワードは機能し、パスをEメールで送信することはできません。

add_action( 'user_register', 'jwh_register_extra_fields', 100 );
function jwh_register_extra_fields( $user_id, $password = '', $meta = array() )  {
$userdata = array();

$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
    $userdata['user_pass'] = $_POST['password'];
}

$userdata['first_name'] = $_POST['first_name'];
$userdata['last_name'] = $_POST['last_name'];
$userdata['user_url'] = $_POST['user_url'];

$new_user_id = wp_update_user( $userdata );
}
1
Justin W Hall

WPSEへようこそ。あなたは wp_insert_user を使うことができます、あなたは何にもフックする必要はありません。

ここで彼らが名前、ユーザー名、電子メールとパスワードのフィールドでフォームに記入し、あなたが望むならそれをキャプチャすると仮定します。

$name_array = explode(' ',$_POST['name']);
$user = array(
    'user_login' => $_POST['username'],
    'user_pass' => $_POST['password'],
    'user_email' => $_POST['email'],
    'first_name' => $name_array[0],
    'last_name' => $name_array[1],
            );
$user_id = wp_insert_user( $user );

wp_new_user_notification( $user_id, $_POST['password'] );
2
Andrew Bartel