it-swarm.com.ru

Подтвердите адрес электронной почты пользователя при использовании gmail для регистрации

Я только недавно узнал, что, используя учетную запись Gmail, вы можете добавить что-либо к детали до @ и после имени и при этом использовать только один адрес электронной почты. Пример. myusername (at) gmail dot com myusername + everythingelse (at) gmail dot com Будут получать электронные письма с обоих адресов, отправляемые в одну учетную запись gmail.

К сожалению, при проверке, существует ли электронная почта "myusername + everythingelse" с использованием WP функции "email_exists ()", WP я думаю, что правильно говорит, что это не так

В результате мне нужно проверить, что ОСНОВНАЯ учетная запись Gmail еще не зарегистрирована, плюс, если она не зарегистрирована, разрешите пользователю зарегистрироваться с расширенным адресом электронной почты.

Кто-нибудь может помочь, как проверить, является ли это учетной записью Gmail, а затем, если необходимо, удалить часть после +, поэтому я проверяю, зарегистрирован ли адрес электронной почты ОСНОВНОЙ учетной записи для пользователя.

В настоящее время я проверяю адреса электронной почты:

$validemail = is_email($email_to_check);
    if ($validemail):
        $exists = email_exists($email_to_check);
        if ($exists):
          Move on and verify

Мне вроде нужна помощь с этим битом:

        elseif:
       is it a gmail account?
          if so, is it using a pseudonym +
             if so, split this , join the myusername and gmail dot com
                then recheck using email_exists()
                   if now it exists as true
                     return with warning, this email account is registered
                       else register email to user
2
Malisa

Хм, надо стараться, прежде чем просить о помощи :)

Было довольно просто, в конце концов (правильно или неправильно) это работает:

    $domain_array = array('googlemail.com','gmail.com');
    $validemail = is_email($email_to_check);
    $exists_text = '';
    if ($validemail):
        $exists = email_exists($email_to_check);
        list($user, $domain) = explode('@', $email_to_check);
        if (!$exists):
            if (strpos($user, '+')) {
                list($username_email, $crap) = explode('+', $user);
                $exists = email_exists($username_email . '@' . $domain);
                $exists_text = __('User account exists with this email address', 'pw_texts');
                $email_to_check = strtolower($username_email . '@' . $domain);// Gmail only recognizes lowercase
            }

        endif;
        if ($exists):
           carry on as before
2
Malisa