تیکو – یکی از مشکلات کاربران سایتهای وردپرسی که از ووکامرس برای فروشگاه اینترنتی خود استفاده میکنند، عدم وجود تعیین رمز عبور در هنگام ثبتنام در سایت است. البته این مشکل بهراحتی از پیکربندی ووکامرس قابل حل است. مشکل اساسی زمانی است که میخواهید برای رمز عبور تعیین شده تاییدیه بگیرید. من ابوالفضل انصاری در این مقاله به شما نحوه افزودن فیلد تکرار رمز عبور به ووکامرس را در سایتهای وردپرسی بدون نصب افزونه آموزش خواهم داد.
چطور فیلد رمز عبور را در ووکامرس فعال کنیم؟
ووکامرس برای ثبتنام یا عضویت کاربران در سایت سادهترین فرآیند را در نظر گرفته است. این روش البته از لحاظ دیجیتال مارکتینگ و سادهسازی فرآیند عضویت در سایت، مورد تایید است. چرا که اکثر کاربران با دیدن تعداد فیلدهای زیاد برای پر کردن اطلاعات، از فرآیند ثبتنام سر باز میزنند. به همین منظور در هنگام عضویت در سایت، افزونه ووکامرس فقط و فقط فیلد ایمیل را از کاربر دریافت میکند. سپس رمز عبور را برای کاربران ایمیل میکند.
خوبی این نوع عضویت در سایت این است که باعث میشود از ثبتنام با ایمیلهای غیرواقعی جلوگیری بهعمل آید. اما یک بدی هم دارد. آن بدی این است که برخی کاربران دلشان نمیخواهد برای یک ثبتنام ساده وارد ایمیل خود شده، رمز عبور را از آنجا ببینند و سپس برای تغییر رمز عبور اقدام کنند. این افراد میخواهند در هنگام ثبتنام یا عضویت در سایت رمز عبور را خودشان تعیین کنند.
برای این کار نیاز به افزونه یا کار خاصی نیست. فقط کافی است وارد پیشخوان وردپرس خود شده و از منوی ووکامرس، قسمت «پیکربندی» را انتخاب کنید. حال از تبهای این قسمت وارد بخش «حفظ حریم خصوصی حسابهای کاربری» شوید.
در این بخش ابتدا مطمئن شوید که تیک مربوط به «به مشتری اجازه ایجاد حساب در برگه “حساب من” دهید» خورده باشد. سپس تیک گزینه «هنگام ایجاد یک حساب کاربری، برای کاربر جدید پیوندی برای تنظیم رمز عبور ارسال کنید» را بردارید.
به همین راحتی میتوانید ببینید که فیلد رمز عبور به عضویت ووکامرس سایت شما اضافه شد.
افزودن فیلد تکرار گذواژه به ووکامرس چه مزیتی دارد؟
در قسمت بالا یاد گرفتیم که چگونه فیلد رمز عبور را برای ثبتنام ووکامرس در سایتهای وردپرسی اضافه کنیم. الان شما یک صفحه ثبتنام یا عضویت ایجاد کردهاید که کاربران پس از ورود ایمیل و رمز عبور، اجازه دارند وارد حساب کاربری خود شوند. اما از آنجایی که محتویات فیلد رمز عبور برای کاربران پنهان است و به شکل ستاره نمایش داده میشود، همیشه احتمال اشتباه وجود دارد. اگر کاربری هنگام تایپ رمز عبور، اشتباهی کند بعدا برای ورود، به مشکل بر خواهد خورد.
بیشتر بخوانید: افزودن سوالات متداول به نتایج گوگل
افزودن فیلد تکرار رمز عبور به ووکامرس ایده خوبی برای جلوگیری از این اشتباه پر دردسر است. اگر یک فیلد تایید رمز عبور را در صفحه ثبتنام یا عضویت قرار دهیم، کاربران در هنگام تنظیم رمز عبور دچار اشتباه نمیشوند، زیرا محتویات هر دو قسمت باید با هم مطابقت داشته باشد.
چگونه فیلد تکرار رمز عبور را به ثبتنام ووکامرس اضافه کنیم؟
برای این کار نیازی به استفاده از افزونه خاصی نیست. فقط کافی است کد زیر را کپی کرده و وارد پیشخوان وردپرس شوید. حال از منوی سمت راست وارد بخش «نمایش» شده و گزینه «ویرایشگر پرونده پوسته» را انتخاب کنید.
کافی است کد زیر را در قسمت functions.php وارد کرده و پرونده را بهروزرسانی کنید. همین!
<?php
// Add a confirm password field on the register form. by: ticko.ir
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( 'تکرار گذرواژه', '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
}
?>
این کد باعث افزودن فیلد تکرار رمز عبور به صفحه ثبتنام ووکامرس میشود.
این کد مقدار دو فیلد، یعنی اولین ورودی رمز عبور و تایید آن را با هم مقایسه میکند و در صورتی که هر دو مطابقت داشته باشند، مراحل ثبتنام را تکمیل میکند. با استفاده از این کد میتوانید کاربران را از هرگونه اشتباه در هنگام تنظیم رمز عبور یا گذرواژه نجات دهید.
همچنین پیشنهاد میکنیم آموزش افزودن تماس بگیرید به جای قیمت ووکامرس بدون نصب افزونه را نیز مشاهده کنید.
رفع خطای بهروزرسانی پرونده ویرایشگر پرونده پوسته
برخی اوقات ممکن است که پس از اضافه کردن کد بالا به فایل functions.php با خطای زیر مواجه شوید.
این خطا زمانی رخ میدهد که شما در فایل functions.php از پیش کدی داشته باشید که با مقدار <?php شروع میشود. برای رفع این خطا کافی است مقدار <?php را از ابتدای کدی که در این مقاله در اختیارتان قرار دادیم حذف کنید. در واقع حالا کد شما به شکل زیر خواهد شد.
// Add a confirm password field on the register form. by: ticko.ir
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( 'تکرار گذرواژه', '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
}
?>
کار تمام شد! حالا به راحتی فیلد تکرار رمز عبور برای ثبتنام ووکامرس سایت وردپرسی شما اضافه شد. امیدوارم از این آموزش لذت برده باشید. نتیجه کار را حتما در قسمت دیدگاهها با دیگران به اشتراک بگذارید.
4 پاسخ
سلام تشکر از نوشته مفیدتون – قسمت دوم نوشته یعنی ایجاد فیلد تکرار رمز عبود کار نکرد
سلام مجتبی عزیز
این کد چک شده و مشکلی ندارد. مراحلی که در مقاله توضیح داده شده را به تریتب و با دقت انجام دهید. اگر مشکلی بود مجدد در همین جا اعلام کنید.
عالی بود ممنون از وقت ی که گذاشتید
سلام ممنون از آموزش خوبتون
فقط برای من به مشکل خورد
فیلد صحیح اضافه شد
فقط مقدار هر دو پسورد رو متغیر وارد کردم و متاسفانه تاییدش کرد ، بدون خطا