Добавляем поле подтверждения пароля на странице размещения заказа в WooCommerce 2.1

woocommerce_21_confirm_password_checkout

Последние несколько недель мы провели много времени над работой над «допиливанием» движка интернет-магазина WooCommerce «под себя», и, в частности, над возвращением некоторого утраченного функционала в версии WooCommerce 2.1 по сравнению с WooCommerce 2.0.

Эта статья будет посвящена одной из таких фич, исчезнувших в WooCommerce 2.0. В WooCommerce 2.1 было убрано поле подтверждения пароля и фунционал этой фичи со страницы размещения заказа со следующей мотивацией: если покупатель сделает опечатку в поле пароля, то этот самый пароль позже можно с легкостью сбросить с помощью функционала сброса пароля в WooCommerce.

Однако, если все же хотите добавить поле подтверждение пароля на вашу страницу размещения заказа в WooCommerce 2.1, у нас для вас хорошие новости — это возможно.

Код ниже добавит дополнительное поле под основным полем для пароля на странице размещения заказа под названием «Подтверждение пароля» и когда покупатель будет размещать заказ, движок сверит два поля между собой и выдаст сообщение об ошибке, если пароли не совпадут.

Вставьте следующий код в файл functions.php вашей темы:

<?php
// вставьте следующий код в файл functions.php вашей темы:
// добавляем второе поле для пароля на страницу размещения заказа.
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' => __( 'Подтверждение пароля', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Подтверждение пароля', 'placeholder', 'woocommerce' )
);
}
}
 
// Проверяем поля пароля и подтверждения пароля, прежде чем переходить к оплате.
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' );
}
}
}
?>

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top