Задать вопрос
@avprinciple

Кастомные вход и регистрация на сайт WordPress. Как обработать условие «is_wp_error»?

PHP не знаю, в wordpress залез уже как 3-й день, нужно было создать кастомные страницы входа, регистрации, профиля. Не знаю как обрабатывать результат.

Есть такие две функции в файле functions.php для входа, реги:
Код

/**
 * Вход пользователя
 */
function user_login() {
	if($_POST) { 
    $login_data = array(
      'user_login'    => $_POST['username'],
      'user_password' => $_POST['password'],
      'remember'      => true,
    );

    $user_verify = wp_signon( $login_data, false );
  
    if ( is_wp_error($user_verify) ) { 
      return '<span class="mine">Invlaid Login Details</span>'; 
    } else { 
      wp_redirect( home_url() );
      exit(); 
    } 
  
  }
}

  /**
 * Регистрация нового пользователя
 */
function new_user_registration() {

	// Данные переданные в $_POST
	$userdata = array(
		'user_login' => $_POST['user_name'],
		'user_pass'  => $_POST['password'],
		'user_email' => $_POST['mail'],
		'first_name' => $_POST['full_name'],
	);

	/**
	 * Проверять/очищать передаваемые поля не обязательно, 
	 * WP сделает это сам.
	 */

	$user_id = wp_insert_user( $userdata ) ;

	// возврат
	if( ! is_wp_error( $user_id ) ) {
                $mail = $userdata['mail'];
	        $from = get_option('admin_email'); 
	        $headers = 'From: '.$from . "\r\n"; 
	        wp_mail( $mail, '$subject', '$message', $headers ); // Тут я хотел отправить на почту данные новорега
	        wp_redirect( home_url() ); // Тут хотел сделать редирект; Не работает :)
		return true;
	} else {
		return $user_id->get_error_message();
	} 
}



На кастомных страницах вызываю эти функции в самом верху, до get_header.

Всё работает, логинит, регает - добавляет пользователя в БЗ. Но остаются кастомные страницы, мне нужно делать редирект при успехе, и выводить ошибки в произвольном месте в моей разметке (html).
Как обрабатывать результат (ошибка/успех) этого кода?
  • Вопрос задан
  • 472 просмотра
Подписаться 2 Простой 23 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы