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


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

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

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

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 [email protected]";
        }
    }
    add_filter('wpmu_signup_user', 'dwsl_whitelistreg');
Author: Jake Lisby, 2013-01-23

1 answers

Можно подключиться к 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 ;)

 1
Author: brasofilo, 2013-01-24 01:13:31