Я пытаюсь перенаправить пользователей после успешной регистрации на страницу их профиля, но независимо от того, куда я положил перенаправление, похоже, что оно не работает.
Пользователь зарегистрирован правильно, но перенаправление не происходит.
Кажется, что весь код работает правильно, выводя правильные сообщения об ошибках, когда есть что-то, что не проверяет, а также регистрируя пользователя, если информация верна. Единственная проблема - перенаправление.
Это ошибка, которую я сейчас получаю: Обратите внимание: wpdb :: escape устарела с версии 3.6.0! Используйте взамен wpdb :: prepare () или esc_sql ().
Мой PHP:
<?php
$success = '';
$error = '';
global $wpdb, $PasswordHash, $current_user, $user_ID;
if(isset($_POST['task']) && $_POST['task'] == 'register' ) {
$password1 = $wpdb->escape(trim($_POST['password1']));
$password2 = $wpdb->escape(trim($_POST['password2']));
$first_name = $wpdb->escape(trim($_POST['first_name']));
$last_name = $wpdb->escape(trim($_POST['last_name']));
$email = $wpdb->escape(trim($_POST['email']));
$username = $wpdb->escape(trim($_POST['email']));
if( $email == "" || $password1 == "" || $password2 == "" || $first_name == "" || $last_name == "") {
$error = 'Please don\'t leave the required fields.';
} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = 'Invalid email address.';
} else if(email_exists($email) ) {
$error = 'Email already exists.';
} else if($password1 <> $password2 ){
$error = 'Password do not match.';
} else {
$user_id = wp_insert_user( array ('first_name' => apply_filters('pre_user_first_name', $first_name), 'last_name' => apply_filters('pre_user_last_name', $last_name), 'user_pass' => apply_filters('pre_user_user_pass', $password1), 'user_login' => apply_filters('pre_user_user_login', $username), 'user_email' => apply_filters('pre_user_user_email', $email), 'role' => 'young-person') );
if( is_wp_error($user_id) ) {
$error = 'Error on user creation.';
} else {
do_action('user_register', $user_id);
wp_redirect ( home_url("/profile") );
}
}
} ?>
А мой HTML-код:
<form method="post">
<div class="row">
<div class="six">
<p><label>First Name</label>
<input type="text" value="" name="first_name" id="first_name" /></p>
</div>
<div class="six">
<p><label>Last Name</label>
<input type="text" value="" name="last_name" id="last_name" /></p>
</div>
<div class="six">
<p><label>Email</label>
<input type="text" value="" name="email" id="email" required /></p>
</div>
<div class="six">
<p><label>Password</label>
<input type="password" value="" name="password1" id="password1" /></p>
</div>
<div class="six">
<p><label>Repeat password</label>
<input type="password" value="" name="password2" id="password2" /></p>
</div>
<div class="full">
<div class="alignleft"><?php if($error!= "") { echo $error; } ?></div>
<button type="submit" name="btnregister" class="button" >Submit</button>
<input type="hidden" name="task" value="register" />
</div>
</div>
</form>
Любая помощь будет высоко ценится.