Créez vos propres champs de contact utilisateur WordPress

Aujourd’hui, j’ai créé un nouveau plugin pour vous. Un plugin qui traite des méthodes de contact des utilisateurs. Fondamentalement, lorsque vous modifiez un utilisateur dans l’administration, il y a un bloc “informations de contact”. Eh bien, je voudrais vous montrer comment ajouter vos propres champs là-bas, et pour aller un peu plus loin, comment afficher (ou non) ces nouveaux champs sur la page d’inscription.


Voici un aperçu de ce que nous allons créer:

champs-edit-custom

Nouveaux champs utilisateur sur la page d’édition

Les champs personnalisés

Champs personnalisés sur la page d’inscription

Et pour ce faire, comme d’habitude, nous allons créer un plugin simple et agréable!

Étape 1: créer le plugin

Créez un nouveau dossier dans wp-content / plugins et appelez-le «custom-user-contact-methods». Dans ce dossier nouvellement créé, créez un fichier appelé «rc-custom-user-contact-methods.php» et ouvrez-le dans votre logiciel d’édition préféré.

Placez ce contenu dans votre fichier vide. Ce code enregistre simplement le plugin:

Étape 2: définissez vos champs personnalisés

Ensuite, nous devons créer une variable qui contiendra nos champs personnalisés, ceux à utiliser dans la page d'édition utilisateur, ainsi que sur la page d'enregistrement par défaut. Stockons ces champs dans une variable appelée $ extra_fields.

$ extra_fields = array (
array ('facebook', __ ('Facebook Username', 'rc_cucm'), true),
array ('twitter', __ ('Twitter Username', 'rc_cucm'), true),
array ('googleplus', __ ('Google+ ID', 'rc_cucm'), true),
array ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
array ('pinterest', __ ('Pinterest Username', 'rc_cucm'), false),
array ('wordpress', __ ('WordPress.org Username', 'rc_cucm'), false),
array ('phone', __ ('Phone Number', 'rc_cucm'), true)
);

Nous stockons chaque champ dans un tableau qui a 3 paramètres, le premier est l'ID du champ, le second est l'étiquette du champ et le dernier est une information booléenne qui définit si le champ est affiché sur la page d'inscription ou non . Vous pouvez ajouter autant de paramètres que vous le souhaitez, par exemple un espace réservé ou une information requise.

Étape 3: Accrochez le bon filtre

Nous devons maintenant accrocher une fonction au bon filtre. Dans notre cas spécifique, le filtre est «user_contactmethods», et le nom de la fonction que nous allons créer est «rc_add_user_contactmethods».

// Utilisez les user_contactmethods pour ajouter de nouveaux champs
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Étape 4: créez nos champs personnalisés

Nous devons maintenant créer la fonction "rc_add_user_contactmethods". C'est celui qui ajoutera nos champs personnalisés à la page de modification de l'utilisateur. La bonne nouvelle, c'est que nous avons stocké nos champs dans un tableau, cela signifie que la fonction suivante sera entièrement dynamique, et il sera assez facile d'ajouter de nouveaux champs simplement en modifiant la variable $ extra_fields.

/ **
* Ajouter des méthodes de contact personnalisées aux utilisateurs personnalisés
*
* @access public
* @since 1.0
* @return void
* /
fonction rc_add_user_contactmethods ($ user_contactmethods) {

// Récupère les champs
global $ extra_fields;

// Afficher chaque champs
foreach ($ extra_fields comme $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// Renvoie les méthodes de contact
return $ user_contactmethods;
}

À cette étape, si vous enregistrez et activez le plug-in, vous devriez voir vos champs personnalisés dans la page d'édition de l'utilisateur. Comme nous utilisons le bon crochet, nous n'avons pas à créer de données de champs «enregistrer». Donc, le plugin fonctionne très bien pour le moment. Mais j'aimerais aller un peu plus loin et ajouter l'option d'afficher ces champs sur la page d'inscription. Assurez-vous de cocher dans les paramètres la case "Tout le monde peut s'inscrire", sinon vous ne pourrez pas voir le lien "S'inscrire".

Étape 5: Crochets de la page d'enregistrement

Pour ajouter nos champs sur la page d'inscription, nous devons accéder à au moins deux crochets et créer deux fonctions. Un pour afficher les champs et le second pour enregistrer les données des champs dans la base de données.

Accrochons nos fonctions:

// Ajoutez nos champs au processus d'inscription
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Étape 6: Afficher la page d'enregistrement des champs personnalisés

Dans le code ci-dessus, nous avons déclaré deux fonctions. La première consiste à afficher les champs sur la page d'inscription. Dans cette partie, nous devons prendre soin du troisième paramètre de chaque tableau dans $ extra_fields. Ce paramètre booléen indique si les champs doivent être affichés ou non. Vrai: le champ est affiché, faux: le champ n'est pas affiché.

/ **
* Afficher les champs personnalisés sur la page d'inscription
*
* Afficher les champs personnalisés lors de l'inscription si le troisième paramètre du champ est défini sur true
*
* @access public
* @since 1.0
* @return void
* /
fonction rc_register_form_display_extra_fields () {

// Récupère les champs
global $ extra_fields;

// Affiche chaque champ si le 3ème paramètre est réglé sur "true"
foreach ($ extra_fields comme $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ champ [0]]: '';
écho '

» } // fin si } // fin pour foreach }

Étape 7: stocker les valeurs des champs lors du processus d'inscription

Maintenant que nos champs sont affichés sur la page d'inscription, nous avons besoin de stocker leurs valeurs dans la base de données. C'est l'amour de la fonction "rc_user_register_save_extra_fields". Pour ce faire, nous devons utiliser le "wp_update_user ()" une fonction.

/ **
* Enregistrer les valeurs des champs
*
* @access public
* @since 1.0
* @return void
* /
fonction rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Récupère les champs
global $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Enregistrer chaque champ
foreach ($ extra_fields comme $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // fin si
} // fin pour foreach

$ new_user_id = wp_update_user ($ userdata);
}

Conclusion

Eh bien, nous avons vu les bases de l'ajout de nouveaux champs aux méthodes de contact des utilisateurs, mais c'est tout. Vous pouvez par exemple supprimer des champs existants tels que "Yahoo IM", "AIM" et "Jabber" en faisant un simple unset (). Mais vous pouvez également ajouter quelques fonctions pour assainir vos champs personnalisés afin de vérifier par exemple si le numéro de téléphone a un format approprié, si un champ est obligatoire ou non etc etc… N'hésitez pas à demander des fonctionnalités spécifiques dans les commentaires!

Oh, et une dernière chose… si vous voulez afficher les données de n'importe quel domaine, utilisez simplement ceci:

// Le paramètre 1 est l'ID utilisateur
// Le paramètre 2 est l'ID du champ
// Le paramètre 3 est là pour obtenir un var ou un tableau
echo get_user_meta (1, 'twitter', true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map