SlideShare a Scribd company logo
1 of 20
Download to read offline
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫عالی‬‫ت‬ ‫سمه‬‫ب‬
‫ش‬‫موز‬‫آ‬ ‫اله‬‫مق‬ ‫وان‬‫عن‬
‫وردپرس‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫جایگزین‬
‫وشط‬‫ت‬ ‫ده‬‫ش‬ ‫ماده‬‫آ‬ ‫و‬ ‫ه‬‫هی‬‫ت‬
‫وردپرس‬ ‫مدرسه‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
.‫دوستان‬ ‫سالم‬‫نحوه‬ ‫قبلی‬ ‫مقاله‬ ‫در‬‫وردپرس‬ ‫فرض‬ ‫پیش‬ ‫الگین‬ ‫صفحه‬ ‫کردن‬ ‫جایگزین‬‫ر‬‫ا‬
‫در‬ ‫عزیز‬ ‫کاربران‬ ‫درخواست‬ ‫به‬ ‫و‬ ‫دادیم‬ ‫آموزش‬‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫قصد‬ ‫مقاله‬ ‫این‬
.‫داریم‬ ‫را‬ ‫وردپرس‬ ‫رمز‬ ‫فراموشی‬
‫کلی‬ ‫طور‬ ‫به‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫و‬ ‫ساده‬ ‫ای‬ ‫صفحه‬ ‫وردپرس‬ ‫در‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬‫زی‬ ‫مراحل‬‫ر‬
‫کند‬ ‫می‬ ‫دنبال‬ ‫را‬:
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
1–‫ایم‬ ‫یا‬ ‫و‬ ‫کاربری‬ ‫نام‬ ‫کردن‬ ‫وارد‬ ‫با‬ ‫کاربر‬‫ی‬‫خود‬ ‫ل‬،.‫میکند‬ ‫ارسال‬ ‫را‬ ‫خود‬ ‫رمز‬ ‫تغییر‬ ‫درخواست‬
2–( ‫موقت‬ ‫کلید‬ ‫یک‬token‫لینک‬ ‫یک‬ ‫و‬ ‫شده‬ ‫ذخیره‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫و‬ ‫تولید‬ ‫کاربر‬ ‫برای‬ )
.‫شود‬ ‫می‬ ‫ایمیل‬ ‫کاربر‬ ‫برای‬ ‫کلید‬ ‫این‬ ‫شامل‬
3–.‫کند‬ ‫می‬ ‫کلیک‬ ‫ایمیل‬ ‫در‬ ‫موجود‬ ‫لینک‬ ‫روی‬ ‫و‬ ‫کرده‬ ‫چک‬ ‫را‬ ‫ایمیل‬ ‫کاربر‬
4–‫اعت‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫شده‬ ‫ذخیره‬ ‫داده‬ ‫با‬ ‫موقت‬ ‫کلید‬ ، ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫در‬‫س‬ ‫بار‬‫نجی‬
.‫شود‬ ‫می‬ ‫داده‬ ‫رمز‬ ‫تغییر‬ ‫اجازه‬ ‫کاربر‬ ‫به‬ ‫بودن‬ ‫یکی‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شده‬
‫رمز‬ ‫که‬ ‫کاربری‬ ‫ورورد‬ ‫با‬ ‫رمز‬ ‫تغییر‬ ‫چرخه‬‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫کرده‬ ‫فراموش‬ ‫را‬ ‫خود‬ ‫عبور‬
‫لینک‬ ‫طریق‬ ‫از‬ ‫عبور‬login.php?action=lostpassword-wp
‫این‬ ‫در‬ ،‫میشود‬ ‫شروع‬ ‫شده‬ ‫گرفته‬ ‫قرار‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫که‬‫جای‬ ‫به‬ ‫کاربر‬ ‫که‬ ‫است‬ ‫الزم‬ ‫مرحله‬
.‫شود‬ ‫روبرو‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫با‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬
‫پوسته‬ ‫از‬ ‫آموزش‬ ‫این‬ ‫برای‬ ‫ما‬ ‫که‬ ‫بگم‬ ‫باید‬ ‫آموزش‬ ‫شروع‬ ‫از‬ ‫قبل‬twentyseventeen‫ک‬‫ه‬
.‫کردیم‬ ‫استفاده‬ ‫هست‬ ‫وردپرس‬ ‫فرض‬ ‫پیش‬ ‫های‬ ‫پوسته‬ ‫از‬
‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫طراحی‬:
‫مسیر‬ ‫به‬ ‫ابتدا‬ ‫در‬‫پوسته‬‫فایل‬ ‫یک‬ ‫و‬ ‫رفته‬php‫نام‬ ‫به‬custom-lost-password.php
‫کدهای‬ ‫سپس‬ ‫و‬ ‫میسازیم‬Html.‫میکنیم‬ ‫ذخیره‬ ‫و‬ ‫کرده‬ ‫اضافه‬ ‫شده‬ ‫ساخته‬ ‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
<?php
// template name: Lost Password
get_header();?>
<div class="container">
<div class="box-center-form">
<h1 class="box-heading">
<?php _e('‫عبور‬ ‫رمز‬ ‫,'فراموش‬ 'wpschool-login' ); ?>
</h1>
<div class="login-form-container">
<?php if(is_user_logged_in()) {
echo _e('‫د‬ ‫ا‬ ‫شده‬ ‫ن‬ ‫الگ‬ ‫حاضر‬ ‫حال‬ ‫در‬ ‫شما‬ ، ‫گرام‬ ‫,'.کاربر‬
'wpschool-login' );
} else { ?>
<form class="lostpasswordform" action="<?php echo
wp_lostpassword_url(); ?>" method="post">
<div>
<input type="email" autocomplete="off" name="user_login"
id="user_login" placeholder="<?php _e('‫د‬ ‫کن‬ ‫وارد‬ ‫را‬ ‫خود‬ ‫ل‬ ‫م‬ ‫,'ا‬ 'wpschool-login' ); ?>"/>
</div>
<input type="submit" name="submit" class="lostpassword-
button" value="<?php _e('‫عبور‬ ‫رمز‬ ‫اب‬ ‫,'باز‬ 'wpschool-login' ); ?>" />
</form>
<?php } ?>
</div>
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫ساده‬ ‫فرم‬ ‫یک‬ ‫از‬ ‫صفحه‬ ‫این‬‫شده‬ ‫تشکیل‬‫خطای‬ ‫پیغام‬ ‫باشد‬ ‫کرده‬ ‫الگین‬ ‫قبل‬ ‫از‬ ‫کاربر‬ ‫اگر‬ ،
‫ایمیل‬ ‫دریافت‬ ‫جهت‬ ‫ورودی‬ ‫یک‬ ‫یا‬ ‫فرمی‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬ ‫و‬ ‫داده‬ ‫نمایش‬ ‫کاربر‬ ‫به‬ ‫مناسب‬
.‫میدهد‬ ‫نمایش‬ ‫کاربر‬ ‫به‬
‫کدهای‬php‫در‬ ‫مختلف‬ ‫شرایط‬ ‫در‬ ‫مناسب‬ ‫خطای‬ ‫های‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬ ‫صفحه‬ ‫انتهای‬
.‫اند‬ ‫شده‬ ‫گرفته‬ ‫نظر‬
‫کد‬ ‫صفحه‬ ‫زیبایی‬ ‫جهت‬‫های‬css‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬style.css‫میکنیم‬ ‫اضافه‬ ‫قالب‬ ‫در‬ ‫موجود‬
‫دوباره‬ ‫و‬ ‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫وردپرس‬ ‫الگین‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫در‬ ‫را‬ ‫کدها‬ ‫این‬ ‫از‬ ‫(برخی‬
‫میکنیم‬ ‫ذکر‬ ‫اینجا‬ ‫در‬)
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
.container {
padding-right: 15px;
padding-left: 15px;
padding-top: 15px;
margin-right: auto;
margin-left: auto;
width: 100%;
}
.box-center-form {
width: 30%;
margin-left: auto;
margin-right: auto;
float: none;
background: #f1f0f0;
padding: 1.5em!important;
position: relative;
margin-bottom: 1.5em;
}
.box-heading{
font-size: 23px;
line-height: 1.575em;
font-weight: 400;
text-align: center;
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫عبور‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫برای‬ ‫برگه‬ ‫یک‬ ‫که‬ ‫هست‬ ‫نیاز‬ ‫حاال‬.‫کنیم‬ ‫ایجاد‬‫در‬ ‫کار‬ ‫این‬ ‫برای‬
‫و‬ ‫رفته‬ ‫ها‬ ‫برگه‬ ‫قسمت‬ ‫به‬ ‫وردپرس‬ ‫مدیریت‬ ‫پیشخوان‬‫برگه‬ ‫یک‬ ، ‫برگه‬ ‫افزودن‬ ‫روی‬ ‫کلیک‬ ‫با‬
.‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫جدید‬
‫عبارت‬ ‫برگه‬ ‫افزودن‬ ‫صفحه‬ ‫در‬lost-password‫ویژگی‬ ‫قسمت‬ ‫از‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تایپ‬ ‫را‬
‫گزینه‬ ‫قالب‬ ‫بخش‬ ‫برگه‬ ‫های‬Lost Password‫فایل‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫نامی‬ ‫(همان‬custom-
lost-password.php.‫کنیم‬ ‫می‬ ‫کلیک‬ ‫را‬ ‫انتشار‬ ‫گزینه‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ )‫بودیم‬ ‫کرده‬ ‫وارد‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫داده‬ ‫نمایش‬ ‫شما‬ ‫برای‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫صفحه‬ ‫باید‬ ‫باشید‬ ‫بوده‬ ‫همراه‬ ‫ما‬ ‫با‬ ‫آموزش‬ ‫اینجای‬ ‫تا‬ ‫اگر‬
:‫شود‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫صفحه‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫سراغ‬ ‫به‬ ‫بریم‬ ‫حاال‬‫ا‬ ،‫و‬‫فرض‬ ‫پیش‬ ‫صفحه‬ ‫که‬ ‫کنیم‬ ‫کاری‬ ‫باید‬ ‫ل‬
‫بشه‬ ‫هدایت‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫به‬ ‫کاربر‬ ‫و‬ ‫نشه‬ ‫داده‬ ‫نمایش‬ ‫رمز‬ ‫فراموشی‬.
add_action('login_form_lostpassword','redirect_to_custom_lostpassword');
function redirect_to_custom_lostpassword() {
if ( 'GET' == $_SERVER['REQUEST_METHOD'] ) {
if ( is_user_logged_in() ) {
redirect_logged_in_user();
exit;
}
wp_redirect( home_url( 'lost-password' ) );
exit;
}
}
‫فایل‬ ‫به‬ ‫باال‬ ‫کد‬ ‫کردن‬ ‫اضافه‬ ‫با‬functions.php‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫وارد‬ ‫بخواد‬ ‫کاربر‬ ‫وقتی‬
!‫میشه‬ ‫هدایت‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫به‬ ‫بشه‬ ‫وردپرس‬ ‫فرض‬ ‫پیش‬
‫تابع‬ ‫باال‬ ‫کدهای‬ ‫در‬redirect_logged_in_user‫الگین‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫()در‬
‫در‬ ‫رو‬ ‫تابع‬ ‫این‬ ‫باید‬ ‫باشید‬ ‫کرده‬ ‫دنبال‬ ‫رو‬ ‫ما‬ ‫های‬ ‫آموزش‬ ‫اگر‬ ‫و‬ ‫شد‬ ‫داده‬ ‫توضیح‬ ‫وردپرس‬
‫فای‬ ‫در‬ ‫حاضر‬ ‫حال‬‫ل‬functions.php‫تابع‬ ‫این‬ ‫با‬ ‫که‬ ‫دوستانی‬ ‫اون‬ ‫برای‬ ، ‫باشید‬ ‫داشته‬
:‫میدم‬ ‫قرار‬ ‫زیر‬ ‫در‬ ‫مربوطه‬ ‫کدهای‬ ‫مجدد‬ ‫ندارن‬ ‫آشنایی‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
function redirect_logged_in_user( $redirect_to = null ) {
$user = wp_get_current_user();
if ( user_can( $user, 'manage_options' ) ) {
if ( $redirect_to ) {
wp_safe_redirect( $redirect_to );
} else {
wp_redirect( admin_url() );
}
} else {
wp_redirect( home_url() );
}
}
‫اعتبارسنجی‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫باید‬ ‫شد‬ ‫راهنمایی‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫کاربر‬ ‫اینکه‬ ‫از‬ ‫بعد‬
‫فایل‬ ‫ادامه‬ ‫به‬ ‫هم‬ ‫را‬ ‫رمز‬ ‫تغییر‬ ‫ایمیل‬ ‫ارسال‬ ‫و‬ ‫کاربر‬functions.php.‫کنیم‬ ‫اضافه‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
add_action( 'login_form_lostpassword', 'do_password_lost');
function do_password_lost() {
if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) {
$errors = retrieve_password();
if ( is_wp_error( $errors ) ) {
// Errors found
$redirect_url = home_url( 'lost-password' );
$redirect_url = add_query_arg( 'errors', join( ',', $errors->get_error_codes() ),
$redirect_url );
} else {
// Email sent
$redirect_url = home_url( 'user-login' );
$redirect_url = add_query_arg( 'checkemail', 'confirm', $redirect_url );
}
wp_redirect( $redirect_url );
exit;
}
}
‫خیر‬ ‫یا‬ ‫دارد‬ ‫وجود‬ ‫دریافتی‬ ‫ایمیل‬ ‫با‬ ‫کاربری‬ ‫که‬ ‫میکند‬ ‫چک‬ ‫باال‬ ‫تابع‬‫برای‬ ‫وجود‬ ‫صورت‬ ‫در‬ ،
( ‫الگین‬ ‫صفحه‬ ‫به‬ ‫را‬ ‫کاربر‬ ‫سپس‬ ‫و‬ ‫میکنید‬ ‫ارسال‬ ‫رمز‬ ‫تغییر‬ ‫لینک‬ ‫حاوی‬ ‫ایمیلی‬ ‫کاربر‬user-
login‫هدایت‬ ‫ساختیم‬ ‫قبل‬ ‫آموزش‬ ‫در‬ ‫که‬ )‫میدهد‬ ‫نمایش‬ ‫کاربر‬ ‫به‬ ‫مناسبی‬ ‫پیام‬ ‫و‬ ‫کرده‬‫و‬
( ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫در‬ ‫خطا‬ ‫بروز‬ ‫صورت‬ ‫در‬lost-password)‫می‬ ‫نمایش‬ ‫را‬ ‫خطا‬ ‫آن‬
.‫دهد‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫الگین‬ ‫صفحه‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫باید‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫مناسب‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬(custom-
login.php): ‫کنیم‬ ‫اضافه‬
<?php if (isset( $_REQUEST['checkemail'] ) && $_REQUEST['checkemail'] == 'confirm') : ?>
<p class="login-info">
<?php _e( '‫د‬‫کنی‬ ‫چک‬ ‫را‬ ‫خود‬ ‫ایمیل‬ ‫عبور‬ ‫رمز‬ ‫بازیابی‬ ‫جهت‬ ‫,'.لطفا‬ 'personalize-login' ); ?>
</p>
<?php endif; ?>
‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫جهت‬ ‫ارسالی‬ ‫ایمیل‬ ‫سازی‬ ‫سفارشی‬ ‫برای‬
functions.php:‫میکنیم‬ ‫اضافه‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
add_filter('retrieve_password_message','replace_retrieve_password_message', 10, 4 );
function replace_retrieve_password_message($message, $key, $user_login, $user_data ) {
// Create new message
$msg = __( '‫سالم‬ ‫گرامی‬ ‫کاربر‬ ', 'wpschool-login' ) . "rnrn";
$msg .= __( '‫ت‬‫اس‬ ‫شده‬ ‫بت‬ ‫وردپرس‬ ‫مدرسه‬ ‫سایت‬ ‫وب‬ ‫در‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫برای‬ ‫شما‬ ‫جانب‬ ‫از‬ ‫خواستی‬ ‫,'در‬
'wpschool-login' ) . "rnrn";
$msg .= __( "‫بگیرید‬ ‫نادیده‬ ‫را‬ ‫ایمیل‬ ‫این‬ ‫اید‬ ‫نکرده‬ ‫بت‬ ‫را‬ ‫درخواست‬ ‫این‬ ‫شما‬ ‫یا‬ ‫و‬ ‫داده‬ ‫ر‬ ‫استباهی‬ ‫,"اگر‬
'wpschool-login' ) . "rnrn";
$msg .= __( '‫کنید‬ ‫کلیک‬ ‫زیر‬ ‫لینک‬ ‫روی‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫,'جهت‬ 'wpschool-login' ) . "rnrn";
$msg .= site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode(
$user_login ), 'login' ) . "rnrn";
$msg .= __( '‫شما‬ ‫از‬ ‫تشکر‬ ‫,'با‬ 'wpschool-login' ) . "rn";
return $msg;
}
‫فرض‬ ‫پیش‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫به‬ ‫کرد‬ ‫کلیک‬ ‫ایمیل‬ ‫در‬ ‫موجود‬ ‫لینک‬ ‫روی‬ ‫کاربر‬ ‫اینکه‬ ‫از‬ ‫بعد‬
‫سپس‬ ‫و‬ ‫ساخته‬ ‫رمز‬ ‫تغییر‬ ‫برای‬ ‫سفارشی‬ ‫ای‬ ‫صفحه‬ ‫ابتدا‬ ‫باید‬ ، ‫شود‬ ‫می‬ ‫راهنمایی‬ ‫وردپرس‬
‫وردپرس‬ ‫رمز‬ ‫تغییر‬ ‫فرض‬ ‫پیش‬ ‫صفحه‬ ‫جایگزین‬:‫کنیم‬
‫فایل‬ ‫یک‬ ‫ابتدا‬php‫نام‬ ‫با‬custom-reset-password.php‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫و‬ ‫ساخته‬
: ‫میکنیم‬ ‫اضافه‬ ‫صفحه‬ ‫این‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
<?php
// template name: Reset Password
get_header();?>
<div class="container">
<div role="main" class="main">
<div class="box-center-form">
<h1 class="box-heading">
<?php echo _e('‫عبور‬ ‫رمز‬ ‫,'تغییر‬ 'wpschool-login'); ?>
</h1>
<?php if(is_user_logged_in()) {
echo _e('‫د‬ ‫ا‬ ‫شده‬ ‫ن‬ ‫الگ‬ ‫حاضر‬ ‫حال‬ ‫در‬ ‫شما‬ ، ‫گرام‬ ‫,'.کاربر‬ 'wpschool-login' );
} else {?>
<form class="resetpassform" id="resetpassform" action="<?php echo site_url( 'wp-
login.php?action=resetpass' ); ?>" method="post" autocomplete="off">
<input type="hidden" id="user_login" name="rp_login" value="<?php echo
esc_attr( $_REQUEST['login'] ); ?>" autocomplete="off" />
<input type="hidden" name="rp_key" value="<?php echo esc_attr(
$_REQUEST['key'] ); ?>" />
<p>
<input id="pass1" type="password" name="pass1" class="is-error"
autocomplete="off" placeholder="<?php echo _e('‫د‬ ‫جد‬ ‫عبور‬ ‫,'رمز‬ 'wpschool-login'); ?>"
required />
</p>
<p>
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫پ‬ ‫در‬ ‫جدید‬ ‫برگه‬ ‫یک‬ ‫باید‬ ‫حاال‬.‫کنیم‬ ‫ایجاد‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫برای‬ ‫وردپرس‬ ‫یشخوان‬
‫عبارت‬ ‫برگه‬ ‫افزودن‬ ‫صفحه‬ ‫در‬reset-password‫ویژگی‬ ‫قسمت‬ ‫از‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تایپ‬ ‫را‬
‫گزینه‬ ‫قالب‬ ‫بخش‬ ‫برگه‬ ‫های‬Reset Password‫فایل‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫نامی‬ ‫(همان‬custom-
reset-password.php.‫کنیم‬ ‫می‬ ‫کلیک‬ ‫را‬ ‫انتشار‬ ‫گزینه‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ )‫بودیم‬ ‫کرده‬ ‫وارد‬
‫روی‬ ‫کلیک‬ ‫با‬ ‫که‬ ‫باشد‬ ‫می‬ ‫کاربر‬ ‫از‬ ‫جدید‬ ‫عبور‬ ‫رمز‬ ‫دریافت‬ ‫جهت‬ ‫ورودی‬ ‫دو‬ ‫شامل‬ ‫صفحه‬ ‫این‬
‫کاربر‬ ‫به‬ ‫مناسب‬ ‫پیام‬ ‫خطا‬ ‫وجود‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شده‬ ‫انجام‬ ‫اعتبارسنجی‬ ‫ابتدا‬ ‫ذخیره‬ ‫دکمه‬
.‫میدهد‬ ‫نمایش‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫صفحه‬ ‫طراحی‬ ‫از‬ ‫بعد‬‫جهت‬ ‫الزم‬ ‫کدهای‬ ‫باید‬‫صفحه‬ ‫با‬ ‫خود‬ ‫سفارشی‬ ‫صفحه‬ ‫کردن‬ ‫جایگزین‬
‫فایل‬ ‫به‬ ‫را‬ ‫وردپرس‬ ‫رمز‬ ‫تغییر‬ ‫فرض‬ ‫پیش‬functions.php: ‫کنیم‬ ‫اضافه‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
add_action( 'login_form_rp', 'redirect_to_custom_password_reset');
add_action( 'login_form_resetpass','redirect_to_custom_password_reset');
function redirect_to_custom_password_reset() {
if ( 'GET' == $_SERVER['REQUEST_METHOD'] ) {
// Verify key / login combo
$user = check_password_reset_key( $_REQUEST['key'], $_REQUEST['login']);
if ( ! $user || is_wp_error( $user ) ) {
if ( $user && $user->get_error_code() === 'expired_key' ) {
wp_redirect( home_url( 'user-login?login=expiredkey' ));
} else {
wp_redirect( home_url( 'user-login?login=invalidkey' ));
}
exit;
}
$redirect_url = home_url( 'reset-password' );
$redirect_url = add_query_arg( 'login', esc_attr( $_REQUEST['login'] ), $redirect_url );
$redirect_url = add_query_arg( 'key', esc_attr( $_REQUEST['key'] ), $redirect_url );
wp_redirect( $redirect_url );
exit;
}
}
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫شود‬ ‫می‬ ‫چک‬ ‫رمز‬ ‫تغییر‬ ‫موقت‬ ‫کلید‬ ‫بود‬ ‫معتبر‬ ‫سپس‬ ‫و‬ ‫کاربر‬ ‫بودن‬ ‫معتبر‬ ‫ابتدا‬ ‫باال‬ ‫کد‬ ‫در‬
‫کلید‬ ‫یا‬ ‫و‬ ‫نباشد‬ ‫معتبر‬ ‫کاربر‬ ‫که‬ ‫صورتی‬ ‫در‬‫شده‬ ‫هدایت‬ ‫الگین‬ ‫صفحه‬ ‫به‬ ‫باشد‬ ‫شده‬ ‫منقضی‬
‫پیام‬ ‫تا‬‫هدایت‬ ‫سفارشی‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫به‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫و‬ ‫شود‬ ‫داده‬ ‫نمایش‬ ‫مناسب‬
.‫میشود‬
‫به‬ ‫را‬ ‫زیر‬ ‫کد‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫مناسب‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬switch..case‫صفحه‬ ‫در‬ ‫موجود‬
: ‫میکنیم‬ ‫اضافه‬ ‫الگین‬
case 'expiredkey':
case 'invalidkey':
$html_out= $html_out'<li>'.__( '‫ت‬‫اس‬ ‫شده‬ ‫منقضی‬ ‫یا‬ ‫و‬ ‫نبوده‬ ‫معتبر‬ ‫پسورد‬ ‫تغییر‬ ‫,'لینک‬ 'wpschool-
login' ).'</li>';
break;
: ‫کنیم‬ ‫اضافه‬ ‫توابع‬ ‫ادامه‬ ‫به‬ ‫را‬ ‫رمز‬ ‫تغییر‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫تا‬ ‫رسیده‬ ‫اون‬ ‫وقت‬ ‫حاال‬
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
function do_password_reset() {
if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) {
$rp_key = $_REQUEST['rp_key'];
$rp_login = $_REQUEST['rp_login'];
$user = check_password_reset_key( $rp_key, $rp_login );
if ( ! $user || is_wp_error( $user ) ) {
if ( $user && $user->get_error_code() === 'expired_key' ) {
wp_redirect( home_url( 'user-login?login=expiredkey' ) );
} else {
wp_redirect( home_url( 'user-login?login=invalidkey' ) );
}
exit;
}
if ( isset( $_POST['pass1'] ) ) {
if ( $_POST['pass1'] != $_POST['pass2'] ) {
// Passwords don't match
$redirect_url = home_url( 'reset-password' );
$redirect_url = add_query_arg( 'key', $rp_key, $redirect_url );
$redirect_url = add_query_arg( 'login', $rp_login, $redirect_url )
$redirect_url = add_query_arg( 'error', 'password_reset_mismatch', $redirect_url );
wp_redirect( $redirect_url );
exit;
}
www.wpschool.ir
.‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬
‫کاربر‬ ‫بودن‬ ‫معتبر‬ ‫ابتدا‬ ‫نیز‬ ‫اینجا‬ ‫در‬‫و‬‫تابع‬ ‫توسط‬ ‫رمز‬ ‫تغییر‬ ‫موقت‬ ‫کلید‬
check_password_reset_key‫ب‬‫وارد‬ ‫عبور‬ ‫رمز‬ ‫اعتبار‬ ‫تایید‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شود‬ ‫می‬ ‫ررسی‬
‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫کاربر‬ ‫توسط‬ ‫شده‬.‫میگیرد‬‫صفحه‬ ‫در‬ ‫خطا‬ ‫وجود‬ ‫صورت‬ ‫در‬reset-
password‫داده‬ ‫تغییر‬ ‫کاربر‬ ‫عبور‬ ‫رمز‬ ‫باشد‬ ‫نداشته‬ ‫وجود‬ ‫خطایی‬ ‫اگر‬ ‫و‬ ‫شده‬ ‫داده‬ ‫نمایش‬
‫شد‬‫صفحه‬ ‫در‬ ‫و‬ ‫ه‬user-login.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫رمز‬ ‫تغییر‬ ‫پیام‬ ‫کاربر‬ ‫به‬
( ‫الگین‬ ‫صفحه‬ ‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کد‬ ‫باید‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫رمز‬ ‫تغییر‬ ‫پیام‬ ‫نمایش‬ ‫برای‬custom-
login.php: ‫کنیم‬ ‫اضافه‬ )
<?php if (isset( $_REQUEST['password'] ) && $_REQUEST['password'] == 'changed') : ?>
<p class="login-info">
<?php _e( '‫د‬‫کر‬ ‫پیدا‬ ‫تغییر‬ ‫موفقیت‬ ‫با‬ ‫شما‬ ‫عبور‬ ‫,'.رمز‬ 'wpschool-login' ); ?>
</p>
<?php endif; ?>
‫با‬ ‫نموده‬ ‫خود‬ ‫رمز‬ ‫تغییر‬ ‫به‬ ‫اقدام‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫مراجعه‬ ‫با‬ ‫تواند‬ ‫می‬ ‫کاربر‬ ‫حاال‬
‫روی‬ ‫کلیک‬ ‫و‬ ‫ایمیل‬ ‫دریافت‬‫موج‬ ‫لینک‬‫و‬‫ایمیل‬ ‫در‬ ‫د‬،‫رمز‬‫عبور‬.‫دهد‬ ‫تغییر‬ ‫را‬ ‫خود‬
، ‫هستم‬ ‫شما‬ ‫پاسخگوی‬ ‫ها‬ ‫کامنت‬ ‫در‬ ‫داشت‬ ‫وجود‬ ‫آموزش‬ ‫در‬ ‫مشکلی‬ ‫یا‬ ‫و‬ ‫سوال‬ ‫اگر‬
‫باشید‬ ‫موفق‬.
‫وردپرس‬ ‫در‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬
‫پایان‬

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

جایگزین صفحه فراموشی رمز وردپرس

  • 1. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫عالی‬‫ت‬ ‫سمه‬‫ب‬ ‫ش‬‫موز‬‫آ‬ ‫اله‬‫مق‬ ‫وان‬‫عن‬ ‫وردپرس‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫جایگزین‬ ‫وشط‬‫ت‬ ‫ده‬‫ش‬ ‫ماده‬‫آ‬ ‫و‬ ‫ه‬‫هی‬‫ت‬ ‫وردپرس‬ ‫مدرسه‬
  • 2. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ .‫دوستان‬ ‫سالم‬‫نحوه‬ ‫قبلی‬ ‫مقاله‬ ‫در‬‫وردپرس‬ ‫فرض‬ ‫پیش‬ ‫الگین‬ ‫صفحه‬ ‫کردن‬ ‫جایگزین‬‫ر‬‫ا‬ ‫در‬ ‫عزیز‬ ‫کاربران‬ ‫درخواست‬ ‫به‬ ‫و‬ ‫دادیم‬ ‫آموزش‬‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫قصد‬ ‫مقاله‬ ‫این‬ .‫داریم‬ ‫را‬ ‫وردپرس‬ ‫رمز‬ ‫فراموشی‬ ‫کلی‬ ‫طور‬ ‫به‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫و‬ ‫ساده‬ ‫ای‬ ‫صفحه‬ ‫وردپرس‬ ‫در‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬‫زی‬ ‫مراحل‬‫ر‬ ‫کند‬ ‫می‬ ‫دنبال‬ ‫را‬:
  • 3. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ 1–‫ایم‬ ‫یا‬ ‫و‬ ‫کاربری‬ ‫نام‬ ‫کردن‬ ‫وارد‬ ‫با‬ ‫کاربر‬‫ی‬‫خود‬ ‫ل‬،.‫میکند‬ ‫ارسال‬ ‫را‬ ‫خود‬ ‫رمز‬ ‫تغییر‬ ‫درخواست‬ 2–( ‫موقت‬ ‫کلید‬ ‫یک‬token‫لینک‬ ‫یک‬ ‫و‬ ‫شده‬ ‫ذخیره‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫و‬ ‫تولید‬ ‫کاربر‬ ‫برای‬ ) .‫شود‬ ‫می‬ ‫ایمیل‬ ‫کاربر‬ ‫برای‬ ‫کلید‬ ‫این‬ ‫شامل‬ 3–.‫کند‬ ‫می‬ ‫کلیک‬ ‫ایمیل‬ ‫در‬ ‫موجود‬ ‫لینک‬ ‫روی‬ ‫و‬ ‫کرده‬ ‫چک‬ ‫را‬ ‫ایمیل‬ ‫کاربر‬ 4–‫اعت‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫شده‬ ‫ذخیره‬ ‫داده‬ ‫با‬ ‫موقت‬ ‫کلید‬ ، ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫در‬‫س‬ ‫بار‬‫نجی‬ .‫شود‬ ‫می‬ ‫داده‬ ‫رمز‬ ‫تغییر‬ ‫اجازه‬ ‫کاربر‬ ‫به‬ ‫بودن‬ ‫یکی‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شده‬ ‫رمز‬ ‫که‬ ‫کاربری‬ ‫ورورد‬ ‫با‬ ‫رمز‬ ‫تغییر‬ ‫چرخه‬‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫کرده‬ ‫فراموش‬ ‫را‬ ‫خود‬ ‫عبور‬ ‫لینک‬ ‫طریق‬ ‫از‬ ‫عبور‬login.php?action=lostpassword-wp ‫این‬ ‫در‬ ،‫میشود‬ ‫شروع‬ ‫شده‬ ‫گرفته‬ ‫قرار‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫که‬‫جای‬ ‫به‬ ‫کاربر‬ ‫که‬ ‫است‬ ‫الزم‬ ‫مرحله‬ .‫شود‬ ‫روبرو‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫با‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫پوسته‬ ‫از‬ ‫آموزش‬ ‫این‬ ‫برای‬ ‫ما‬ ‫که‬ ‫بگم‬ ‫باید‬ ‫آموزش‬ ‫شروع‬ ‫از‬ ‫قبل‬twentyseventeen‫ک‬‫ه‬ .‫کردیم‬ ‫استفاده‬ ‫هست‬ ‫وردپرس‬ ‫فرض‬ ‫پیش‬ ‫های‬ ‫پوسته‬ ‫از‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫طراحی‬: ‫مسیر‬ ‫به‬ ‫ابتدا‬ ‫در‬‫پوسته‬‫فایل‬ ‫یک‬ ‫و‬ ‫رفته‬php‫نام‬ ‫به‬custom-lost-password.php ‫کدهای‬ ‫سپس‬ ‫و‬ ‫میسازیم‬Html.‫میکنیم‬ ‫ذخیره‬ ‫و‬ ‫کرده‬ ‫اضافه‬ ‫شده‬ ‫ساخته‬ ‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬
  • 4. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ <?php // template name: Lost Password get_header();?> <div class="container"> <div class="box-center-form"> <h1 class="box-heading"> <?php _e('‫عبور‬ ‫رمز‬ ‫,'فراموش‬ 'wpschool-login' ); ?> </h1> <div class="login-form-container"> <?php if(is_user_logged_in()) { echo _e('‫د‬ ‫ا‬ ‫شده‬ ‫ن‬ ‫الگ‬ ‫حاضر‬ ‫حال‬ ‫در‬ ‫شما‬ ، ‫گرام‬ ‫,'.کاربر‬ 'wpschool-login' ); } else { ?> <form class="lostpasswordform" action="<?php echo wp_lostpassword_url(); ?>" method="post"> <div> <input type="email" autocomplete="off" name="user_login" id="user_login" placeholder="<?php _e('‫د‬ ‫کن‬ ‫وارد‬ ‫را‬ ‫خود‬ ‫ل‬ ‫م‬ ‫,'ا‬ 'wpschool-login' ); ?>"/> </div> <input type="submit" name="submit" class="lostpassword- button" value="<?php _e('‫عبور‬ ‫رمز‬ ‫اب‬ ‫,'باز‬ 'wpschool-login' ); ?>" /> </form> <?php } ?> </div>
  • 5. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫ساده‬ ‫فرم‬ ‫یک‬ ‫از‬ ‫صفحه‬ ‫این‬‫شده‬ ‫تشکیل‬‫خطای‬ ‫پیغام‬ ‫باشد‬ ‫کرده‬ ‫الگین‬ ‫قبل‬ ‫از‬ ‫کاربر‬ ‫اگر‬ ، ‫ایمیل‬ ‫دریافت‬ ‫جهت‬ ‫ورودی‬ ‫یک‬ ‫یا‬ ‫فرمی‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫در‬ ‫و‬ ‫داده‬ ‫نمایش‬ ‫کاربر‬ ‫به‬ ‫مناسب‬ .‫میدهد‬ ‫نمایش‬ ‫کاربر‬ ‫به‬ ‫کدهای‬php‫در‬ ‫مختلف‬ ‫شرایط‬ ‫در‬ ‫مناسب‬ ‫خطای‬ ‫های‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬ ‫صفحه‬ ‫انتهای‬ .‫اند‬ ‫شده‬ ‫گرفته‬ ‫نظر‬ ‫کد‬ ‫صفحه‬ ‫زیبایی‬ ‫جهت‬‫های‬css‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬style.css‫میکنیم‬ ‫اضافه‬ ‫قالب‬ ‫در‬ ‫موجود‬ ‫دوباره‬ ‫و‬ ‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫وردپرس‬ ‫الگین‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫در‬ ‫را‬ ‫کدها‬ ‫این‬ ‫از‬ ‫(برخی‬ ‫میکنیم‬ ‫ذکر‬ ‫اینجا‬ ‫در‬)
  • 6. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ .container { padding-right: 15px; padding-left: 15px; padding-top: 15px; margin-right: auto; margin-left: auto; width: 100%; } .box-center-form { width: 30%; margin-left: auto; margin-right: auto; float: none; background: #f1f0f0; padding: 1.5em!important; position: relative; margin-bottom: 1.5em; } .box-heading{ font-size: 23px; line-height: 1.575em; font-weight: 400; text-align: center;
  • 7. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫عبور‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫برای‬ ‫برگه‬ ‫یک‬ ‫که‬ ‫هست‬ ‫نیاز‬ ‫حاال‬.‫کنیم‬ ‫ایجاد‬‫در‬ ‫کار‬ ‫این‬ ‫برای‬ ‫و‬ ‫رفته‬ ‫ها‬ ‫برگه‬ ‫قسمت‬ ‫به‬ ‫وردپرس‬ ‫مدیریت‬ ‫پیشخوان‬‫برگه‬ ‫یک‬ ، ‫برگه‬ ‫افزودن‬ ‫روی‬ ‫کلیک‬ ‫با‬ .‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫جدید‬ ‫عبارت‬ ‫برگه‬ ‫افزودن‬ ‫صفحه‬ ‫در‬lost-password‫ویژگی‬ ‫قسمت‬ ‫از‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تایپ‬ ‫را‬ ‫گزینه‬ ‫قالب‬ ‫بخش‬ ‫برگه‬ ‫های‬Lost Password‫فایل‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫نامی‬ ‫(همان‬custom- lost-password.php.‫کنیم‬ ‫می‬ ‫کلیک‬ ‫را‬ ‫انتشار‬ ‫گزینه‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ )‫بودیم‬ ‫کرده‬ ‫وارد‬
  • 8. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫داده‬ ‫نمایش‬ ‫شما‬ ‫برای‬ ‫زیر‬ ‫شکل‬ ‫به‬ ‫صفحه‬ ‫باید‬ ‫باشید‬ ‫بوده‬ ‫همراه‬ ‫ما‬ ‫با‬ ‫آموزش‬ ‫اینجای‬ ‫تا‬ ‫اگر‬ :‫شود‬
  • 9. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫صفحه‬ ‫این‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫سراغ‬ ‫به‬ ‫بریم‬ ‫حاال‬‫ا‬ ،‫و‬‫فرض‬ ‫پیش‬ ‫صفحه‬ ‫که‬ ‫کنیم‬ ‫کاری‬ ‫باید‬ ‫ل‬ ‫بشه‬ ‫هدایت‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫به‬ ‫کاربر‬ ‫و‬ ‫نشه‬ ‫داده‬ ‫نمایش‬ ‫رمز‬ ‫فراموشی‬. add_action('login_form_lostpassword','redirect_to_custom_lostpassword'); function redirect_to_custom_lostpassword() { if ( 'GET' == $_SERVER['REQUEST_METHOD'] ) { if ( is_user_logged_in() ) { redirect_logged_in_user(); exit; } wp_redirect( home_url( 'lost-password' ) ); exit; } } ‫فایل‬ ‫به‬ ‫باال‬ ‫کد‬ ‫کردن‬ ‫اضافه‬ ‫با‬functions.php‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫وارد‬ ‫بخواد‬ ‫کاربر‬ ‫وقتی‬ !‫میشه‬ ‫هدایت‬ ‫ما‬ ‫سفارشی‬ ‫صفحه‬ ‫به‬ ‫بشه‬ ‫وردپرس‬ ‫فرض‬ ‫پیش‬ ‫تابع‬ ‫باال‬ ‫کدهای‬ ‫در‬redirect_logged_in_user‫الگین‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫()در‬ ‫در‬ ‫رو‬ ‫تابع‬ ‫این‬ ‫باید‬ ‫باشید‬ ‫کرده‬ ‫دنبال‬ ‫رو‬ ‫ما‬ ‫های‬ ‫آموزش‬ ‫اگر‬ ‫و‬ ‫شد‬ ‫داده‬ ‫توضیح‬ ‫وردپرس‬ ‫فای‬ ‫در‬ ‫حاضر‬ ‫حال‬‫ل‬functions.php‫تابع‬ ‫این‬ ‫با‬ ‫که‬ ‫دوستانی‬ ‫اون‬ ‫برای‬ ، ‫باشید‬ ‫داشته‬ :‫میدم‬ ‫قرار‬ ‫زیر‬ ‫در‬ ‫مربوطه‬ ‫کدهای‬ ‫مجدد‬ ‫ندارن‬ ‫آشنایی‬
  • 10. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ function redirect_logged_in_user( $redirect_to = null ) { $user = wp_get_current_user(); if ( user_can( $user, 'manage_options' ) ) { if ( $redirect_to ) { wp_safe_redirect( $redirect_to ); } else { wp_redirect( admin_url() ); } } else { wp_redirect( home_url() ); } } ‫اعتبارسنجی‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫باید‬ ‫شد‬ ‫راهنمایی‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫کاربر‬ ‫اینکه‬ ‫از‬ ‫بعد‬ ‫فایل‬ ‫ادامه‬ ‫به‬ ‫هم‬ ‫را‬ ‫رمز‬ ‫تغییر‬ ‫ایمیل‬ ‫ارسال‬ ‫و‬ ‫کاربر‬functions.php.‫کنیم‬ ‫اضافه‬
  • 11. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ add_action( 'login_form_lostpassword', 'do_password_lost'); function do_password_lost() { if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { $errors = retrieve_password(); if ( is_wp_error( $errors ) ) { // Errors found $redirect_url = home_url( 'lost-password' ); $redirect_url = add_query_arg( 'errors', join( ',', $errors->get_error_codes() ), $redirect_url ); } else { // Email sent $redirect_url = home_url( 'user-login' ); $redirect_url = add_query_arg( 'checkemail', 'confirm', $redirect_url ); } wp_redirect( $redirect_url ); exit; } } ‫خیر‬ ‫یا‬ ‫دارد‬ ‫وجود‬ ‫دریافتی‬ ‫ایمیل‬ ‫با‬ ‫کاربری‬ ‫که‬ ‫میکند‬ ‫چک‬ ‫باال‬ ‫تابع‬‫برای‬ ‫وجود‬ ‫صورت‬ ‫در‬ ، ( ‫الگین‬ ‫صفحه‬ ‫به‬ ‫را‬ ‫کاربر‬ ‫سپس‬ ‫و‬ ‫میکنید‬ ‫ارسال‬ ‫رمز‬ ‫تغییر‬ ‫لینک‬ ‫حاوی‬ ‫ایمیلی‬ ‫کاربر‬user- login‫هدایت‬ ‫ساختیم‬ ‫قبل‬ ‫آموزش‬ ‫در‬ ‫که‬ )‫میدهد‬ ‫نمایش‬ ‫کاربر‬ ‫به‬ ‫مناسبی‬ ‫پیام‬ ‫و‬ ‫کرده‬‫و‬ ( ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫در‬ ‫خطا‬ ‫بروز‬ ‫صورت‬ ‫در‬lost-password)‫می‬ ‫نمایش‬ ‫را‬ ‫خطا‬ ‫آن‬ .‫دهد‬
  • 12. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫الگین‬ ‫صفحه‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫باید‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫مناسب‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬(custom- login.php): ‫کنیم‬ ‫اضافه‬ <?php if (isset( $_REQUEST['checkemail'] ) && $_REQUEST['checkemail'] == 'confirm') : ?> <p class="login-info"> <?php _e( '‫د‬‫کنی‬ ‫چک‬ ‫را‬ ‫خود‬ ‫ایمیل‬ ‫عبور‬ ‫رمز‬ ‫بازیابی‬ ‫جهت‬ ‫,'.لطفا‬ 'personalize-login' ); ?> </p> <?php endif; ?> ‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫جهت‬ ‫ارسالی‬ ‫ایمیل‬ ‫سازی‬ ‫سفارشی‬ ‫برای‬ functions.php:‫میکنیم‬ ‫اضافه‬
  • 13. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ add_filter('retrieve_password_message','replace_retrieve_password_message', 10, 4 ); function replace_retrieve_password_message($message, $key, $user_login, $user_data ) { // Create new message $msg = __( '‫سالم‬ ‫گرامی‬ ‫کاربر‬ ', 'wpschool-login' ) . "rnrn"; $msg .= __( '‫ت‬‫اس‬ ‫شده‬ ‫بت‬ ‫وردپرس‬ ‫مدرسه‬ ‫سایت‬ ‫وب‬ ‫در‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫برای‬ ‫شما‬ ‫جانب‬ ‫از‬ ‫خواستی‬ ‫,'در‬ 'wpschool-login' ) . "rnrn"; $msg .= __( "‫بگیرید‬ ‫نادیده‬ ‫را‬ ‫ایمیل‬ ‫این‬ ‫اید‬ ‫نکرده‬ ‫بت‬ ‫را‬ ‫درخواست‬ ‫این‬ ‫شما‬ ‫یا‬ ‫و‬ ‫داده‬ ‫ر‬ ‫استباهی‬ ‫,"اگر‬ 'wpschool-login' ) . "rnrn"; $msg .= __( '‫کنید‬ ‫کلیک‬ ‫زیر‬ ‫لینک‬ ‫روی‬ ‫عبور‬ ‫رمز‬ ‫تغییر‬ ‫,'جهت‬ 'wpschool-login' ) . "rnrn"; $msg .= site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "rnrn"; $msg .= __( '‫شما‬ ‫از‬ ‫تشکر‬ ‫,'با‬ 'wpschool-login' ) . "rn"; return $msg; } ‫فرض‬ ‫پیش‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫به‬ ‫کرد‬ ‫کلیک‬ ‫ایمیل‬ ‫در‬ ‫موجود‬ ‫لینک‬ ‫روی‬ ‫کاربر‬ ‫اینکه‬ ‫از‬ ‫بعد‬ ‫سپس‬ ‫و‬ ‫ساخته‬ ‫رمز‬ ‫تغییر‬ ‫برای‬ ‫سفارشی‬ ‫ای‬ ‫صفحه‬ ‫ابتدا‬ ‫باید‬ ، ‫شود‬ ‫می‬ ‫راهنمایی‬ ‫وردپرس‬ ‫وردپرس‬ ‫رمز‬ ‫تغییر‬ ‫فرض‬ ‫پیش‬ ‫صفحه‬ ‫جایگزین‬:‫کنیم‬ ‫فایل‬ ‫یک‬ ‫ابتدا‬php‫نام‬ ‫با‬custom-reset-password.php‫به‬ ‫را‬ ‫زیر‬ ‫کدهای‬ ‫و‬ ‫ساخته‬ : ‫میکنیم‬ ‫اضافه‬ ‫صفحه‬ ‫این‬
  • 14. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ <?php // template name: Reset Password get_header();?> <div class="container"> <div role="main" class="main"> <div class="box-center-form"> <h1 class="box-heading"> <?php echo _e('‫عبور‬ ‫رمز‬ ‫,'تغییر‬ 'wpschool-login'); ?> </h1> <?php if(is_user_logged_in()) { echo _e('‫د‬ ‫ا‬ ‫شده‬ ‫ن‬ ‫الگ‬ ‫حاضر‬ ‫حال‬ ‫در‬ ‫شما‬ ، ‫گرام‬ ‫,'.کاربر‬ 'wpschool-login' ); } else {?> <form class="resetpassform" id="resetpassform" action="<?php echo site_url( 'wp- login.php?action=resetpass' ); ?>" method="post" autocomplete="off"> <input type="hidden" id="user_login" name="rp_login" value="<?php echo esc_attr( $_REQUEST['login'] ); ?>" autocomplete="off" /> <input type="hidden" name="rp_key" value="<?php echo esc_attr( $_REQUEST['key'] ); ?>" /> <p> <input id="pass1" type="password" name="pass1" class="is-error" autocomplete="off" placeholder="<?php echo _e('‫د‬ ‫جد‬ ‫عبور‬ ‫,'رمز‬ 'wpschool-login'); ?>" required /> </p> <p>
  • 15. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫پ‬ ‫در‬ ‫جدید‬ ‫برگه‬ ‫یک‬ ‫باید‬ ‫حاال‬.‫کنیم‬ ‫ایجاد‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫برای‬ ‫وردپرس‬ ‫یشخوان‬ ‫عبارت‬ ‫برگه‬ ‫افزودن‬ ‫صفحه‬ ‫در‬reset-password‫ویژگی‬ ‫قسمت‬ ‫از‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تایپ‬ ‫را‬ ‫گزینه‬ ‫قالب‬ ‫بخش‬ ‫برگه‬ ‫های‬Reset Password‫فایل‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫نامی‬ ‫(همان‬custom- reset-password.php.‫کنیم‬ ‫می‬ ‫کلیک‬ ‫را‬ ‫انتشار‬ ‫گزینه‬ ‫و‬ ‫کرده‬ ‫انتخاب‬ ‫را‬ )‫بودیم‬ ‫کرده‬ ‫وارد‬ ‫روی‬ ‫کلیک‬ ‫با‬ ‫که‬ ‫باشد‬ ‫می‬ ‫کاربر‬ ‫از‬ ‫جدید‬ ‫عبور‬ ‫رمز‬ ‫دریافت‬ ‫جهت‬ ‫ورودی‬ ‫دو‬ ‫شامل‬ ‫صفحه‬ ‫این‬ ‫کاربر‬ ‫به‬ ‫مناسب‬ ‫پیام‬ ‫خطا‬ ‫وجود‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شده‬ ‫انجام‬ ‫اعتبارسنجی‬ ‫ابتدا‬ ‫ذخیره‬ ‫دکمه‬ .‫میدهد‬ ‫نمایش‬
  • 16. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫صفحه‬ ‫طراحی‬ ‫از‬ ‫بعد‬‫جهت‬ ‫الزم‬ ‫کدهای‬ ‫باید‬‫صفحه‬ ‫با‬ ‫خود‬ ‫سفارشی‬ ‫صفحه‬ ‫کردن‬ ‫جایگزین‬ ‫فایل‬ ‫به‬ ‫را‬ ‫وردپرس‬ ‫رمز‬ ‫تغییر‬ ‫فرض‬ ‫پیش‬functions.php: ‫کنیم‬ ‫اضافه‬
  • 17. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ add_action( 'login_form_rp', 'redirect_to_custom_password_reset'); add_action( 'login_form_resetpass','redirect_to_custom_password_reset'); function redirect_to_custom_password_reset() { if ( 'GET' == $_SERVER['REQUEST_METHOD'] ) { // Verify key / login combo $user = check_password_reset_key( $_REQUEST['key'], $_REQUEST['login']); if ( ! $user || is_wp_error( $user ) ) { if ( $user && $user->get_error_code() === 'expired_key' ) { wp_redirect( home_url( 'user-login?login=expiredkey' )); } else { wp_redirect( home_url( 'user-login?login=invalidkey' )); } exit; } $redirect_url = home_url( 'reset-password' ); $redirect_url = add_query_arg( 'login', esc_attr( $_REQUEST['login'] ), $redirect_url ); $redirect_url = add_query_arg( 'key', esc_attr( $_REQUEST['key'] ), $redirect_url ); wp_redirect( $redirect_url ); exit; } }
  • 18. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫شود‬ ‫می‬ ‫چک‬ ‫رمز‬ ‫تغییر‬ ‫موقت‬ ‫کلید‬ ‫بود‬ ‫معتبر‬ ‫سپس‬ ‫و‬ ‫کاربر‬ ‫بودن‬ ‫معتبر‬ ‫ابتدا‬ ‫باال‬ ‫کد‬ ‫در‬ ‫کلید‬ ‫یا‬ ‫و‬ ‫نباشد‬ ‫معتبر‬ ‫کاربر‬ ‫که‬ ‫صورتی‬ ‫در‬‫شده‬ ‫هدایت‬ ‫الگین‬ ‫صفحه‬ ‫به‬ ‫باشد‬ ‫شده‬ ‫منقضی‬ ‫پیام‬ ‫تا‬‫هدایت‬ ‫سفارشی‬ ‫رمز‬ ‫تغییر‬ ‫صفحه‬ ‫به‬ ‫صورت‬ ‫این‬ ‫غیر‬ ‫و‬ ‫شود‬ ‫داده‬ ‫نمایش‬ ‫مناسب‬ .‫میشود‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کد‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫مناسب‬ ‫پیام‬ ‫نمایش‬ ‫جهت‬switch..case‫صفحه‬ ‫در‬ ‫موجود‬ : ‫میکنیم‬ ‫اضافه‬ ‫الگین‬ case 'expiredkey': case 'invalidkey': $html_out= $html_out'<li>'.__( '‫ت‬‫اس‬ ‫شده‬ ‫منقضی‬ ‫یا‬ ‫و‬ ‫نبوده‬ ‫معتبر‬ ‫پسورد‬ ‫تغییر‬ ‫,'لینک‬ 'wpschool- login' ).'</li>'; break; : ‫کنیم‬ ‫اضافه‬ ‫توابع‬ ‫ادامه‬ ‫به‬ ‫را‬ ‫رمز‬ ‫تغییر‬ ‫به‬ ‫مربوط‬ ‫کدهای‬ ‫تا‬ ‫رسیده‬ ‫اون‬ ‫وقت‬ ‫حاال‬
  • 19. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ function do_password_reset() { if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) { $rp_key = $_REQUEST['rp_key']; $rp_login = $_REQUEST['rp_login']; $user = check_password_reset_key( $rp_key, $rp_login ); if ( ! $user || is_wp_error( $user ) ) { if ( $user && $user->get_error_code() === 'expired_key' ) { wp_redirect( home_url( 'user-login?login=expiredkey' ) ); } else { wp_redirect( home_url( 'user-login?login=invalidkey' ) ); } exit; } if ( isset( $_POST['pass1'] ) ) { if ( $_POST['pass1'] != $_POST['pass2'] ) { // Passwords don't match $redirect_url = home_url( 'reset-password' ); $redirect_url = add_query_arg( 'key', $rp_key, $redirect_url ); $redirect_url = add_query_arg( 'login', $rp_login, $redirect_url ) $redirect_url = add_query_arg( 'error', 'password_reset_mismatch', $redirect_url ); wp_redirect( $redirect_url ); exit; }
  • 20. www.wpschool.ir .‫است‬ ‫بالمانع‬ ‫منبع‬ ‫ذکر‬ ‫با‬ ‫آن‬ ‫از‬ ‫برداری‬ ‫کپی‬ ‫و‬ ‫است‬ ‫شده‬ ‫تهیه‬ ‫وردپرس‬ ‫مدرسه‬ ‫تیم‬ ‫توسط‬ ‫آموزش‬ ‫این‬ ‫کاربر‬ ‫بودن‬ ‫معتبر‬ ‫ابتدا‬ ‫نیز‬ ‫اینجا‬ ‫در‬‫و‬‫تابع‬ ‫توسط‬ ‫رمز‬ ‫تغییر‬ ‫موقت‬ ‫کلید‬ check_password_reset_key‫ب‬‫وارد‬ ‫عبور‬ ‫رمز‬ ‫اعتبار‬ ‫تایید‬ ‫صورت‬ ‫در‬ ‫و‬ ‫شود‬ ‫می‬ ‫ررسی‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫کاربر‬ ‫توسط‬ ‫شده‬.‫میگیرد‬‫صفحه‬ ‫در‬ ‫خطا‬ ‫وجود‬ ‫صورت‬ ‫در‬reset- password‫داده‬ ‫تغییر‬ ‫کاربر‬ ‫عبور‬ ‫رمز‬ ‫باشد‬ ‫نداشته‬ ‫وجود‬ ‫خطایی‬ ‫اگر‬ ‫و‬ ‫شده‬ ‫داده‬ ‫نمایش‬ ‫شد‬‫صفحه‬ ‫در‬ ‫و‬ ‫ه‬user-login.‫میشود‬ ‫داده‬ ‫نمایش‬ ‫رمز‬ ‫تغییر‬ ‫پیام‬ ‫کاربر‬ ‫به‬ ( ‫الگین‬ ‫صفحه‬ ‫فایل‬ ‫به‬ ‫را‬ ‫زیر‬ ‫کد‬ ‫باید‬ ‫الگین‬ ‫صفحه‬ ‫در‬ ‫رمز‬ ‫تغییر‬ ‫پیام‬ ‫نمایش‬ ‫برای‬custom- login.php: ‫کنیم‬ ‫اضافه‬ ) <?php if (isset( $_REQUEST['password'] ) && $_REQUEST['password'] == 'changed') : ?> <p class="login-info"> <?php _e( '‫د‬‫کر‬ ‫پیدا‬ ‫تغییر‬ ‫موفقیت‬ ‫با‬ ‫شما‬ ‫عبور‬ ‫,'.رمز‬ 'wpschool-login' ); ?> </p> <?php endif; ?> ‫با‬ ‫نموده‬ ‫خود‬ ‫رمز‬ ‫تغییر‬ ‫به‬ ‫اقدام‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫به‬ ‫مراجعه‬ ‫با‬ ‫تواند‬ ‫می‬ ‫کاربر‬ ‫حاال‬ ‫روی‬ ‫کلیک‬ ‫و‬ ‫ایمیل‬ ‫دریافت‬‫موج‬ ‫لینک‬‫و‬‫ایمیل‬ ‫در‬ ‫د‬،‫رمز‬‫عبور‬.‫دهد‬ ‫تغییر‬ ‫را‬ ‫خود‬ ، ‫هستم‬ ‫شما‬ ‫پاسخگوی‬ ‫ها‬ ‫کامنت‬ ‫در‬ ‫داشت‬ ‫وجود‬ ‫آموزش‬ ‫در‬ ‫مشکلی‬ ‫یا‬ ‫و‬ ‫سوال‬ ‫اگر‬ ‫باشید‬ ‫موفق‬. ‫وردپرس‬ ‫در‬ ‫رمز‬ ‫فراموشی‬ ‫صفحه‬ ‫جایگزین‬ ‫آموزش‬ ‫پایان‬