Comment afficher le formulaire d'inscription utilisateur WordPress (le formulaire qui apparaît dans la page "www.mywebsite.com/wp-register.php") à l'avant de mon blog?
J'ai personnalisé le formulaire d'inscription. Mais je ne sais pas comment appeler ce formulaire dans la première page. Tout soutien sera vraiment d'une grande aide.
Merci d'avance. :)
registration
forms
bueltge
la source
la source
Réponses:
Le processus comprend 2 étapes:
Il y a 3 approches différentes qui me viennent à l'esprit pour montrer le frontend:
Pour cette réponse, je vais utiliser ce dernier. Les raisons sont les suivantes:
1: Créez l'URL
Nous savons tous que le formulaire d'inscription par défaut d'un site WordPress est souvent une cible pour les spammeurs. L'utilisation d'une URL personnalisée est une aide pour résoudre ce problème. De plus, je veux également utiliser une URL variable , c'est-à-dire que l'URL du formulaire d'enregistrement ne doit pas toujours être la même, cela rend la vie des spammeurs plus difficile. L'astuce se fait en utilisant un nonce dans l'url:
L'utilisation de ces fonctions permet d'afficher facilement dans les modèles un lien vers le formulaire d'inscription même s'il est dynamique.
2: Reconnaître l'url, premier bout de
Custom_Reg\Custom_Reg
classeMaintenant, nous devons reconnaître l'URL. Pour le but, je vais commencer à écrire une classe, qui sera terminée plus tard dans la réponse:
La fonction regarde la première partie de l'url après
home_url()
, et si elle correspond à notre nonce, elle retourne TRUE. cette fonction sera utilisée pour vérifier notre demande et effectuer les actions nécessaires pour afficher notre formulaire.3: La
Custom_Reg\Form
classeJe vais maintenant écrire une classe, qui sera chargée de générer le balisage du formulaire. Je vais également l'utiliser pour stocker dans une propriété le chemin du fichier modèle qui devrait être utilisé pour afficher le formulaire.
La classe génère un balisage de formulaire en boucle tous les champs a ajouté la
create
méthode d' appel sur chacun d'eux. Chaque champ doit être une instance deCustom_Reg\FieldInterface
. Un champ caché supplémentaire est ajouté pour la vérification nonce. La méthode du formulaire est 'POST' par défaut, mais elle peut être réglée sur 'GET' en utilisant lasetVerb
méthode. Une fois créé, le balisage est enregistré dans la$form
propriété d'objet qui est répercutée par laoutput()
méthode, accrochée au'custom_registration_form'
crochet: dans le modèle de formulaire, il suffit d'appelerdo_action( 'custom_registration_form' )
pour afficher le formulaire.4: Le modèle par défaut
Comme je l'ai dit, le modèle de formulaire peut être facilement remplacé, mais nous avons besoin d'un modèle de base comme solution de rechange. J'écrirai ici un modèle très approximatif, plus une preuve de concept qu'un vrai modèle.
5: L'
Custom_Reg\FieldInterface
interfaceChaque champ doit être un objet qui implémente l'interface suivante
Je pense que les commentaires expliquent ce que les classes implémentant cette interface devraient faire.
6: Ajout de certains champs
Maintenant, nous avons besoin de quelques champs. Nous pouvons créer un fichier appelé 'fields.php' où nous définissons les classes de champs:
J'ai utilisé une classe de base pour définir l'implémentation d'interface par défaut, cependant, on peut ajouter des champs très personnalisés implémentant directement l'interface ou étendant la classe de base et remplaçant certaines méthodes.
À ce stade, nous avons tout pour afficher le formulaire, maintenant nous avons besoin de quelque chose pour valider et enregistrer les champs.
7: La
Custom_Reg\Saver
classeCette classe a 2 méthodes principales, une (
validate
) qui boucle les champs, les valide et enregistre les bonnes données dans un tableau, la seconde (save
) enregistre toutes les données dans la base de données et envoie le mot de passe par e-mail au nouvel utilisateur.8: Utilisation de classes définies: terminer la
Custom_Reg
classeMaintenant, nous pouvons travailler à nouveau sur la
Custom_Reg
classe, en ajoutant les méthodes qui "collent" l'objet défini et les font fonctionnerLe constructeur de la classe accepte une instance de
Form
et une deSaver
.init()
La méthode (en utilisantcheckUrl()
) regarde la première partie de l'URL aprèshome_url()
, et si elle correspond avec le bon nonce, elle vérifie si le formulaire a déjà été soumis, si c'est le cas en utilisant l'Saver
objet, elle valide et enregistre les données utilisateur, sinon il suffit d'imprimer le formulaire .init()
La méthode déclenche également le hook d'action en'custom_reg_form_init'
passant l'instance de formulaire comme argument: ce hook doit être utilisé pour ajouter des champs, pour configurer le modèle personnalisé et également pour personnaliser la méthode du formulaire.9: Assembler les choses
Maintenant, nous devons écrire le fichier du plugin principal, où nous pouvons
Custom_Reg
classe d' instanciation et lainit()
méthode d' appel à l'aide d'un hook raisonnablement précoceAlors:
10: Tâches manquantes
Maintenant, tout est assez bien fait. Nous avons juste à personnaliser le modèle, en ajoutant probablement un fichier de modèle personnalisé dans notre thème.
Nous pouvons ajouter des styles et des scripts spécifiques uniquement à la page d'inscription personnalisée de cette manière
En utilisant cette méthode, nous pouvons mettre en file d'attente certains scripts js pour gérer la validation côté client, par exemple celle-ci . Le balisage nécessaire pour faire fonctionner ce script peut être facilement géré lors de l'édition de la
Custom_Reg\BaseField
classe.Si nous voulons personnaliser l'e-mail d'inscription, nous pouvons utiliser la méthode standard et avoir des données personnalisées enregistrées sur méta, nous pouvons les utiliser dans l'e-mail.
La dernière tâche que nous voulons probablement mettre en œuvre est d'empêcher la demande de formulaire d'inscription par défaut, aussi simple que:
Tous les fichiers peuvent être trouvés dans un Gist ici .
la source
TLDR; Mettez la forme suivante dans votre thème, les attributs
name
etid
sont importants:J'ai trouvé un excellent article Tutsplus sur la création à partir de zéro d'un formulaire d'inscription Wordpress fantaisie . Cela passe beaucoup de temps à styliser le formulaire, mais contient la section assez simple suivante sur le code wordpress requis:
Edit: J'ai ajouté le dernier bit supplémentaire de l'article pour expliquer où placer les extraits de code ci-dessus - c'est juste un formulaire afin qu'il puisse aller dans n'importe quel modèle de page ou barre latérale ou en faire un shortcode. La section importante est celle
form
qui contient les extraits ci-dessus et les champs obligatoires importants.la source
wp-login.php?action=register
pagecet article fournit un excellent didacticiel sur la façon de créer vos propres formulaires d'enregistrement / connexion / restauration de mot de passe frontend.
ou si vous cherchez un plugin, je les ai déjà utilisés et je peux les recommander:
la source
J'ai créé un site Web il y a quelque temps qui affichait un formulaire d'inscription personnalisé sur le côté frontal. Ce site n'est plus en ligne mais voici quelques captures d'écran.
Voici les étapes que j'ai suivies:
1) Activez la possibilité pour tous les visiteurs de demander un nouveau compte via Paramètres> Général> Option d'adhésion. La page d'inscription apparaît maintenant à l'URL /wp-login.php?action=register
2) Personnalisez le formulaire d'inscription pour qu'il ressemble à l'interface de votre site. Ceci est plus délicat et dépend du thème que vous utilisez.
Voici un exemple avec twentythirteen:
Modifiez ensuite la feuille de style du thème pour que le formulaire apparaisse comme vous le souhaitez.
3) Vous pouvez encore modifier le formulaire en modifiant les messages affichés:
4) Si vous avez besoin d'un formulaire d'enregistrement frontal, vous ne voudrez probablement pas que les utilisateurs enregistrés voient le backend lorsqu'ils se connectent.
Il y a beaucoup d'étapes, mais le résultat est là!
la source
Bien plus simple: utilisez une fonction WordPress appelée
wp_login_form()
( page Codex ici ).Vous pouvez créer votre propre plugin pour pouvoir utiliser un shortcode sur l'une de vos pages:
Tout ce que vous avez à faire est de styliser votre formulaire sur le frontend.
la source
Si vous êtes ouvert à l'utilisation de plugins, j'ai déjà utilisé le module complémentaire d'enregistrement d'utilisateur pour Gravity Forms, cela fonctionnait très bien:
http://www.gravityforms.com/add-ons/user-registration/
Edit: Je me rends compte que ce n'est pas une solution très détaillée, mais elle fait exactement ce dont vous avez besoin et c'est une bonne solution.
Modifier: pour approfondir ma réponse, le module complémentaire d'enregistrement des utilisateurs pour les formulaires de gravité vous permet de mapper tous les champs d'un formulaire créé à l'aide de Gravity Forms vers des champs spécifiques à l'utilisateur. Par exemple, vous pouvez créer un formulaire avec prénom, nom, email, site Web, mot de passe. Lors de la soumission, le module complémentaire mappera ces entrées aux champs utilisateur appropriés.
Une autre grande chose à ce sujet, c'est que vous pouvez ajouter tous les utilisateurs enregistrés dans une file d'attente d'approbation. Leurs comptes d'utilisateurs ne seraient créés qu'une fois approuvés dans le backend par un administrateur.
Si le lien ci-dessus se casse, il suffit de Google "Ajout d'inscription utilisateur pour Gravity Forms"
la source