Formulário de registro front-end

12

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

Alguma idéia?

    
por Pippin 17.01.2011 / 21:48

7 respostas

6

Jeff Starr escreveu um ótimo tutorial sobre registro de front-end, login e recuperação de senha
tendo a abordagem semelhante como sugerida por onetrickpony . Então, tome isso como um seguimento de sua resposta e como outro recurso que pode ajudá-lo a fazê-lo: "> enlace

Agora você tem dois exemplos de como codificar isso e confiar em mim - definitivamente vale a pena fazer isso (seu próprio jeito). Não é tão difícil e dá a você liberdade , flexibilidade e reusabilidade que nenhum plugin pode oferecer.

    
por Michal Mau 18.01.2011 / 21:11
3

no caso de você querer lidar com isso sozinho, aqui está 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 no 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 shortcode ou apenas o modelo de página usual ...

    
por onetrickpony 18.01.2011 / 04:02
2

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

Página de preços enlace

Postagem no blog falando sobre o complemento de registro do usuário enlace

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 do usuário - Configure um formulário para registrar um usuário mapeando seu formulário campos para registro de usuário disponível campos no WordPress.
  • User Meta - preencha facilmente o meta do usuário dados como bio, mensagens instantâneas id, primeiro nome, sobrenome e também meta de usuário personalizada para atender às suas necessidades.
  • Integração BuddyPress - Preencher Dados do campo de perfil BuddyPress como parte do processo de registro do usuário. Atualmente trabalha com BuddyPress v1.2.6.
  • Integração de pagamento - exigir uma pagamento antes do registro do usuário ocorre. Inclui suporte para PayPal assinaturas e alterando o usuário função ou excluir o usuário se o assinatura é cancelada.
  • Campo de senha - o usuário Complemento de registro adiciona uma senha campo para formulários de gravidade para uso em seus formulários. O campo da senha inclui uma opção de confirmação, como bem como um construído em força de senha opção de verificador.
  • Autor da postagem - Integrar o usuário Registro Add-On e Post Creation em um único formulário para que o autor do post que é criado é o usuário registrado pelo add-on.
  • Criação de sites - criar automaticamente um site em uma rede WordPress (multi-site) instalar e atribuir o usuários recém-criados como Administrador do site.
por Carson 18.01.2011 / 03:16
1

Experimente o plugin de login simplemodal. Ele permite o registro e login (você tem que habilitar o registro do usuário), e ele tem uma aparência muito boa.

    
por Lynne 17.01.2011 / 22:41
0

Você pode usar o plug-in do Theme My Login

    
por Tareq 17.01.2011 / 22:52
0

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

Copie os nomes dos campos e qualquer outro material do formulário atual de registro do Wordpress. Verifique se o formulário personalizado tem os mesmos campos de nome, incluindo os ocultos, e aponte apenas a ação do formulário para o URL de registro adequado: enlace - Você pode querer alterar o modo como o formulário também redireciona após o registro, se você não gosta de como ele é tratado.

Existe também este plugin chamado Insite Login, que permite que você insira o formulário de registro, o formulário de login e outros em páginas do seu site: enlace

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

    
por Dwayne Charrington 18.01.2011 / 03:52
0

Caso você precise de mais campos em seu formulário de registro, você pode usar o Plug-in do Construtor de Perfil

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

    
por Cristian Dumitru Antohe 13.04.2011 / 13:24