Já se perguntou como atribuir funções de utilizador condicionalmente no WordPress com base em determinados critérios? Isto pode ser incrivelmente útil para sites que exigem funções únicas com base em acções do utilizador, estado de membro ou outros critérios.
Embora o WPForms e o addon User Registration sejam ferramentas poderosas para criar formulários de registo, por vezes é necessário atribuir funções de utilizador dinamicamente com base em condições específicas.
Neste guia, vou mostrar-lhe como atribuir condicionalmente funções de utilizador no WordPress utilizando WPForms.
Compreender as funções e capacidades dos utilizadores do WordPress
O WordPress tem várias funções incorporadas. Abaixo, destaquei as funções de utilizador predefinidas suportadas pelo WordPress:
- Administrador: Acesso total ao backend do sítio. Esta função pode realizar actividades como adicionar novos utilizadores, editar funções de utilizador, instalar plug-ins e temas, etc.
- Editor: Pode gerir e publicar conteúdos, mesmo conteúdos escritos por outros. A função limita-se frequentemente a actividades relacionadas com a publicação.
- Autor: A função Autor no WordPress permite aos utilizadores publicar e gerir apenas as suas próprias mensagens.
- Contribuidor: No WordPress, a função de colaborador pode escrever e gerir as suas mensagens, mas não as pode publicar.
- Assinante: Tem acesso limitado, normalmente para ler ou comentar.
Cada função tem um conjunto de "capacidades" que determinam o que os utilizadores podem e não podem fazer. É importante familiarizar-se com as capacidades das funções de utilizador do WordPress para saber que permissões os utilizadores terão ao registarem-se no seu site. Recomendo que consulte o guia do WPBeginner se quiser saber mais sobre as funções e capacidades do utilizador no WordPress.
Como atribuir funções de utilizador condicionalmente no WordPress
Aqui está um passo-a-passo sobre como atribuir funções de utilizador condicionalmente no WordPress.
- Passo 1: Instalar e ativar o plugin WPForms
- Passo 2: Instalar e configurar o addon de registo de utilizadores
- Passo 3: Adicionar um snippet para atribuir condicionalmente a função de utilizador
- Passo 4: Testar o formulário para atribuir funções de utilizador condicionalmente
- Passo 5: Publique o seu formulário de registo do WordPress
Passo 1: Instalar e ativar o plugin WPForms
O WPForms é o melhor plugin para criar formulários básicos e avançados no WordPress.
Desde simples formulários de contacto a funcionalidades mais avançadas como a lógica condicional, é uma ferramenta fiável que tem funcionado bem em vários sítios.
A licença Pro do WPForms inclui acesso ao addon User Registration, que lhe permite criar formulários de registo e login no seu site WordPress.

Depois de comprar a licença Pro, você deve instalar e ativar o WPForms no seu site WordPress. Se esta é a sua primeira vez, confira este guia para saber como instalar o WPForms.
Crie agora o seu formulário de registo de utilizador
Passo 2: Instalar e configurar o addon de registo de utilizadores
Depois de instalar o plugin WPForms, terá também de instalar o addon User Registration.
Para instalar o addon, vá para a área de administração do WordPress e vá para WPForms " Addons. Em seguida, desloque-se para baixo até encontrar o Addon de Registo de Utilizador ou utilize a barra de pesquisa. Quando o encontrar, clique em Install Addon.

Depois de instalar e ativar o suplemento Registo do utilizador no seu site, proceda à criação do formulário de registo.
Criar o seu formulário
Pode criar o seu formulário a partir do zero ou utilizar o nosso modelo de formulário de Registo do utilizador para acelerar o processo de criação do formulário. Para este tutorial, vamos utilizar o modelo de formulário de Registo de Utilizador. Para acessar este modelo, navegue até WPForms " Adicionar novo. Em seguida, selecione Addon Templates no menu da barra lateral.

A partir daqui, clique no botão Utilizar modelo abaixo para aceder ao modelo de Formulário de registo do utilizador.

Isto direccioná-lo-á para o criador de formulários, onde poderá personalizar ainda mais o modelo.

No construtor de formulários, vá em frente e adicione um campo de opções ao seu formulário. Para este tutorial, vou adicionar o campo Dropdown com 2 opções: Professor e Aluno.

Também vou ativar a opção Obrigatório para que os utilizadores tenham de selecionar um tipo de conta ao registarem-se.

