Здравствуйте. Задача такая:
В отношение полей логин и email применяются условия проверки на уникальность: в базе не может быть двух и более пользователей с одинаковым логином, либо email. И при попытке регистрации, скажем, на email, имеющийся в базе - выскакивает предупреждение, что такой email уже используется.
Вопрос: как подобное условие на проверку уникальности ввести для дополнительного (пользовательского поля)?
Ок. Пусть будет кастомизация. Но ведь практически задача должна сводиться к небольшому фрагменту кода, который будет запрашивать в базе данных информацию о том, имеется ли уже в таком поле (с пользовательским именем) значение, аналогичное тому, что вводит пользователь.
Вопрос в том, куда этот фрагмент кода вставить и как он должен выглядеть (возможно, так же, как он выглядит для логина и email).
Этот вопрос звучит невыполнимо?
Возможно, задачей плагина может быть следующая. Меня устроит и решение такой задачи:
"Как переименовать имя поля логин (только отображаемое; техническое user_login трогать не нужно)?
Как разрешить ввод кириллицы в логин?
Как сделать вход (wp-recall) по email?"
Эта вариация (когда вход возможен по email, который и служит логином для входа в систему) - вполне распространена.
В вашем случае, ничего никуда вставлять не надо, необходимо использовать фильтр "rcl_registration_errors", где вы сделаете запрос в БД на получение переданных через форму регистрации емейла и логина, если есть совпадение, то возвращаете ошибку.
Пример реализации можно увидеть в файле /functions/register.php на строке 339.
Запрос нужно посылать в таблицу wp_users с помощью глобального объекта
Я думаю, я достаточно подробно описал порядок реализации вашей задачи.
Андрей CS сказал(а)
В вашем случае, ничего никуда вставлять не надо, необходимо использовать фильтр "rcl_registration_errors", где вы сделаете запрос в БД на получение переданных через форму регистрации емейла и логина, если есть совпадение, то возвращаете ошибку.
Пример реализации можно увидеть в файле /functions/register.php на строке 339.
Запрос нужно посылать в таблицу wp_users с помощью глобального объектаВы не можете просматривать опубликованные ссылкиЯ думаю, я достаточно подробно описал порядок реализации вашей задачи.
Спасибо за ответ!
Но в строке 339 речь идет о проверке повторного ввода пароля.
add_filter( 'rcl_registration_errors', 'rcl_chek_repeat_pass' );
function rcl_chek_repeat_pass( $errors ) {
и так далее
Я уже переформулировал задачу. Чтобы не городить огород:
1) Вполне достаточно, чтобы можно было изменить отображаемое имя поля логин (техническое название user_login оставить без изменений). И чтобы в форме регистрации поле было подписано, например: "ФИО сотрудника".
2) Для поля логин разрешить кириллицу.
3) А также необходимо, чтобы для авторизации использовалось исключительно поле email вместо логина.
Буду признателен за ответ. 🙂