וולידציה ללוגאין בוורדפרס
נתקלתי במצב שהייתי צריך לעשות ולידציה ללוגאין חיצוני בוורדפרס שנוצר ע"י הפונקציה הזו
wp_login_form
אני הוצאתי את ה – form מהפונקציה מכיוון שרציתי לעשות עוד כמה עיצובים שאין שם באפשרויות.
הבעיה היתה עם ה – redirect כאשר הפרטים אינם נכונים אנחנו מובלים לעמוד לוגאין של וורדפרס ואני רציתי להישאר באותו עמוד ולהציג הודעה.
יש הרבה פתרונות אבל הפתרון שלי הוא.
ליצור אייפריים ולשלוח את הנתונים שמתקבלים באייפריים במידה ויש כניסה אז יש אופציה לעשות redirect לדף כלשהו, אני עושה redirect לדף שהכנתי מראש שיש בו דיב עם ID שהכנתי מראש שהתוכן שלו 1.
ובגאווה סקריפט אני בודק אם באייפריים יש את הדיב עם ה ID שהתוכן שלו 1 אם כן אז ז"א שנכנסתי ואני עושה מה שבא לי אם לא אז לא נכנסתי.
הקוד המלא:
function jos_login() {
echo "<div class='jos_login'>";
if ( ! is_user_logged_in() ) { // Display WordPress login form:
$args = array(
'redirect' => '/חדשות-ועדכונים-לחברי-האיגוד/',
'form_id' => 'loginform-custom',
'label_username' => __( 'שם משתמש\אימייל' ),
'label_password' => __( 'סיסמה' ),
'label_remember' => __( 'הכנס אותי אוטומטית בפעם הבאה' ),
'label_log_in' => __( 'היכנס' ),
'remember' => true
);
//wp_login_form( $args );
echo '
<div class="error_login_msg"></div>
<form name="loginform-custom" id="loginform-custom" target="jos_login" action="/wp-login.php" method="post">
<br />
<p class="login-username">
<input name="log" id="user_login" class="input" value="" size="20" type="text" placeholder="שם משתמש:">
</p>
<p class="login-password">
<input name="pwd" id="user_pass" class="input" value="" size="20" type="password" placeholder="סיסמא:">
</p>
<p class="login-remember"><label><input name="rememberme" id="rememberme" value="forever" type="checkbox"> הכנס אותי אוטומטית בפעם הבאה</label></p>
<p class="login-submit">
<input name="wp-submit" id="wp-submit" class="button button-primary" value="היכנס" type="submit">
<input name="redirect_to" value="/check_login" type="hidden">
</p>
</form>
';
echo "<iframe style='display:none;' id='jos_login_iframe' name='jos_login' src=''></iframe>";
echo '
<script>
jQuery(function() {
jQuery("#jos_login_iframe").bind("load",function(){
is_login = jQuery("#jos_login_iframe").contents().find("#check_login").html();
if (is_login == 1) {
location.href = "/חדשות-ועדכונים-לחברי-האיגוד/";
} else {
jQuery(".error_login_msg").html("פרטי כניסה אינם נכונים");
}
});
});
</script>
';
} else { // If logged in:
wp_loginout( home_url() ); // Display "Log Out" link.
echo " | ";
wp_register('', ''); // Display "Site Admin" link.
echo '
<div class="go_to_member_page">
<div class="btn btn-primary">
<a style="color:#fff;" class="member_link" href="/%D7%97%D7%93%D7%A9%D7%95%D7%AA-%D7%95%D7%A2%D7%93%D7%9B%D7%95%D7%A0%D7%99%D7%9D-%D7%9C%D7%97%D7%91%D7%A8%D7%99-%D7%94%D7%90%D7%99%D7%92%D7%95%D7%93/">מעבר לאיזור רשומים</a>
</div>
</div>
';
echo "
<style>
.member_register {display:none;}
.member_enter {height:170px;}
.member_enter_up { padding-top: 60px; }
.go_to_member_page {margin-top:15px;}
</style>
";
}
echo "</div>";
}
אפשר להרחיב את הולידציה ולבדוק עוד דברים
is_email() - אם זה אימייל תקין term_exists() - בודק אם קטגוריה קיימת username_exists() - אם המשתמש קיים validate_file() - אם קובץ קיים