Anote o ID do campo Dropdown, pois precisaremos dele na próxima etapa.

Depois de adicionar os campos e personalizar as opções de campo, vá a Definições " Registo do utilizador para aceder a definições adicionais para a extensão.

Se utilizou o modelo de formulário de registo de utilizador, todo o mapeamento de campos estará concluído. No entanto, se estiver a criar o seu formulário de registo a partir do zero, terá de mapear os campos do formulário para os metadados do utilizador do WordPress.

Por predefinição, a secção Funções do utilizador está definida como Subscritor. Não é necessário se preocupar com a atribuição de função por enquanto, pois isso será tratado usando a lógica condicional. No entanto, tenha em atenção que esta será a função predefinida atribuída aos utilizadores se o snippet não funcionar corretamente no seu site.

Quando terminar de personalizar o formulário, certifique-se de que clica no botão Guardar para guardar as alterações.

Passo 3: Adicionar um snippet para atribuir condicionalmente a função de utilizador
O WPForms atualmente não suporta a atribuição de funções de usuário com base na entrada de outros campos por padrão. No entanto, com um snippet PHP personalizado, você pode personalizar seu formulário de registro para atribuir funções de usuário condicionalmente com base na entrada do formulário.
No nosso exemplo, vamos defini-lo para verificar o campo pendente que adicionámos ao formulário de registo. Se o utilizador selecionar Professor como tipo de conta, atribuiremos uma função de Editor ao utilizador. Se o utilizador selecionar Aluno, o snippet atribui-lhe uma função de Autor.
Para continuar, copie e cole o snippet abaixo no seu site. Eu recomendo usar o Código WPC para adicionar o snippet ao seu site. Este plugin facilita a adição de trechos de código personalizados a sítios WordPress sem ter de mexer no functions.php
ou preocupar-se com a quebra do site.
Para mais informações sobre como utilizar o plugin WPCode, consulte o nosso tutorial sobre como adicionar snippets personalizados ao WordPress.
Código Explicação
O snippet acima usa o wpforms_user_registration_process_registration_get_data
para capturar os dados do utilizador depois de este submeter o formulário de registo. Estamos a verificar o campo Dropdown no formulário e a atribuir ao utilizador uma função com base na sua entrada.
Definimos o snippet para funcionar apenas no formulário com um ID de 13. Isto corresponde ao ID do meu formulário de registo. Terá de atualizar este ID para corresponder ao ID do seu formulário. Para obter o ID do seu formulário, vá para WPForms " Todos os formulários e procure na coluna Shortcode. O número no shortcode é o ID do formulário.

Além disso, o $role_field_id
que é o ID do campo Dropdown, está definida como 6 no código acima. Terá de a substituir também para corresponder à do seu campo Dropdown. Lembre-se de que eu pedi para anotar a variável ID do campo pendente. É aqui que vamos utilizar o valor.
O $role_mapping
é onde definimos o mapeamento dos valores do campo Dropdown. A opção Professor corresponde à função de Editor no WordPress, enquanto a opção Aluno corresponde à função de utilizador Autor. Pode adicionar mais pares de valores chave, dependendo do número de opções no seu formulário de registo.
Dica profissional
O mapeamento dos campos Aluno e Professor no snippet acima corresponde às opções que especifiquei no campo Dropdown ao personalizar o formulário de registo. Se as opções no seu campo Dropdown forem diferentes das minhas, certifique-se de que actualiza os pares de chaves na matriz $role_mapping para que correspondam aos valores que utilizou no seu formulário.
Utilizamos o slug associado à função do utilizador para o mapear no snippet. Por exemplo, 'editor' corresponde à função Editor no WordPress. Abaixo, destaquei as funções de usuário padrão do WordPress e seus slugs:
- Administrador - 'administrador'
- Editor - 'editor'
- Autor - 'autor'
- Contribuinte - "contributor
- Assinante - "subscriber" (assinante)
Passo 4: Testar o formulário para atribuir funções de utilizador condicionalmente
O próximo passo depois de adicionar o snippet é testar o formulário para garantir que funciona corretamente antes de o distribuir aos seus utilizadores. Para isso, recomendo que submeta uma entrada de teste para ver se a função do utilizador é definida dinamicamente.
Vou submeter um registo de teste no meu formulário e definir o campo Tipo de conta como Professor.

