اضافه کردن فیلد پسوورد به صفحه ی ثبت نام وردپرس بدون افزونه

mili1374

کاربر عضو
سلام من مطابق با عنوان پستم یه کد برای فیلد ثبت نام پیدا کردم و به خوبی هم کار میکنه اما یه مشکل کوچولو داره و اونم اینه که پسوردی که کاربر وارد میکنه رو سایت ایمیل نمی کنه پسوردی که ورد پرس خودش جنریت میکنه برای کاربر ایمی میکنه کسی میتونه کمک کنه ؟


کد:
<?php
// اضافه کردن فیلد رمز عبور به صفحه لاگین

add_action( 'register_form', 'ts_show_extra_register_fields' );
function ts_show_extra_register_fields(){
?>
<p>
<label for="password">رمز عبور<br/>
<input id="password" type="password" tabindex="30" size="25" value="" name="password" />
</label>
</p>
<p>
<label for="repeat_password">تکرار رمز عبور<br/>
<input id="repeat_password" type="password" tabindex="40" size="25" value="" name="repeat_password" />
</label>
</p>
<?php
}

// چک کردن خطا های احتمالی
add_action( 'register_post', 'ts_check_extra_register_fields', 10, 3 );
function ts_check_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>!خطا</strong>: پسوردها هماهنگ نیست" );
}
if ( strlen( $_POST['password'] ) < 6 ) {
$errors->add( 'password_too_short', "<strong>!خطا</strong>: رمز عبور باید بیشتر از 6 حزف باشد" );
}
}

// ثبت رمز عبور در دیتابیس

add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id ){
$userdata = array();
$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}

// نمایش پیام کامل شدن ثبت نام

add_filter( 'gettext', 'ts_edit_password_email_text' );
function ts_edit_password_email_text ( $text ) {
if ( $text == 'پسورد برای شما ایمیل خواهد شد' ) {
$text = 'اگر فیلد پسورد را خالی گذاشته اید. پسورد برای شما جنریت خواهد شد. رمز عبور باید بیش از ۵ حرف باشد.';
}
return $text;
}

?>
 
آخرین ویرایش توسط مدیر:

mili1374

کاربر عضو
کد:
<?php
// اضافه کردن فیلد رمز عبور به صفحه لاگین

add_action( 'register_form', 'ts_show_extra_register_fields' );
function ts_show_extra_register_fields(){
?>
<p>
<label for="password">رمز عبور<br/>
<input id="password" type="password" tabindex="30" size="25" value="" name="password" />
</label>
</p>
<p>
<label for="repeat_password">تکرار رمز عبور<br/>
<input id="repeat_password" type="password" tabindex="40" size="25" value="" name="repeat_password" />
</label>
</p>
<?php
}

// چک کردن خطا های احتمالی
add_action( 'register_post', 'ts_check_extra_register_fields', 10, 3 );
function ts_check_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>!خطا</strong>: پسوردها هماهنگ نیست" );
}
if ( strlen( $_POST['password'] ) < 6 ) {
$errors->add( 'password_too_short', "<strong>!خطا</strong>: رمز عبور باید بیشتر از 6 حزف باشد" );
}
}

// ثبت رمز عبور در دیتابیس

add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id ){
$userdata = array();
$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}

// نمایش پیام کامل شدن ثبت نام

add_filter( 'gettext', 'ts_edit_password_email_text' );
function ts_edit_password_email_text ( $text ) {
if ( $text == 'پسورد برای شما ایمیل خواهد شد' ) {
$text = 'اگر فیلد پسورد را خالی گذاشته اید. پسورد برای شما جنریت خواهد شد. رمز عبور باید بیش از ۵ حرف باشد.';
}
return $text;
}

?>
 

Mohammad

مدیر انجمن
پرسنل مدیریت
لطفا صبر کنید! حداقل برای دریافت پاسخ 24 ساعت صبر کنید

لطفا قوانین را رعایت کنید. انتقال یافت انجمن پرسش و پاسخ.

توضیحاتت جالبه. میگی هیچ مشکلی نداره فقط پسوردی که کاربر انتخاب میکنه رو نمیفرسته و پسورد رو خود وردپرس میفرسته؟

خب این کار نمیکنه دیگه... کلش مشکله...

 

mili1374

کاربر عضو
لطفا صبر کنید! حداقل برای دریافت پاسخ 24 ساعت صبر کنیدلطفا قوانین را رعایت کنید. انتقال یافت انجمن پرسش و پاسخ.

توضیحاتت جالبه. میگی هیچ مشکلی نداره فقط پسوردی که کاربر انتخاب میکنه رو نمیفرسته و پسورد رو خود وردپرس میفرسته؟

خب این کار نمیکنه دیگه... کلش مشکله...
نه اتفاقا کار میکنه یعنی یوزر پسوردی که خودش میزنه رو ورد پرس قبول میکنه اما بطور پیشفرض ورد پرس یک ایمی حاوی پسورد مجدد برای کاربر ایمی میکنه که اون پسوردی که میفرسته با اونیکه خودش انتخاب کرده مغایرت داره من میخوام پسرودی که خود یوز انتخاب میکنه رو بفرسته نه همونی که خود ورد پرس جنریت میکنه

 

mili1374

کاربر عضو
نه اتفاقا کار میکنه یعنی یوزر پسوردی که خودش میزنه رو ورد پرس قبول میکنه اما بطور پیشفرض ورد پرس یک ایمی حاوی پسورد مجدد برای کاربر ایمی میکنه که اون پسوردی که میفرسته با اونیکه خودش انتخاب کرده مغایرت داره من میخوام پسرودی که خود یوز انتخاب میکنه رو بفرسته نه همونی که خود ورد پرس جنریت میکنه
Loop

آقا محمد 24 ساعت ;) بیشتر شدا :D

 
بالا