É possível remover o campo de nome de usuário da página de registro?
Quero que os usuários insiram apenas seus e-mails e senhas.
Um novo usuário deve ser criado com base apenas nesses dois parâmetros.
Isso é possível e, se sim, como?
user-registration
phpnwordpress
fonte
fonte
Respostas:
Absolutamente SIM , você pode conseguir isso.
Regra 1: WordPress requer um nome de usuário. Devemos fornecer um nome de usuário.
Regra 2: não edite o código principal do WordPress.
Podemos conseguir isso ocultando o campo de nome de usuário, recebendo e-mail e armazenando-o como nome de usuário.
Etapa 1: remover o campo de texto Nome de usuário
Etapa 2: remover o nome de usuário
Etapa 3: Manipular a funcionalidade de registro em segundo plano.
Coloque o código acima no arquivo functions.php do seu tema .
Você também pode baixar um plugin completo para conseguir isso.
Plugin: https://wordpress.org/plugins/smart-wp-login/
fonte
A etapa 3 da postagem de Nishant Kumars verifica se o
isset($_POST['user_login'])
que não funcionou para mim, pois o login é o que realmente queremos remover.Minha solução é a seguinte (no functions.php do tema), também como uma função separada, para ficar com o estilo de código wordpress:
fonte
@
e.
no endereço de e-mail como nome de usuário:$_POST['user_login'] = str_replace(array('@', '.'), '_', $_POST['user_email']);
@Nishant Kumar deu a resposta perfeita e deveria ser aceita para esta pergunta. No entanto, há uma falha após a versão do Wordpress 4.0 lançada. Do codex -
registration_errors
O filtro aqui requer uma pequena modificação.Nota: Como o @mcnesium mencionou, se nos livrarmos completamente do campo de nome de usuário (no meu caso, usei Theme meu plugin de login para substituir o formulário de registro regular e acabei de remover o campo de nome de usuário),
$_POST['user_login']
seránull
e a condição não corresponderá em absoluto. É melhor remover isso da condição, como @mcnesium sugerido.fonte
Iterando na resposta de @ nishant-kumar, aqui está um JS vanilla, sem script js extra, 1 etapa, sem necessidade de edição de back-end, solução para criar um formulário de inscrição apenas com a entrada de email:
Você só precisa adicionar esse código no seu arquivo functions.php (ou no seu plugin personalizado , se você tiver um)
fonte
user_email is not defined at HTMLInputElement.syncUserName
. Mover a parte "function syncUserName" para dentro da função superior remove o erro e o trecho de código funciona muito. Basta comentar para que outras pessoas possam encontrar o mesmo problema. Obrigado Gfra54.user_email
var no mesmo escopo. Obrigado.Eu acho que qualquer solução para essa solicitação será um 'hack', pois o wordpress exige que haja um nome de usuário para todos os usuários registrados. Mesmo o plug-in mencionado acima provavelmente está apenas encontrando o nome de usuário por meio do endereço de e-mail e depois usando esse nome de usuário para fazer login no site.
Se você concorda com um hack, aqui está um conceito que pode funcionar:
1) Preencher previamente o campo de nome de usuário no seu formulário de registro com um número único, usando o carimbo de data / hora atual é uma boa idéia para evitar a duplicação de cópias. Você ocultaria esse campo para que o usuário não o veja na tela ao preencher seu formulário.
Se você estiver usando jQuery, poderá usar algo como:
Neste exemplo, 'form input.username' seria o seletor jQuery para encontrar o campo de nome de usuário. Você precisará verificar a estrutura html na sua página para garantir que o seletor corresponda à estrutura.
2) Use um plug-in como o mencionado anteriormente ( http://wordpress.org/extend/plugins/wp-email-login/ ) para permitir que os usuários façam login com seu endereço de email.
fonte