Зарегистрируйте нового пользователя, назначьте пользовательскую роль, затем отправьте электронное письмо

У меня есть очень специфический процесс регистрации пользователей для реализации на веб-сайте. Мне нужно выполнить следующие шаги, когда пользователь зарегистрируется через внешнюю форму:

  1. проверить домен электронной почты

    • если домен whitelisted: регулярный рабочий процесс WordPress (зарегистрированный пользователь, отправленные уведомления по электронной почте, тогда пользователь может выбрать пароль во время первого процесса аутентификации)
  2. Если домен с черным списком

    • создать пользователя в БД
    • назначить пользовательскую роль WP (например, «temp_account») для этого пользователя
    • не отправлять регулярные уведомления о сообщениях в WordPress
    • пользователь с ролью «temp_account» не может войти

Я не могу найти подходящее действие / фильтр, который я должен использовать для проверки электронной почты, а затем не позволять wordpress отправлять уведомления по умолчанию …

Любые советы / предложения будут оценены;)

Чтобы действительно соответствовать вашим потребностям, я думаю, что лучше переписать часть функции wp_insert_user() , какая-то часть может вас заинтересовать

  $user_email = apply_filters( 'pre_user_email', $raw_user_email ); 

А также :

  $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); if ( in_array( strtolower( $user_login ), array_map( 'strtolower', $illegal_logins ) ) ) { return new WP_Error( 'invalid_username', __( 'Sorry, that username is not allowed.' ) ); } 

А также :

  if ( isset( $userdata['role'] ) ) { $user->set_role( $userdata['role'] ); } elseif ( ! $update ) { $user->set_role(get_option('default_role')); } 

Я думаю, вы сможете объединить все эти части, чтобы сделать свою собственную регистрацию пользователей.

Надеюсь, поможет !