web-dev-qa-db-fra.com

Mot de passe défini par l'utilisateur lors de l'inscription - l'email d'inscription envoie un laissez-passer généré automatiquement

Mise à jour de certains champs de méta lors de l’enregistrement et offre à l’utilisateur la possibilité de choisir un mot de passe alors que le courrier électronique d’enregistrement envoie le mot de passe généré automatiquement. Le mot de passe défini par l'utilisateur fonctionne et n'est pas transmis par courrier électronique.

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

Bienvenue sur WPSE. Vous pouvez utiliser wp_insert_user , vous n'avez besoin de rien.

En supposant ici qu'ils remplissent un formulaire avec un nom, un nom d'utilisateur, une adresse électronique et un champ de mot de passe, et vous le capturez comme vous le souhaitez.

$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