Formulaire d'enregistrement frontal


13

Je cherche un moyen simple de placer le formulaire d'inscription 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 front-end, mais maintenant je dois faire de même avec le formulaire d'inscription.

Des idées?


Désolé, mais que voulez-vous dire par "front-end". Je pense que je comprends ce que signifie front-end et back-end, mais je ne comprends pas comment vous pouvez placer un formulaire ailleurs que sur le front-end. Voulez-vous dire la première page?
Mads Skjern

Réponses:


7

Jeff Starr a écrit un excellent tutoriel sur l'enregistrement frontal, la connexion et la récupération de mot de passe en
adoptant l'approche similaire à celle suggérée par onetrickpony . Prenez donc cela 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 pour coder cela vous-même et croyez-moi - cela vaut vraiment la peine de le faire (à votre façon). Ce n'est pas si difficile et cela vous donne la liberté , la flexibilité et la réutilisabilité qu'aucun plugin ne peut offrir.


4

au cas où vous voudriez gérer cela 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 juste le modèle de page habituel ...


Ça a l'air bien, mais ça ne semble pas fonctionner. J'ai trouvé un plugin qui fonctionne très bien, alors merci pour l'aide.
Pippin

fonctionne pour moi, mais je pense que vous devez changer home_url()avec l'url de la page actuelle car mon code suppose que le formulaire est sur la page d'accueil. J'ai posté une get_current_page_url()fonction ici sur une autre question, mais je ne me souviens pas laquelle
onetrickpony

2

Gravity Forms est le meilleur plugin de formulaire de contact pour WordPress, IMO. La dernière version, en version bêta, dispose d'un module complémentaire d'enregistrement d'utilisateur. Je l'ai essayé et cela fonctionne 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 d'enregistrement d'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étadonnées utilisateur - Remplissez facilement les métadonnées utilisateur telles que la bio, l'identifiant de messagerie instantanée, le prénom, le nom ainsi que les métadonnées utilisateur personnalisées en fonction de vos besoins.
  • Intégration 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 des paiements - Exigez un paiement avant l'enregistrement de l'utilisateur. Inclut la prise en charge des abonnements PayPal et la modification du rôle d'utilisateur ou la suppression de l'utilisateur si l'abonnement est annulé.
  • Champ de mot de passe - Le module complémentaire d'enregistrement d'utilisateur ajoute un champ de mot de passe à Gravity Forms pour l'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 d'enregistrement d'utilisateur et la création de publication sur un seul formulaire afin que l'auteur de la publication créée soit l'utilisateur enregistré par le module complémentaire.
  • Création de site - Créez automatiquement un site sur un réseau WordPress (multisite) et installez les utilisateurs nouvellement créés en tant qu'administrateur du site.

1

Essayez le plugin de connexion simplemodal. Il permet l'enregistrement et la connexion (vous devez activer l'enregistrement des utilisateurs), et il a une très belle apparence.


Fermer, mais pas tout à fait ce dont j'ai besoin. J'ai besoin de quelque chose que je peux déposer dans mon modèle existant.
Pippin

Ouais .. Je .. Comment pouvez-vous ne pas mettre cela dans votre modèle?
Lynne

Voici un site que je viens de terminer de concevoir en utilisant la connexion simplemodal . Purevapes.com notez les liens d'enregistrement et de connexion en haut. L'utilisateur n'est jamais retiré du front-end du blog. Vous pouvez les incorporer en utilisant du code HTML simple dans votre modèle, et ils redirigent l'utilisateur vers la page d'accueil au lieu du panneau d'administration. Je ne sais donc pas comment cela ne peut pas être «déposé» dans un modèle.
Lynne

Je voulais dire "déposé" comme inclus dans la page réelle, pas comme une fenêtre modale. Voici le plugin que je viens de trouver pour le faire: wordpress.org/extend/plugins/simplr-registration-form
Pippin

Ah, je vois. Cela ne m'a même pas traversé l'esprit que la fenêtre modale poserait un problème, mais je peux voir maintenant où il y a une place pour elle et non. Merci pour le lien du plugin, jetant cela dans mon arsenal. Heureux que vous ayez trouvé votre réponse :)
Lynne

0

Vous pouvez utiliser le plugin Theme My Login


Il semble que votre plugin fonctionne très bien, sauf que je ne peux pas faire fonctionner le formulaire d'inscription. Le formulaire de connexion s'affiche correctement, mais lorsque j'essaie d'accéder au formulaire d'inscription, il me suffit de passer à celui par défaut de wordpress. Existe-t-il un moyen d'afficher simplement le formulaire d'inscription sur la page?
Pippin

Ce n'est pas mon plugin que j'ai écrit: P
Tareq

0

Voici une manière simple et agréable de le faire:

Copiez les noms des champs et tout autre élément du formulaire d'inscription Wordpress actuel. Assurez-vous que votre formulaire personnalisé a les mêmes champs de nom, y compris ceux masqués, puis pointez simplement l'action du formulaire vers l'URL d'enregistrement appropriée: http://www.yourblog.com/wp-login.php?action=register - Vous voudrez alors peut-être pour modifier également la façon dont le formulaire est redirigé 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 et d'autres dans les pages de votre site: http://wordpress.org/extend/plugins/insitelogin/

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


0

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 du profil grâce à l'utilisation de codes courts.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.