Могу ли я подключиться к пользовательскому процессу приглашения, чтобы проверить, что его адрес электронной почты указан из определенного домена?

У меня есть опция сайта, где пользователи могут вводить домены в «белые списки». То, что я хотел бы сделать, это подключиться к потоку приглашения / создания пользователя, чтобы проверить, что домен нового пользователя с их адреса электронной почты соответствует одному из доменов в параметрах сайта.

Кто-нибудь знает, возможно ли это, или как это сделать?

Добавьте пояснения: для этого вам нужно будет посмотреть поле адреса электронной почты в процессе приглашения, и я предполагаю, что исключить все, кроме корневого домена. Затем подтвердите, что домен включен в массив из параметров блога. Итак, я думаю, что начало этого было бы чем-то вроде этого?

function dwsl_whitelistreg() { $settings=get_option( 'school_settings'); if (in_array( ENTEREDEMAILADDRESS , $settings[whitelist])) { ACTION TO SUBMIT USER } else { echo "I'm sorry the user's email address does not match a domain given by the school. If you feel this is an error, please email support@dewsly.com"; } } add_filter('wpmu_signup_user', 'dwsl_whitelistreg'); 

Solutions Collecting From Web of "Могу ли я подключиться к пользовательскому процессу приглашения, чтобы проверить, что его адрес электронной почты указан из определенного домена?"

Можно подключить wpmu_validate_user_signup , который возвращает $result процесса регистрации. Добавьте еще одну проверку для белого списка домена электронной почты и добавьте ошибку, если она не разрешена.

 add_filter( 'wpmu_validate_user_signup', 'whitelist_registration_wpse_82859' ); function whitelist_registration_wpse_82859( $result ) { // Test array $whitelist = array( 'gmail.com', 'mydomain.com' ); // http://php.net/manual/en/function.explode.php $user_name_domain = explode( '@', $result['user_email'] ); if( isset( $user_name_domain[1] ) && !in_array( $user_name_domain[1], $whitelist ) ) $result['errors']->add( 'user_email', __( 'Email domain blacklisted' ) ); return $result; } 

PS: хороший трюк с поддельным фильтром wpmu_signup_user 😉