Сделать имя пользователя WordPress адресом электронной почты - PullRequest
3 голосов
/ 19 января 2012

Можно ли сделать имя пользователя WordPress адресом электронной почты?

Таким образом, имя может быть скрыто или не обязательно и заменяется на адрес электронной почты.

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

Ответы [ 3 ]

8 голосов
/ 16 сентября 2013

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

WordPress позволяет использовать имена пользователей с некоторыми специальными символами, так что это вполне допустимый способподписать людей: http://codex.wordpress.org/Function_Reference/sanitize_user

6 голосов
/ 02 августа 2014

Да, это возможно .Даже вы можете настроить WordPress для входа в систему, регистрации и восстановления пароля только по электронной почте.

Вы можете поместить приведенный ниже код в файл functions.php вашей темы.

Шаг-1: Удалить текстовое поле Имя пользователя

add_action('login_head', function(){
?>
    <style>
        #registerform > p:first-child{
            display:none;
        }
    </style>

    <script type="text/javascript" src="<?php echo site_url('/wp-includes/js/jquery/jquery.js'); ?>"></script>
    <script type="text/javascript">
        jQuery(document).ready(function($){
            $('#registerform > p:first-child').css('display', 'none');
        });
    </script>
<?php
});

Шаг-2: Удалить ошибку Имя пользователя

//Remove error for username, only show error for email only.
add_filter('registration_errors', function($wp_error, $sanitized_user_login, $user_email){
    if(isset($wp_error->errors['empty_username'])){
        unset($wp_error->errors['empty_username']);
    }

    if(isset($wp_error->errors['username_exists'])){
        unset($wp_error->errors['username_exists']);
    }
    return $wp_error;
}, 10, 3);

Шаг-3: МанипулироватьФункция фоновой регистрации.

add_action('login_form_register', function(){
    if(isset($_POST['user_login']) && isset($_POST['user_email']) && !empty($_POST['user_email'])){
        $_POST['user_login'] = $_POST['user_email'];
    }
});

Существует также плагин для достижения этой функциональности.

Плагин: https://wordpress.org/plugins/smart-wp-login/

4 голосов
/ 29 февраля 2012

Имя пользователя является основной сущностью в БД и философии WordPress, и его нельзя так обойти.Теперь, если вы хотите, чтобы пользователи входили со своими электронными письмами, используйте этот плагин: http://wordpress.org/extend/plugins/wp-email-login/ Он позволяет вам входить либо с помощью email / pass, либо username / pass.Нашел это как месяц назад, работает как шарм.

Даже плагины, которые используют альтернативные средства для регистрации и входа (Facebook, Twitter и Google), создают имя пользователя (например, один из протестированных плагинов создает имена пользователей)например, fbX, где X - идентификатор Facebook. К сожалению, это не то, что мы можем обойти.

Надеюсь, это поможет! :) 1007 *

...