0

Я внедрил пользовательскую форму регистрации и регистрации в WP, как указано here. Пользователь теперь может зарегистрироваться, но не может войти, пока администратор не одобрит этого пользователя из бэкэнд.Регистрация и активация электронной почты пользователя в пользовательской форме

Мне нужно внедрить уведомление администратора по электронной почте для регистрации нового пользователя, а также уведомление пользователя по электронной почте одобряет его с помощью бэкэнд. Я пробовал ниже код в моей регистрационной форме для отправки электронной почты, но это, похоже, не работает. Кроме того, стандартная электронная почта продолжает отправлять.

/ Redefine user notification function 
if (!function_exists('wp_new_user_notification')) { 
    function wp_new_user_notification($user_id, $plaintext_pass = '') { 
     $user = new WP_User($user_id); 

     $user_login = stripslashes($user->user_login); 
     $user_email = stripslashes($user->user_email); 

     $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; 
     $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; 
     $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; 

     @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); 

     if (empty($plaintext_pass)) 
      return; 

     $message = __('Hi there,') . "\r\n\r\n"; 
     $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n"; 
     $message .= wp_login_url() . "\r\n"; 
     $message .= sprintf(__('Username: %s'), $user_login) . "\r\n"; 
     $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n"; 
     $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n"; 
     $message .= __('Adios!'); 

     wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message); 

    } 
} 

Для подтверждения регистрации пользователя я использую плагин this.

Как я могу отправить электронное письмо при регистрации пользователей с использованием моей пользовательской формы и уведомлять пользователя о том, когда администратор одобряет.

ответ

0

Вы можете настроить контент для отправки электронной почты пользователю при новой регистрации на странице настроек WP Approve User plugin. Настройки этого плагина доступны в меню «Настройки» на панели инструментов WordPress. При добавлении контента будет выполняться работа по отправке писем пользователю после их регистрации.

Если вы хотите отправить электронные письма Администратору после регистрации, вы можете написать код на крючке wpau_approve. Этот Крюк принимает идентификатор пользователя в качестве параметра.

Таким образом, вы можете написать что-то вроде этого:

add_action ('wpau_approve' , 'send_mail_to_admin_post_approval', 10, 1); 

/* 
* Sends email to Administrator after user registration is approved 
* 
* @param int $user_id User id of user whose registration is just approved 
*/ 
function send_mail_to_admin_post_approval($user_id) { 

     $user = new WP_User($user_id); 

     $user_login = stripslashes($user->user_login); 
     $user_email = stripslashes($user->user_email); 

     $message = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n"; 
     $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; 
     $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n"; 

     @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message); 
} 

Если даже после добавления выше кода в плагин или файл functions.php письма ТЕМЫ не собираются, то мы рекомендуем установить плагин Email Log. После установки этого плагина вы можете просмотреть список всех сообщений электронной почты, инициированных функцией wp_mail, на странице с именем «Email Log» в меню «Инструменты» в WordPress dashobard. Если вы видите, что ваша электронная почта запускается wp_mail и не принимается получателями, это может быть проблемой с настройками SMTP.

Возможно, вам потребуется включить или установить программное обеспечение SMTP на вашем сервере. Если у вас нет доступа к нему, установите плагин WP Mail SMTP и настройте его. Если плагин WP Mail SMTP настроен правильно, получатели должны иметь возможность получать электронные письма, которые запускаются функцией wp_mail после настройки плагина.

Надеется, что это помогает :)

+0

спасибо за реагирование, но 'WP Approve User' плагина имеет возможность отправить утверждать и письмо Отозвать одобрение. Не уверен, что у них есть настройка отправки электронной почты администратору, когда пользователь регистрируется, используя мою собственную регистрационную форму. – Slimshadddyyy