Password Woocommerce

Depuis la version 2.1 de WooCommerce, vous avez pu constater la suppression du champ de répétition de mot de passe sur la page de paiement (checkout page) ainsi que sur la page Mon compte (My Account page). L'équipe de développement a décidé de retirer ce critère parce qu'il était assez facile de réinitialiser son mot de passe en un seul clic.
Si vous souhaitez tout de même insérer un champ de confirmation de mot de passe sur ces pages, tout ce que vous avez à faire est d'ajouter les codes ci-dessous dans le fichier functions.php de votre thème.

Pour la page de paiement (checkout page)

// place the following code in your theme's functions.php file
// Add a second password field to the checkout page.
add_action( 'woocommerce_checkout_init', 'wc_add_confirm_password_checkout', 10, 1 );
function wc_add_confirm_password_checkout( $checkout ) {
if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {
$checkout->checkout_fields['account']['account_password2'] = array(
'type' => 'password',
'label' => __( 'Confirm password', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Confirm Password', 'placeholder', 'woocommerce' )
);
}
}
 
// Check the password and confirm password fields match before allow checkout to proceed.
add_action( 'woocommerce_after_checkout_validation', 'wc_check_confirm_password_matches_checkout', 10, 2 );
function wc_check_confirm_password_matches_checkout( $posted ) {
$checkout = WC()->checkout;
if ( ! is_user_logged_in() && ( $checkout->must_create_account || ! empty( $posted['createaccount'] ) ) ) {
if ( strcmp( $posted['account_password'], $posted['account_password2'] ) !== 0 ) {
wc_add_notice( __( 'Passwords do not match.', 'woocommerce' ), 'error' );
}
}
}
Page de paiement ➜ Checkout Page

Cela va ajouter un nouveau champ sous le champ de mot de passe avec le label "Confirmer Mot de Passe/Confirm Password".

Pour la page Mon Compte Inscription (My Account page/Register Page)

// Add the code below to your theme's functions.php file to add a confirm password field on the register form under My Accounts.
add_filter('woocommerce_registration_errors', 'registration_errors_validation', 10,3);
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_action( 'woocommerce_register_form', 'wc_register_form_password_repeat' );
function wc_register_form_password_repeat() {
?>
<p class="form-row form-row-wide">
<label for="reg_password2"><?php _e( 'Password Repeat', '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
}
Page Mon Compte Inscription ➜ Register Page

Cela va ajouter un nouveau champ sous le champ de mot de passe avec le label "Répéter Mot de Passe/Password Repeat".

Vous pouvez traduire ces champs directement dans ce code ou en utilisant le text-domain de votre thème, en remplaçant 'woocommerce' par 'le-text-domain-de-mon-thème' puis en procédant a une traduction via Poedit ou en utilisant un plugin comme Codestyling Localization