Formulário de registro front-end


13

Estou procurando uma maneira fácil de colocar o formulário de registro de usuário no front-end de um site WordPress. Eu já usei o wp_login_form () para colocar o formulário de login no front-end, mas agora preciso fazer o mesmo com o formulário de inscrição.

Alguma ideia?


Desculpe, mas o que você quer dizer com "front-end". Acho que entendo o que front-end e back-end significam, mas não entendo como você pode colocar um formulário em qualquer outro lugar que não seja o front-end. Você quer dizer primeira página?
— Mads Skjern 22/10

Respostas:


7

Jeff Starr escreveu um ótimo tutorial sobre registro de front-end, login e recuperação de senha,
seguindo a abordagem semelhante à sugerida por onetrickpony . Portanto, tome isso como acompanhamento da resposta e como outro recurso que pode ajudá-lo a fazê-lo:
http://digwp.com/2010/12/login-register-password-code/

Agora você tem dois exemplos de como codificar isso sozinho e confie em mim - definitivamente vale a pena fazer dessa maneira (sua). Não é tão difícil e oferece liberdade , flexibilidade e reutilização que nenhum plug-in pode oferecer.


4

caso você queira lidar com isso sozinho, eis o que eu uso:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    require_once(ABSPATH.WPINC.'/registration.php');

    $sanitized_user_login = sanitize_user($user_login);
    $user_email = apply_filters('user_registration_email', $user_email);

    if(!is_email($user_email)) $errors[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registration failed...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

o código é quase idêntico ao da página de inscrição do usuário.

adicione seu formulário ao seu modelo:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="register" />
</form>

você pode criar um widget com isso, um código de acesso ou apenas o modelo de página usual ...


Parece ótimo, embora não parecesse funcionar. Eu encontrei um plugin que funciona muito bem, então obrigado pela ajuda.
— Pippin

funciona para mim, mas acho que você precisa alterar home_url()o URL da página atual porque meu código assume que o formulário está na página inicial. Eu publiquei uma get_current_page_url()função aqui na outra pergunta, não me lembro qual um porém
— onetrickpony

2

Gravity Forms é o melhor plugin de formulário de contato para WordPress, IMO. A versão mais recente, na versão beta, possui um complemento de registro do usuário. Eu tentei e funciona muito bem. Vai custar-lhe embora ... é $ 199 para uma licença de desenvolvedor.

Página de preços http://www.gravityforms.com/purchase-gravity-forms/

Postagem no blog falando sobre o complemento de registro do usuário http://www.gravityhelp.com/

Eu recomendo este plugin para a comunidade WordPress.

Especificações detalhadas:

Aqui estão alguns dos recursos do complemento de registro do usuário:

  • Registro de usuário - Configure um formulário para registrar um usuário, mapeando seus campos de formulário para os campos de registro de usuário disponíveis no WordPress.
  • Meta do usuário - preencha com facilidade os metadados do usuário, como biografia, ID de mensagens instantâneas, nome e sobrenome, bem como metadados personalizados do usuário para atender às suas necessidades.
  • Integração BuddyPress - Preencha os dados do campo de perfil BuddyPress como parte do processo de registro do usuário. Atualmente trabalha com o BuddyPress v1.2.6.
  • Integração de pagamento - Exigir um pagamento antes que o registro do usuário ocorra. Inclui suporte para assinaturas do PayPal e alteração da função do usuário ou exclusão do usuário se a assinatura for cancelada.
  • Campo Senha - O complemento de registro do usuário adiciona um campo Senha aos Gravity Forms para uso em seus formulários. O campo Senha inclui uma opção de confirmação, bem como uma opção interna do verificador de força da senha.
  • Autor da postagem - integre o complemento de registro do usuário e a criação da postagem em um único formulário para que o autor da postagem criada seja o usuário registrado pelo complemento.
  • Criação de site - Crie automaticamente um site em uma rede WordPress (instalação de vários sites) e atribua os usuários recém-criados como Administrador do site.

1

Experimente o plugin de login simples. Ele permite o registro e o login (você precisa habilitar o registro do usuário) e possui uma aparência muito agradável.


Perto, mas não exatamente o que eu preciso. Preciso de algo que possa ser inserido no meu modelo existente.
— Pippin

Sim .. Eu .. Como você não pode colocar isso no seu modelo?
— Lynne

Aqui está um site que eu acabei de criar usando o login simplemodal . Purevapes.com observe os links de registro e login na parte superior. O usuário nunca é retirado do front-end do blog. Você pode incorporá-los usando um código HTML simples no seu modelo, e eles redirecionam o usuário para a primeira página em vez do painel de administração. Portanto, não tenho certeza de como isso não pode ser 'descartado' em nenhum modelo.
— Lynne

Eu quis dizer "caiu" como incluído na página real, não como uma janela modal. Aqui está o plugin Eu só encontrei para fazer isso: wordpress.org/extend/plugins/simplr-registration-form
— Pippin

Ah entendo. Nem me ocorreu que a janela modal apresentaria um problema, mas agora posso ver onde há um lugar para isso e não. Obrigado pelo link do plugin, jogando isso no meu arsenal. Fico feliz que você encontrou a sua resposta :)
— Lynne

0

Você pode usar o plugin Theme My Login


Parece que seu plug-in pode funcionar muito bem, exceto que não consigo fazer com que o formulário de registro funcione. O formulário de login é exibido corretamente, mas quando tento acessar o formulário de registro, ele apenas me leva ao padrão wordpress. Existe uma maneira de apenas exibir o formulário de registro na página?
— Pippin

Esse não é o meu plugin que eu escrevi: P
— Tareq

0

Aqui está uma maneira fácil e agradável de fazer isso:

Copie os nomes dos campos e qualquer outro material do formulário de registro atual do Wordpress. Verifique se o formulário personalizado tem o mesmo nome, incluindo os ocultos, e aponte a ação do formulário para o URL de registro adequado: http://www.yourblog.com/wp-login.php?action=register - Você pode querer para alterar também como o formulário será redirecionado após o registro, se você não gostar de como ele é tratado.

Há também este plugin chamado Insite Login, que permite inserir o formulário de registro, o formulário de login e outros nas páginas do seu site: http://wordpress.org/extend/plugins/insitelogin/

A primeira solução deve fazer o que você quer que faça.


0

Caso precise de mais campos em seu formulário de registro, você pode usar o plug-in Profile Builder

Ele permite que você personalize seu site adicionando formulários de front-end para login, registro e edição de perfil através do uso de códigos de acesso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.