Agora, para verificar a conta de utilizador na área de administração do WordPress, aceda a Utilizadores " Todos os utilizadores. Aqui, verá todas as contas de utilizador no seu site. Como escolhi Professor ao preencher o formulário de registo, a função do utilizador de teste é definida dinamicamente como Editor.

Um aspeto a ter em conta quando se permite que os utilizadores escolham a sua função no frontend é que não é possível controlar as opções que os utilizadores selecionam. Na nossa implementação, por exemplo, um aluno pode continuar a escolher o tipo de conta Professor e o formulário continuará a ser enviado.
Pode utilizar a nossa extensão Form Locker para restringir o acesso ao seu formulário de registo. Isto garante que apenas os utilizadores com uma palavra-passe específica podem aceder ao formulário.
Em alternativa, pode ativar a ativação do utilizador para o formulário de registo navegando para Definições " Registo do utilizador no criador de formulários. Em seguida, active a opção Ativar ativação do utilizador e selecione o método de Aprovação manual.

Desta forma, o administrador do sítio analisará manualmente cada registo de utilizador e aprovará as contas de utilizador se estas cumprirem os seus requisitos. Pode confirmar se o utilizador escolheu o tipo de conta correto antes de aprovar a sua conta.
Leia também: Segurança no carregamento de ficheiros: Dicas importantes para formulários on-line
Passo 5: Publique o seu formulário de registo do WordPress
Para concluir, vamos adicionar o formulário de registo a uma página. Para isso, edite o formulário para acessar o construtor de formulários. Em seguida, clique no botão Incorporar no canto superior direito da página do construtor de formulários.

Terá a opção de publicar o seu formulário numa página nova ou existente. Para este guia, escolherei a opção Criar nova página.

Dê um nome à sua nova página e clique em Vamos lá.

Será direcionado para o editor de páginas do WordPress com o seu formulário incorporado na página. Clique no botão Publicar para publicar a sua página.

Quando verificar esta página no frontend, verá que tem um formulário de registo de utilizador totalmente funcional. Note que também é possível incorporar os seus formulários utilizando um shortcode ou widget.
Perguntas e Respostas - Como atribuir funções de utilizador condicionalmente
Estas são as respostas a algumas das principais perguntas que vemos sobre a atribuição de funções de utilizador condicionalmente no WordPress.
Posso atribuir várias funções de utilizador condicionalmente?
Não, o núcleo do WordPress suporta apenas uma função por utilizador por predefinição. No entanto, pode utilizar plug-ins como o User Role Editor para atribuir manualmente várias funções.
Os utilizadores existentes serão afectados quando eu implementar a atribuição condicional de funções de utilizador?
Não, isto só afecta os registos de novos utilizadores através de WPForms. As funções dos utilizadores existentes permanecem inalteradas.
Como posso criar uma função de utilizador personalizada no WordPress?
A forma mais fácil de o conseguir é através de um plugin WordPress. Com o plugin Members, pode adicionar novas funções de utilizador no seu site e personalizar a capacidade de cada função. A nova função criada aparecerá no menu suspenso Funções de usuário ao personalizar o complemento Registro de usuário do WPForms.
Porque é que o snippet não está a funcionar no meu sítio?
Isto pode ocorrer se o ID do formulário ou o ID do campo não corresponder ao do seu formulário de registo. Certifique-se de que actualiza o snippet com as IDs do formulário e do campo.
Além disso, se as opções no campo Dropdown não corresponderem às funções especificadas no snippet, o WPForms atribuirá ao usuário a função padrão especificada ao configurar o addon User Registration.
Em seguida, personalize o estilo do seu formulário de registo
Agora, tem um formulário de registo funcional que atribui dinamicamente funções de utilizador com base na entrada de campos no seu formulário. Mostrei-lhe como apresentar o formulário de registo no frontend do seu site. Mas sabia que pode dar um passo em frente e embelezar o seu formulário? O WPForms permite-lhe estilizar os seus formulários WordPress sem escrever qualquer CSS.
Também pode criar uma página de início de sessão personalizada com o logótipo do seu sítio para permitir que os utilizadores iniciem sessão nas suas contas.
Estilize seu formulário do WordPress agora
Pronto para criar o seu formulário? Comece hoje mesmo com o plugin de criação de formulários mais fácil do WordPress. O WPForms Pro inclui muitos modelos gratuitos e oferece uma garantia de reembolso de 14 dias.
Se este artigo o ajudou, siga-nos no Facebook e no Twitter para mais tutoriais e guias gratuitos do WordPress.