web-dev-qa-db-fra.com

Formulaire d'inscription frontale

Je cherche un moyen facile de placer le formulaire d'inscription d'utilisateur sur le front-end d'un site WordPress. J'ai déjà utilisé wp_login_form () pour placer le formulaire de connexion sur le serveur principal, mais je dois maintenant faire de même avec le formulaire d'inscription.

Des idées?

12
Pippin

Jeff Starr a écrit un excellent tutoriel sur l’enregistrement frontal, la récupération du login et du mot de passe
adoptant la même approche que suggérée par onetrickpony . Donc, prenez ceci comme un suivi de sa réponse et comme une autre ressource qui pourrait vous aider à le faire:
http://digwp.com/2010/12/login-register-password-code/

Maintenant, vous avez deux exemples: comment coder cela vous-même et me faire confiance - cela vaut vraiment la peine de le faire de cette façon. Ce n'est pas si difficile et cela vous donne liberté , flexibilité et réutilisabilité qu'aucun plugin ne peut offrir.

6
Michal Mau

au cas où vous voudriez vous en occuper vous-même, voici ce que j'utilise:

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;
}

le code est presque identique à celui de la page d'inscription de l'utilisateur.

puis ajoutez votre formulaire dans votre modèle:

<?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>

vous pouvez soit créer un widget avec cela, un shortcode ou simplement le modèle de page habituel ...

4
onetrickpony

Gravity Forms est le meilleur plugin de formulaire de contact pour WordPress, IMO. La version la plus récente, en version bêta, comprend un module d’enregistrement d’utilisateur. Je l'ai essayé et ça marche très bien. Cela vous coûtera cependant ... c'est 199 $ pour une licence de développeur.

Page de tarification http://www.gravityforms.com/purchase-gravity-forms/

Article de blog parlant du module complémentaire d'enregistrement d'utilisateur http://www.gravityhelp.com/

Je recommande fortement ce plugin à la communauté WordPress.

Spécifications détaillées:

Voici quelques-unes des fonctionnalités du module complémentaire Enregistrement de l'utilisateur:

  • Enregistrement d'utilisateur - Configurez un formulaire pour enregistrer un utilisateur en mappant vos champs de formulaire aux champs d'enregistrement d'utilisateur disponibles dans WordPress.
  • Méta utilisateur - Renseignez facilement les métadonnées utilisateur telles que la bio, l'id de messagerie instantanée, le prénom, le nom de famille ainsi que la méta utilisateur personnalisée en fonction de vos besoins.
  • Intégration de BuddyPress - Remplissez les données de champ du profil BuddyPress dans le cadre du processus d’enregistrement de l’utilisateur. Fonctionne actuellement avec BuddyPress v1.2.6.
  • Intégration du paiement - Exige un paiement avant l'enregistrement de l'utilisateur. Inclut la prise en charge des abonnements Paypal et la modification du rôle de l'utilisateur ou la suppression de l'utilisateur si l'abonnement est annulé.
  • Champ Mot de passe - Le module complémentaire Enregistrement de l'utilisateur ajoute un champ Mot de passe aux formulaires Gravity à utiliser dans vos formulaires. Le champ Mot de passe comprend une option de confirmation, ainsi qu'une option intégrée de vérification de la force du mot de passe.
  • Auteur de publication - Intégrez le module complémentaire Enregistrement de l'utilisateur et la création d'une publication dans un seul formulaire de sorte que l'auteur du message créé soit l'utilisateur enregistré par le module complémentaire.
  • Création de site - Créez automatiquement un site sur un réseau WordPress (installation sur plusieurs sites) et assignez les utilisateurs nouvellement créés en tant qu'administrateur du site.
2
Carson

Essayez le plugin de connexion simplemodal. Il permet l’enregistrement et la connexion (vous devez activer l’enregistrement de l’utilisateur), et il a un aspect très agréable.

1
Lynne

Si vous avez besoin de plus de champs sur votre formulaire d’inscription, vous pouvez utiliser le plugin Profile Builder

Il vous permet de personnaliser votre site Web en ajoutant des formulaires frontaux pour la connexion, l'enregistrement et la modification de profil via l'utilisation de codes abrégés.

Vous pouvez utiliser Theme My Login plugin

0
Tareq

Voici un moyen simple et agréable que j'ai fait:

Copiez les noms de champs et tout autre élément du formulaire d’inscription Wordpress actuel. Assurez-vous que votre formulaire personnalisé contient les mêmes champs de nom, y compris ceux qui sont cachés, puis pointez simplement l'action du formulaire sur l'URL d'enregistrement appropriée: http://www.yourblog.com/wp-login.php?action=register - Vous voudrez peut-être ensuite changer la façon dont le formulaire redirige après l'enregistrement si vous n'aimez pas la façon dont il est géré.

Il existe également ce plugin appelé Insite Login qui vous permet de déposer le formulaire d’inscription, le formulaire de connexion, etc. dans les pages de votre site: http://wordpress.org/extend/plugins/insitelogin/

La première solution devrait cependant faire ce que vous voulez.

0
Dwayne Charrington