Como exibir o formulário de registro de usuário do WordPress (o formulário que aparece na página "www.mywebsite.com/wp-register.php") no front-end do meu blog?
Eu personalizei o formulário de inscrição. Mas não saiba como chamar esse formulário na página inicial. Qualquer suporte será realmente uma grande ajuda.
Desde já, obrigado. :)
registration
forms
bueltge
fonte
fonte
Respostas:
O processo envolve 2 etapas:
Existem três abordagens diferentes que vêm à minha mente para mostrar o frontend:
Para esta resposta, usarei a última. Os motivos são:
1: Crie o URL
Todos nós sabemos que o formulário de registro padrão de um site WordPress costuma ser alvo de spammers. Usar um URL personalizado é uma ajuda para resolver esse problema. Além disso, também quero usar um URL variável , ou seja, o URL do formulário de registro não deve ser sempre o mesmo, isso dificulta a vida dos spammers. O truque é feito usando um nonce no URL:
O uso dessas funções é fácil de exibir nos modelos um link para o formulário de registro, mesmo que seja dinâmico.
2: reconhecer o URL, primeiro esboço da
Custom_Reg\Custom_Reg
classeAgora precisamos reconhecer o URL. Para o propósito, começarei a escrever uma classe, que será concluída mais adiante na resposta:
A função olha para a primeira parte do URL depois
home_url()
e, se corresponder à nossa notceção, retornará TRUE. essa função será usada para verificar nossa solicitação e executar as ações necessárias para exibir nosso formulário.3: A
Custom_Reg\Form
turmaAgora vou escrever uma classe, que será responsável por gerar a marcação do formulário. Vou usá-lo também para armazenar em uma propriedade o caminho do arquivo de modelo que deve ser usado para exibir o formulário.
A classe gera a marcação de formulário repetindo todos os campos adicionados ao
create
método de chamada em cada um deles. Cada campo deve ser uma instância deCustom_Reg\FieldInterface
. Um campo oculto adicional é adicionado para verificação de não aceitação. O método do formulário é 'POST' por padrão, mas pode ser definido como 'GET' usando osetVerb
método Uma vez criada, a marcação é salva dentro da$form
propriedade do objeto que é ecoada pelooutput()
método, conectada ao'custom_registration_form'
gancho: no modelo de formulário, basta chamardo_action( 'custom_registration_form' )
o output do formulário.4: O modelo padrão
Como eu disse, o modelo para o formulário pode ser facilmente substituído, no entanto, precisamos de um modelo básico como substituto. Escrevi aqui um modelo muito bruto, mais uma prova de conceito do que um modelo real.
5: A
Custom_Reg\FieldInterface
interfaceTodo campo deve ser um objeto que implementa a seguinte interface
Penso que os comentários explicam o que as classes que implementam essa interface devem fazer.
6: Adicionando alguns campos
Agora precisamos de alguns campos. Podemos criar um arquivo chamado 'fields.php' onde definimos as classes de campos:
Eu usei uma classe base para definir a implementação padrão da interface, no entanto, é possível adicionar campos muito personalizados implementando diretamente a interface ou estendendo a classe base e substituindo alguns métodos.
Neste ponto, temos tudo para exibir o formulário, agora precisamos de algo para validar e salvar os campos.
7: A
Custom_Reg\Saver
classeEssa classe possui 2 métodos principais, um (
validate
) que faz o loop dos campos, valida-os e salva bons dados em uma matriz, o segundo (save
) salva todos os dados no banco de dados e envia a senha por email para o novo usuário.8: Usando classes definidas: finalizando a
Custom_Reg
classeAgora podemos trabalhar novamente na
Custom_Reg
aula, adicionando os métodos que "colam" o objeto definido e os fazem funcionarO construtor da classe aceita uma instância de
Form
e uma deSaver
.init()
O método (usingcheckUrl()
) examina a primeira parte do URL depoishome_url()
e, se corresponder ao nonce certo, verifica se o formulário já foi enviado; se estiver usando oSaver
objeto, valida e salva os dados do usuário; caso contrário, apenas imprima o formulário .init()
O método também aciona o gancho de ação que'custom_reg_form_init'
passa a instância do formulário como argumento: esse gancho deve ser usado para adicionar campos, configurar o modelo personalizado e também personalizar o método do formulário.9: Juntando as coisas
Agora precisamos escrever o arquivo principal do plugin, onde pudermos
Custom_Reg
classe instanciadora e chamar oinit()
método usando um gancho razoavelmente precoceTão:
10: Faltando tarefas
Agora tudo está bem feito. Temos apenas que personalizar o modelo, provavelmente adicionando um arquivo de modelo personalizado ao nosso tema.
Podemos adicionar estilos e scripts específicos apenas à página de registro personalizada dessa maneira
Usando esse método, podemos enfileirar alguns scripts js para lidar com a validação do lado do cliente, por exemplo, este . A marcação necessária para fazer esse script funcionar pode ser facilmente manipulada editando a
Custom_Reg\BaseField
classe.Se quisermos personalizar o email de registro, podemos usar o método padrão e, com os dados personalizados salvos na meta, podemos utilizá-los no email.
A última tarefa que provavelmente queremos implementar é impedir a solicitação do formulário de registro padrão, tão fácil quanto:
Todos os arquivos podem ser encontrados em um Gist aqui .
fonte
TLDR; Coloque o seguinte formulário no seu tema, os atributos
name
eid
são importantes:Encontrei um excelente artigo da Tutsplus sobre Como criar um formulário de registro de Wordpress sofisticado do zero . Isso gasta bastante tempo estilizando o formulário, mas possui a seguinte seção bastante simples do código wordpress necessário:
Editar: eu adicionei o bit final extra do artigo para explicar onde colocar os trechos de código acima - é apenas um formulário para que ele possa ir em qualquer modelo de página ou barra lateral ou criar um código curto com ele. A seção importante é a
form
que contém os trechos acima e os campos obrigatórios importantes.fonte
wp-login.php?action=register
páginaEste artigo fornece um tutorial de greate sobre como criar seus próprios formulários de registro / login / restauração de senha de front-end.
ou se você estiver procurando por um plugin, eu os usei antes e posso recomendá-los:
fonte
Eu criei um site há algum tempo que exibia um formulário de inscrição personalizado no lado frontal. Este site não está mais ativo, mas aqui estão algumas capturas de tela.
Aqui estão os passos que segui:
1) Ative a possibilidade de todos os visitantes solicitarem uma nova conta através da opção Configurações> Geral> Associação. A página de registro agora aparece no URL /wp-login.php?action=register
2) Personalize o formulário de registro para que ele se pareça com o front-end do site. Isso é mais complicado e depende do tema que você está usando.
Aqui está um exemplo com vinte e treze:
Em seguida, modifique a folha de estilo do tema para fazer com que o formulário apareça como você deseja.
3) Você pode modificar ainda mais o formulário, ajustando as mensagens exibidas:
4) Se você precisar de um formulário de registro de front-end, provavelmente não desejará que os usuários registrados vejam o back-end quando fizerem login.
Existem muitas etapas, mas o resultado está aqui!
fonte
Muito mais fácil: use uma função do WordPress chamada
wp_login_form()
( página Codex aqui ).Você pode criar seu próprio plug-in para poder usar um código curto em suas páginas:
Tudo o que você precisa fazer é estilizar seu formulário no frontend.
fonte
Se você está aberto ao uso de plug-ins, já usei o complemento Registro do Usuário para o Gravity Forms, funcionou muito bem:
http://www.gravityforms.com/add-ons/user-registration/
Edit: Sei que esta não é uma solução muito detalhada, mas faz exatamente o que você precisa e é uma boa solução.
Editar: para expandir ainda mais a minha resposta, o complemento Registro do usuário para formulários de gravidade permite mapear todos os campos em um formulário criado usando Gravity Forms, para campos específicos do usuário. Por exemplo, você pode criar um formulário com Nome, Sobrenome, Email, Site, Senha. Após o envio, o complemento mapeará essas entradas para os campos relevantes do usuário.
Outra grande coisa sobre isso é que você pode adicionar usuários registrados a uma fila de aprovação. Suas contas de usuário seriam criadas apenas uma vez aprovadas no back-end por um administrador.
Se o link acima for quebrado, basta Google "adicionar registro do usuário para formulários de gravidade"
fonte