Le plug-in Gravity Forms permet de mettre en place des formulaires complexes sur un site WordPress de façon rapide et sécurisée. J’utilise cet excellent plug-in payant sur plusieurs de mes sites, notamment pour permettre aux internautes de créer des articles depuis un simple formulaire.
Seulement soit je suis un boulet (très possible) soit aucune fonction du plug-in ne permet par défaut d’envoyer un mail de confirmation personnalisé à l’auteur lorsque sa contribution a été validée (il est possible d’envoyer en revanche une synthèse assez moche à l’administrateur du site).
N’ayant rien trouvé expliquant comment faire cela sur Google je me suis dit que ça valait la peine de vous expliquer comment je m’y prends.
Paramétrez vos champs email et pseudo sur des champs personnalisés
Lorsque vous créez un formulaire Gravity Forms vous pouvez sélectionner dans Champs Avancés des champs Nom et Email mais ne le faites pas !
Si ces informations seront bien stockées dans le formulaire Gravity Forms et vous seront envoyées par email, mais elles ne seront pas stockées au niveau de l’article.
Autrement dit pour aller les récupérer lors de l’envoi d’une confirmation de publication vous allez galérer…
Choisissez plutôt des Champs personnalisés dans la section Champs d’articles :
Créez un premier champs personnalisé Pseudo que vous affecterez au nouveau custom field guest_pseudo par exemple, en prenant bien soin de sélectionner Type de Champ = Texte Ligne Simple :
Puis créez un deuxième champs personnalisé Email que vous affecterez au nouveau custom field guest_mail, en prenant bien soin de sélectionner Type de Champ = Email :
Je passe sur les différents réglages (requis ou non, etc.) à vous de voir 😉
Rajoutez un hook dans function.php
Vous pouvez ajouter des hooks dans le fichier function.php de votre thème (dans l’interface de WordPress sous Apparence > Editeur) autrement dit des fonctions qui se déclencheront sur certains événements.
Et on a de la chance il existe un joli petit hook qui s’appelle publish_post (ou publish_CPT pour un custom post type).
Il vous suffit donc de copier le code suivant en le personnalisant dans function.php :
add_action('publish_post', 'gravity_notification');
function gravity_notification($post_id) {
$guest_mail = get_post_meta( $post_id, 'guest_mail', true);
$guest_pseudo = get_post_meta( $post_id, 'guest_pseudo', true);
$title = "Titre de votre email de confirmation";
$message = "Bonjour".$guest_pseudo.",
L'article que vous avez proposé a été ajouté avec succès :
".get_the_title( $post_id )."
Merci pour votre contribution.";
$headers= "MIME-Version: 1.0n".
"From: NOTIFICATION \n".
"Content-Type: text/html; charset='".
get_option('blog_charset') . "'\n";
wp_mail($guest_mail, $title, $message, $headers);
}
Dès que vous validerez un article, le contributeur qui vous l’a proposé recevra donc un petit mail de confirmation.
Avouez que c’était facile non ?
Si vous n’avez pas encore acheté le plug-in c’est par là : Gravity Forms
Petite astuce : si vous comptez l’utiliser sur plusieurs sites, achetez une licence 1 site et faites un upgrade, ça vous coûtera moins cher que d’acheter directement la licence multi-sites.