Comment envoyer un email de notification personnalisé aux internautes qui ont soumis un formulaire Gravity Forms ?

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…

Comment envoyer un email de notification personnalisé aux internautes qui ont soumis un formulaire Gravity Forms ?

Choisissez plutôt des Champs personnalisés dans la section Champs d'articles :

Comment envoyer un email de notification personnalisé aux internautes qui ont soumis un formulaire Gravity Forms ? #2

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 :

Comment envoyer un email de notification personnalisé aux internautes qui ont soumis un formulaire Gravity Forms ? #3

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 :

Comment envoyer un email de notification personnalisé aux internautes qui ont soumis un formulaire Gravity Forms ? #4

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 : 
        <b><a href='".get_permalink( $post_id )."'>".get_the_title( $post_id )."</a></b>
        Merci pour votre contribution.";
        $headers= "MIME-Version: 1.0n".
        "From: NOTIFICATION <[email protected]>\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.

3 1 voter
Noter cet article
S’abonner
Notifier de
guest
Commentaires
Inline Feedbacks
View all comments