Письмо после регистрации
-
Здравствуйте!
Прошу помочь с регистрацией на сайте и уведомлением зарегистрированного пользователя стандартным приветственным письмом, а админа о новом зарегистрированном пользователе.У меня своя страница регистрации, отличная от той, которая стоит на WordPress по умолчанию.
Поменял ссылку на страницу регистрации этим кодом в functions.php:
add_filter( 'register_url', 'change_my_register_url' ); function change_my_register_url( $url ) { if( is_admin() ) { return $url; } return "/account/"; }
Этот код отвечает за проверку на ошибки и регистрацию пользователя и прописан в page-account.php:
<?php $error= ''; $success = ''; 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'])); $email = $wpdb->escape(trim($_POST['email'])); $username = $wpdb->escape(trim($_POST['username'])); if( $email == "" || $password1 == "" || $password2 == "" || $username == "") { $error= '<div class="mistake">Все поля обязательны</div>'; } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error= '<div class="mistake">Ошибка ввода Email</div>'; } else if(email_exists($email) ) { $error= '<div class="mistake">Email уже зарегистрирован</div>'; } else if($password1 <> $password2 ){ $error= '<div class="mistake">Пароли не совпадают</div>'; } else { $user_id = wp_insert_user( array ('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' => 'subscriber' ) ); if( is_wp_error($user_id) ) { $error= '<div class="mistake">Ошибка создания профиля</div>'; } else { do_action('user_register', $user_id); $success = '<div class="notification-input-form">Вы зарегистрировались</div>'; } } } ?> <h1>Регистрация</h1> <form method="post"> <?php if(! empty($err) ) : echo ''.$err.''; endif; ?> <?php if(! empty($success) ) : echo ''.$success.''; endif; ?> <?php if($sucess != "") { echo $sucess; } ?> <?php if($error!= "") { echo $error; } ?> <input type="text" autocomplete="off" name="email" id="email" placeholder="Email" value=""> <input type="text" autocomplete="off" name="username" id="username" placeholder="Логин на латинском" value=""> <input type="password" name="password1" placeholder="Пароль" value=""> <input type="password" name="password2" id="password2" placeholder="Повторите пароль" value=""> <button name="btnregister">Зарегистрироваться</button> <input type="hidden" name="task" value="register"> </form> <div class="forget">Регистрируясь, вы принимаете <a href="/agreement/">пользовательское соглашение</a></div>
В целом, всё отлично работает, выдаёт ошибки при проверке и регистрирует пользователя при успешном вводе, но письма не приходят.
Пытался через wp_new_user_notification что-то прописать, но ничего не получается.Очень прошу помощи.
Просмотр 1 ответа (всего 1)
Просмотр 1 ответа (всего 1)
- Тема «Письмо после регистрации» закрыта для новых ответов.