Woocommerce

Ajouter un champ de confirmation de mot de passe sur Woocommerce

Jean Rémi24 juin 20221 min de lecture

Nativement, Woocommerce propose de s’inscrire sur votre site, avec ton identifiant, ton email et un mot de passe.Sachez qu’il est possible d’ajouter un champ de confirmation de mot de passe sans passer par un plugin. Comment faire ? Très simple et comme d’habitude, ajoutez ce code ci-dessous dans le fichier functions.php du thème enfant de […]

Ajouter un champ de confirmation de mot de passe sur Woocommerce

Nativement, Woocommerce propose de s’inscrire sur votre site, avec ton identifiant, ton email et un mot de passe.
Sachez qu’il est possible d’ajouter un champ de confirmation de mot de passe sans passer par un plugin.


Comment faire ?
Très simple et comme d’habitude, ajoutez ce code ci-dessous dans le fichier functions.php du thème enfant de votre WordPress.

				
					// ----- validate password match on the registration page
function registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) {
	global $woocommerce;
	extract( $_POST );
	if ( strcmp( $password, $password2 ) !== 0 ) {
		return new WP_Error( 'registration-error', __( 'Passwords do not match.', 'woocommerce' ) );
	}
	return $reg_errors;
}
add_filter('woocommerce_registration_errors', 'registration_errors_validation', 10,3);

// ----- add a confirm password fields match on the registration page
function wc_register_form_password_repeat() {
	?>
	<p class="form-row form-row-wide">
		<label for="reg_password2"><?php _e( 'Répéter le mot de passe', 'woocommerce' ); ?> <span class="required">*</span></label>
		<input type="password" class="input-text" name="password2" id="reg_password2" value="<?php if ( ! empty( $_POST['password2'] ) ) echo esc_attr( $_POST['password2'] ); ?>" />
	</p>
	<?php
}
add_action( 'woocommerce_register_form', 'wc_register_form_password_repeat' );

// ----- Validate confirm password field match to the checkout page
function lit_woocommerce_confirm_password_validation( $posted ) {
    $checkout = WC()->checkout;
    if ( ! is_user_logged_in() && ( $checkout->must_create_account || ! empty( $posted['createaccount'] ) ) ) {
        if ( strcmp( $posted['account_password'], $posted['account_confirm_password'] ) !== 0 ) {
            wc_add_notice( __( 'Les mots de passe ne correspondent pas.', 'woocommerce' ), 'error' ); 
        }
    }
}
add_action( 'woocommerce_after_checkout_validation', 'lit_woocommerce_confirm_password_validation', 10, 2 );

// ----- Add a confirm password field to the checkout page
function lit_woocommerce_confirm_password_checkout( $checkout ) {
    if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {

        $fields = $checkout->get_checkout_fields();

        $fields['account']['account_confirm_password'] = array(
            'type'              => 'password',
            'label'             => __( 'Confirmez le mot de passe', 'woocommerce' ),
            'required'          => true,
            'placeholder'       => _x( 'Confirmez le mot de passe', 'placeholder', 'woocommerce' )
        );

        $checkout->__set( 'checkout_fields', $fields );
    }
}
add_action( 'woocommerce_checkout_init', 'lit_woocommerce_confirm_password_checkout', 10, 1 );

				
			

Et voici le résultat :

Testé sur WordPress 6.3 et Woocommerce 8.1.0

Un nouveau projet WordPress ? Besoin d’aide ?

Contactez-moi ou visitez mon site et je me ferais un plaisir de vous aider. 

Besoin d'un code personnalisé ?

Vous avez un projet de développement web ?

Le meilleur moyen de savoir si nous pouvons vous aider, c'est d'en parler. Réservez un appel de 30 minutes avec notre équipe. Nous échangeons sur votre besoin, nous identifions les pistes possibles, et nous vous donnons une vision claire des prochaines étapes. Sans engagement.

Nous écrire