ЕГ
if(wp_verify_nonce($_POST['_wpnonce'],'order')){
global $user_ID;
global $user;
$errors = array();
// Проверка пользователя
if($user_ID and is_user_logged_in()){
// Если пользователь авторизован используем его данные
$user = get_user_by('ID',$user_ID);
$user_firstname = $user->user_firstname;
$user_lastname = $user->user_lastname;
$user_phone = get_user_meta($user_ID,'billing_phone',true);
} else {
// Иначе проверяем наличие пользователя по введённым данным
if(!empty($_POST['email'])){
if(email_exists($_POST['email'])){
// Если пользователь найден, то записываем его user_ID
$user_ID = email_exists($_POST['email']);
} else {
// Иначе проверяем поля и регистрируем нового пользователя, получаем user_ID
if(!empty($_POST['first_name'])) $user_firstname = strval($_POST['first_name']); else $errors[] = ('Имя');
if(!empty($_POST['last_name'])) $user_lastname = strval($_POST['last_name']); else $errors[] = ('Фамилия');
if(!empty($_POST['email'])) $user_email = strval($_POST['email']); else $errors[] = ('Почта');
if(!empty($_POST['phone'])) $user_phone = strval($_POST['phone']); else $errors[] = ('Телефон');
// Если нет ошибок создаём пользователя
if(empty($errors)) {
$password = gen_pass();
$user_ID = wp_create_user( $user_phone, $password, $user_email );
// Если пользователь успешно зарегистрирован то авторизуем его,
// обновим данные и вышлем письмо с паролем
if (!is_wp_error( $user_ID ) ) {
$user_data = [
'ID' => $user_ID,
'first_name' => $user_firstname,
'last_name' => $user_lastname
];
$user_ID = wp_update_user($user_data);
if ( is_wp_error( $user_ID ) ) {
// Произошла ошибка, возможно такого пользователя не существует.
}
else {
update_user_meta($user_ID, 'billing_phone', $user_phone);
}
// Авторизовываем пользователя
$creds = array();
$creds['user_login'] = $user_email;
$creds['user_password'] = $password;
$creds['remember'] = true;
//$user = wp_signon( $creds, false );
// После успешной регистрации, отправляем письмо и делаем редирект
$sent_message = wp_mail($user_email,'Регистрация на сайте',"Ваша почта: $user_email \nВаш пароль: $password");
} else {
// Фиксируем ошибку регистрации пользователя
$errors[] = ('Произошла ошибка при регистрации пользователя');
}
}
}
}
}