Actualités WordPress, CSS & Webdesign, OceanWP & Elementor.

Composer un formulaire WordPress avec un menu de sélection d’adresses de contact.

Voilà un problème peu banal, en général un site comporte 1 seul formulaire de contact, on trouve parfois 2 ou 3 formulaires mais ils sont souvent différents dans leur structure et peuvent pointer vers la même adresse courriel de réception.

Mon cas est très simple, je gère un pool de 80 magasins représentant une marque, présentés via une extension de cartographie de type « store location » (Map List Pro), mon choix pour cette extension c’est la possibilité de renseigner la partie « infos » affichée sur les cartes (ainsi que la présentation des listes de magasins dans la page dédiée aux magasins).

Hors chaque magasin possède sa propre adresse courriel et je ne veux pas générer un formulaire par magasin avec son adresse d’envoi personnalisée.

Utilisant depuis pas mal de temps l’extension de formulaire Contact Form 7 j’ai découvert un module complémentaire nommé « Contact Form 7 Select Box Editor Button » qui permet de gérer un élément de formulaire de type « select » via une URL qui pointe vers le formulaire possédant ce menu déroulant dans lequel sont stockées toutes les adresses courriels des magasins.

L’appel de la bonne adresse courriel se fera avec ce genre d’URL :

http://www.societe.com/formulaire-de-contact-magasin/ #CODE 

Le code est constitué du nom saisi lors de la création de l’élément « select » dans le formulaire Contact Form, soit quelque chose comme ça (ex. avec le nom « recipient » pour l’élément « select ») :

[select* recipient id:recipient « poitiers|pierre-michel@societe.com » « marmande|arnault-bernard@societe.com » « limoges|paul-henry@societe.com »]

Selon la syntaxe de Contact Form 7 le menu « select » est obligatoire (*) on ajoute une ID pour le repérer au besoin (optionnel) si un second menu « select » est présent dans le formulaire.

Le code est donc composé de la partie « nom » du menu « select » soit :

 marmande |arnault-bernard@societe.com

Ce qui va donner l’URL suivante pour faire partir le formulaire sur l’adresse « arnault-bernard@societe.com » :

http://www.societe.com/formulaire-de-contact-magasin/ #marmande 

Si le nom saisi comporte plusieurs mots (ex. : la primaube) on ajoute le symbole « + » entre eux, ce qui donne une URL du genre :

http://www.societe.com/formulaire-de-contact-magasin/ #la+primaube 

La présence du menu « select » dans mon formulaire me gênait elle pouvait apporter son lot de problèmes si le visiteur était curieux, j’ai donc laissé le menu actif mais il est masqué par un « dixplay:none » sur la balise qui l’encadre (ici un <p>), il fait donc son office de base de données courriels. On peut s’étonner de laisser toutes ces adresses accessibles facilement au moindre robot, dans le cas qui m’intéresse ces adresses sont disponibles facilement car génériques pour des contacts commerciaux, rien de privé.

La création de l’ensemble des adresses s’est faite via un fichier préparé sur Excel, exporté et traité avec un éditeur de texte pour réaliser des rechercher/remplacer qui ont « construit » la longue ligne des entrées « select ».

Notez une limitation de l’extension à un seul formulaire bénéficiant de ce système, cette limitation sera peut-être enlevée dans le futur (dixit le blog du développeur Benjamin Pick)

Voilà une solution pratique pour réaliser un formulaire unique qui envoie sur 80 adresses courriels différentes selon un contexte de liens disposés sur une carte Google par exemple.

Sources : Map List Pro, Contact Form 7, Contact Form 7 Select Box Editor Button

Cet article a 2 commentaires

  1. Pas mal cette solution, même si la saisie est un peu lourde pour les adresses avec les tags.
    Décidément Form 7 est un très bon outil de formulaire pour WordPress.
    Merci pour l’info.

  2. Ça fait un moment que je cherche ce genre d’installation, j’ai bricolé un temps avec plein de formulaires, c’est vrai que c’est pas banal. Merci pour ton explication. 🙂

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Fermer le menu