Ce tutoriel vous permettra de comprendre et de bien utiliser l’extension Send PDF for Contact Form 7 en lien avec l’extension de formulaire Contact Form 7.
L’extension Send PDF for Contact Form 7 va vous permettre de récupérer les données postées via votre formulaire pour les insérer dans un PDF construit et préparé par vos soins.
Toutes les corrections de bogues se font d’abord sur la version de GitHub.
C’est plus facile d’envoyer les mises à jour régulièrement.
Attention : pour une même version, je peux avoir corrigé et envoyé plusieurs bogues sans pour autant changer la version.
L’extension est ensuite diffusée par SVN sur le repository de WordPress, le délai et assez long le temps que les bogues soient bien résolus.Vous avez aussi la possibilité de tester l’extension sur mon site de démo !
Pour soutenir le développement de cette extension, vous pouvez faire un don librement via Paypal. Merci !
Florent Maillefaud – Développeur de Send PDF For Contact Form 7
Nous allons découvrir ensemble cette extension en 3 étapes :
1 – Le choix du formulaire
2 – Les paramètres généraux
3 – La mise en page de votre PDF
4 – Compatibilités
5 – Personnaliser votre fichier CSV
Avant de commencer à vous expliquer les options de cette extension, j’imagine que vous avez déjà créé votre formulaire avec Contact Form 7, et là je ne vais pas vous expliquer comment 🙂
N’oubliez pas de remplir l’option « Email (2) » de votre formulaire Contact Form 7. En effet, l’envoi du PDF et du CSV pour l’option « destinataire » va se faire sur l’e-mail entré sur « Utiliser E-mail (2) ».
Le choix du formulaire
Pour cette partie, c’est simple. Vous avez la liste de vos formulaires déjà créés, il vous suffit de choisir celui que vous souhaitez utiliser pour générer un PDF.
Les paramètres généraux
Nous avons choisis notre formulaire, nous allons maintenant définir quelques options :
- Désactiver la génération d’un fichier PDF : à tout moment je peux arrêter la génération d’un PDF pour ce formulaire, cochez « Non ».
- A qui envoyer le PDF ? Le PDF généré peut être envoyé à l’expéditeur, au destinataire ou bien au deux.
- Désactiver l’insertion dans une base de données ? : les données postées sont enregistrées dans une table. Vous pourrez ensuite récupérer les données dans un fichier csv (on verra cela plus bas).
- Vider la table ? Vous pouvez vider toutes les données insérées dans la table en cochant la case et en enregistrant les modifications.
- Désactiver la génération d’un fichier CSV ? A chaque envoi du formulaire, un fichier csv peut être aussi généré et envoyé en pièces jointes ( 1 fichier / envoi )
- A qui envoyer le CSV ? Le CSV généré peut être envoyé à l’expéditeur, au destinataire ou bien au deux.
- Entrer un nom pour les PDF générés : le nom que portera votre PDF en pièces jointes. Chaque PDF généré dans votre dossier /uploads/ se nommera ainsi : nom-du-pdf.pdf
(en réalité le nom sera nom-du-pdf-56cc7d7167724.pdf Le numéro, appelé plus bas [reference], est généré en php par la fonction uniqid(), une fois le PDF créé, il est copié et renommé en nom-du-pdf.pdf) - Compléter le nom de votre PDF avec les balises de votre formulaire : vous pouvez personnaliser le nom de votre PDF avec les balises de votre formulaire, par exemple [nom]-[prenom] ce qui générera le nom de votre PDF comme ceci : mon-document-john-doe.pdf
—> Important : si vous utilisez des balises du formulaire, n’utilisez pas la redirection direct après envoi du formulaire, cela ne fonctionnera pas. Utilisez plutôt la redirection vers une page.
Vous pouvez utiliser aussi les balises [reference] et [date], le format de la date sera à définir. - Changer le dossier de téléchargement ? Par défaut, le nom du dossier de téléchargement est /wp-content/uploads/*ANNEE*/*MOIS*/, avec cette option, tous les fichiers PDF, CSV et images seront déposés vers /wp-content/uploads/sendpdfcf7_uploads/
- Supprimer tous les fichiers dans le dossier de téléchargement ? Cocher cette case si vous souhaitez vider le dossier /sendpdfcf7_uploads/
- Supprimer chaque fichier PDF après l’envoi de l’e-mail ? Une fois l’e-mail envoyé, cochez cette case si vous ne voulez pas conserver les fichiers.
- Autres fichiers à joindre ? Vous pouvez en plus de votre PDF envoyer d’autres pièces jointes. Il suffit de rentrer dans le champs les URL vers celle-ci. Une pièce par ligne.
- A qui envoyer les autres pièces jointes ? Les autres pièces jointes peuvent être envoyées à l’expéditeur, au destinataire ou bien au deux.
- Sélection d’une page à afficher après l’envoi du formulaire : après soumission du formulaire, vous pouvez rediriger les visiteurs vers une autre page (par exemple une page de remerciement).
- Envoyer l’e-mail sans pièces attachées ? Vous avez la possibilité de ne pas envoyer les pièces jointes par e-mail mais plutôt de proposer un téléchargement après redirection (option ci-dessus) ou de juste de générer les PDF.
- Utiliser un lien dans la page de redirection pour télécharger le PDF ? Vous pouvez afficher un lien de téléchargement du PDF sur la page de redirection (option nécessaire à renseigner), cette option nécessite l’insertion des données en base de données (option à activer)
- Entrer le texte pour le lien : Mettez un texte pour le code court [wpcf7pdf_download] à placer sur votre page de redirection. Plusieurs options sont disponibles pour le code court :
– ‘class’ : vous pouvez définir une class CSS (par défaut : ‘btn btn-large btn-primary’)
– ‘target’ : choisissez votre sortie du lien (par défaut : ‘_blank’)
– ‘type’ : choisissez le type ‘button’ ou ‘text’ (par défaut : ‘button’)
– ‘dashicons’ : utilisez un icone pour agrémenter votre texte (par défaut : ‘dashicons-download’). Mettez ‘none’, si vous n’en voulez pas (voir ce lien pour les icones).
– ‘textbutton’ : entrez le texte à afficher pour télécharger votre PDF (par défaut ‘Télécharger votre PDF’)
Exemple : [wpcf7pdf_download dashicons= »dashicons-admin-tools » textbutton= »Voici votre PDF »] - Rediriger directement vers le PDF après l’envoi du formulaire ? : vous pouvez définir l’action après l’envoi du formulaire, l’ouvrir ou non et dans la même fenêtre ou dans une autre. Cette option désactive la page de redirection sélectionnée.
- Sélectionnez un format de date et heure : vous pouvez insérer un code court [date] et [time] dans votre e-mail ou dans le corps du fichier PDF avec le format que vous souhaitez.
- Désactiver les retours à la ligne automatique : Cela désactive le remplacement de saut de ligne automatique (n et r)
- Désactiver le formulaire d’autocomplétions : Cela désactive la saisie automatique des champs
- Activer l’affichage des données avec la case à cocher ou les boutons radio de votre fichier PDF : possibilité d’afficher sur votre PDF les cases à cocher ou radio.
- Activer les formulaires PDF à remplir (Ne fonctionne pas si votre PDF est protégé) : tous les champs seront apparents
- Protéger votre PDF : Protégez l’ouverture de votre PDF via un mot de passe soit généré à la volée, soit un mode de passe unique pour tous les PDF. Utilisez la balise [pdf-password] dans vos emails pour communiquer ce mot de passe.
La mise en page de votre PDF
C’est la partie la plus complexe. Il faut maintenant créer la présentation de votre PDF. L’extension Send PDF for Contact Form 7 utilise la librairie mPDF, on peut donc insérer du HTML pour créer notre document.
- Image d’entête : vous pouvez insérer une image pour votre entête du document PDF. Vous pouvez choisir le centrage (gauche, centre, droite) et corriger sa taille.
- Image d’arrière plan : vous pouvez mettre en ligne une image pour l’arrière plan de votre PDF avec un choix pour une seule ou toutes les pages.
- CSS personnalisé : entrez du code CSS pour personnaliser encore plus votre PDF.
- Taille de page & orientation : choisissez le format et l’orientation de votre PDF.
- Ajouter un fichier CSS : personnalisez votre PDF avec un fichier CSS (un exemple est fourni).
- Marges globales du PDF : personnalisez vos marges pour le PDF
- Choix du séparateur pour les cases à cocher ou les boutons radio : ajouter un sépateur avant ou après vos checkbox/Boutons radio.
- Pour personnaliser votre PDF, utilisez ces balises :
- [addpage] est une simple balise pour forcer un saut de page n’importe où dans votre PDF.
- Utilisez la balise [date] pour écrire la date où vous voulez dans votre PDF.
- [reference] est une simple balise qui est utilisé pour créer des PDF uniques.
- [ID] est une balise pour récupérer l’ID de la base de données si vous avez autorisé l’enregistrement dans les options.
La génération du PDF passe par la fonction de WordPress wpautop(), ce qui signifie qu’il change les doubles sauts de ligne dans le texte en paragraphes HTML ( <p> … </ p> )
Vous pouvez utiliser les tags issus de votre formulaire. Si vous avez choisis une image d’entête, elle sera automatiquement mise dans votre document. Par défaut, l’extension vous propose les champs et tags simples comme ceux d’une première création de formulaire.
Si vous utilisez des balises [file] et qu’elles sont destinées à afficher les images téléversées par les utilisateurs, l’extension détectera si c’est bien une image. Vous pourrez ensuite l’afficher en utilisant la balise HTML :
<img src="[url-file]" width="300" />
Puis dans la construction de votre PDF :
<img src="[url-file-photo]" width="300" />
Si vous utilisez des balises avec des pipes (|)
// Balise de votre formulaire :
[radio radio-choose use_label_element default:1 "CEO|ceo@example.com" "Sales|sales@example.com" "Support|support@example.com"]
// Balise a mettre dans votre PDF
<p>Votre choix : [_raw_radio-choose]</p>
// Cela retournera CEO / Sales / Support
// Si vous ajoutez [radio-choose] en plus (il faut donc les deux balises) cela retournera ceo@example.com / sales@example.com / support@example.com
Si vous utiliez des comptes utilisateurs, vous pouvez aussi insérer leur avatar. La balise [avatar] retourne son URL.
<img src="[avatar]" width="50" height="50" />
Vous pouvez aussi utiliser FontAwesome
<p><span class="fa"></span>Votre nom : [your-name]</p>
<p><span class="fa"></span>Votre prénom : [your-firstname]</p>
<p><span class="fa"></span> Votre email : [your-email]</p>
Vous souhaitez aussi afficher l’image dans l’e-mail envoyé ? Veillez à ce que la case « Supprimer tous les fichiers dans le dossier de téléchargement ? » ne soit pas cochée, et changez votre balise, uniquement dans la partie e-mail de CF7, comme ceci : [file] par [url-file]
N’oubliez pas, si vous utilisez des dates elle sont retournées en format US, pour les retourner en FR utilisez le tags : [_format_VOTRE-TAG-DE-DATE « d/m/Y »] au lieu de [VOTRE-TAG-DE-DATE].
Lors de votre premier enregistrement des paramètres, un aperçu est généré, vous pouvez visualiser l’aspect général en cliquant sur le bouton « Prévisualiser votre PDF« .
A noter que vous pouvez dans les e-mails d’envoi (à l’expéditeur ou au destinataire) utiliser les tags [reference] pour afficher la référence, [date] pour afficher la date du jour et [url-pdf] pour afficher le lien vers le PDF (ce lien sera complet ex: nom-du-pdf-56cc7d7167724.pdf).
Compatibilité avec Contact Form 7 Signature Addon
L’extension Send PDF for Contact Form 7 est compatible avec Contact Form 7 Signature Addon. Ajoutez la balise [signature] dans le champ « Les balises [file] sont pour des images ? » puis dans la construction du PDF :
// Important : NE PAS mettre 'url-' avant le shortcode
<img src="[signature]" width="250" />
Compatibilité avec Signature Field For Contact Form 7 – CF7Sign
L’extension Send PDF for Contact Form 7 est compatible avec Signature Field For Contact Form 7 – CF7Sign. Ajoutez la balise [sign] dans le champ « Les balises [file] sont pour des images ? » puis dans la construction du PDF :
// Important : mettre 'url-' avant le shortcode
<img src="[url-sign]" width="250" />
Compatibilité avec Conditional Fields for Contact Form 7
L’extension Send PDF for Contact Form 7 est compatible avec Conditional Fields for Contact Form 7 et sa version PRO. Ajoutez les mêmes balises préparées dans vos e-mails que dans la construction du PDF. Par exemple :
<table>
<tr><td>Type de support</td><td>[support-type]</td></tr>
[technical-support-selected]
<tr><td>operating-system</td><td>[operating-system]</td></tr>
[os-selected]
<tr><td>version</td><td>[version]</td></tr>
[/os-selected]
[os-other-selected]
<tr><td>other-os</td><td>[other-os]</td></tr>
<tr><td>other-version</td><td>[other-version]</td></tr>
[/os-other-selected]
[/technical-support-selected]
[sales-support-selected]
<tr><td>continent</td><td>[continent]</td></tr>
[/sales-support-selected]
</table>
Personnalisation du fichier CSV
L’extension Send PDF for Contact Form 7 vous permet aussi de générer un fichier CSV avec les données envoyées du formulaire.
Pour activer cela, cliquez sur « NON » pour l’option « Désactiver la génération d’un fichier CSV ?« . Vous pouvez définir à qui on envoi le fichier et le séparateur des données.
Pour personnaliser les champs du fichier CSV, retrouver tout en bas de la page des réglages un tableau de correspondance des champs de votre formulaire :
Vous pouvez cacher les champs inutiles en cochant la case correspondante au début de chaque champ.
Voilà vous savez tout et je pense que vous maîtrisez maintenant cette extension. J’espère qu’il correspondra à vos attentes.
Vous pouvez télécharger l’extension Send PDF for Contact Form 7 ici.
Note : Vous avez trouvé un bug ? Vous avez une idée d’amélioration ? Faîtes le moi savoir sur cette page.
how to multiple images shows in send pdf ?
Hi!
With upload form :
if your tag is [file-photo]
img id="image" src="[url-file-photo]" width="300"
if your tag is [file2-photo]
img id="image" src="[url-file2-photo]" width="300"
Or with direct link to your image :
img src="YOUR-URL" width="243"
Thanks
Disable generate PDF? option not work properly.
Hi!
I have a form without generate PDF or CSV file… it works fine!
Try : https://demo.restezconnectes.fr/send-pdf-for-contact-form-7-easy-form/
Thanks
Hi Florent,
I am currently testing the « Send PDF for Contact Form 7 » plugin and have configured the plugin parameters correctly by following the tutorial provided. I have set up an HTML template with the corresponding CSS and attached the logo to be displayed in the header of each page of the generated PDF.
However, when I preview the PDF, the logo in the header is not displayed.
Could you please assist me in resolving this issue? Additionally, I would appreciate an explanation of what might be causing this problem.
Thank you for your support.
Best regards,
Hi!
Yes, contact me for more support.
Thanks
Header image upload redirecting to a blank page, why?
Hi!
Have you a example? Actually, there are no programmed links in the header image.
Thanks
Bonjour,
J’ai besoin de votre aide pour essayer de résoudre un problème dans le fichier CSV généré.
J’ai un textarea « adresse » dans mon formulaire.
Lors de la saisie du formulaire, si l’on saute des lignes au sein du textarea, ces sauts de ligne sont présents dans l’export CSV et malheureusement, cela décale les données des autres cellules, rendant cet export inexploitable.
Comment puis-je faire pour empêcher ces sauts de ligne ? Serait-il possible de votre côté de forcer l’affichage de ce type de champ dans une seule cellule Excel ? Ou n’ai-je aucune autre solution que de créer autant de champs que nécessaire (adresse 1, adresse 2, adresse 3, cp, ville, pays …) … ce qui ne m’arrange pas ? 😉
En vous remerciant.
Merci beaucoup pour votre plugin, un des plus simples et surtout des plus complets.
Bonne journée.
Cordialement.
Bonjour,
Je vais tester cela et trouver une solution.
Cordialement
Bonjour,
Si vous installer la dernière version sur GitHub, j’ai normalement corrigé le problème.
Pouvez-vous tester cela et me dire ?
Merci
Bonjour,
Merci beaucoup !
Avec la 1.0.2.3, je n’ai plus de sauts de lignes dans le CSV, même si j’ai sauté des lignes dans mon textarea.
C’est parfait.
En revanche, je suis navré, mais depuis cette nouvelle version, j’ai 3 nouveaux problèmes, qui ne se présentaient pas dans la version précédemment utilisée.
1. Dans le PDF généré, une sorte d' »espace/div/autre??? » se génère sous chaque [champ] appelé dans le HTML.
Ce qui, dans mon tableau HTML force l’affichage pour insérer cet « espace » en dessous, exemple :
|——— | —————————————————————|
| | [Champ] |
|intitulé | {ESPACE SUR TOUTE LA LARGEUR} |
|——– | —————————————————————|
Dans mon exemple (pas très clair), mon « intitulé » est centré verticalement dans le TD1. C’est bon.
Mon [champ] devrait l’être aussi dans TD2. Sauf que ce nouvel {ESPACE} invisible force l’affichage du [champ] en haut du TD2, peu importe le style de CSS appliqué dans ce TD2.
Pouvez-vous m’expliquer ce que je peux faire (en CSS) pour supprimer cet espace invisible (margin ou padding n’ont pas d’effet)?
Est-ce lié au bug « bug format text » de la 1.0.2.2 ?
Je pense que j’avais précédemment la version 1.0.1.9.
2. J’utilise aussi Conditional Fields for Contact Form 7.
Dans le PDF généré, les « espaces » occupés par chaque [group] conditionnel restent « visibles » même si le ou les groupes ne renvoient pas de valeur.
Avec la version précédente, on voyait seulement les valeurs remontées, sans espace inoccupé.
Comment me conseillez-vous de gérer ça ? (c’est mon problème le plus important avec la 1.0.2.3, car cela modifie totalement ma mise en page du PDF).
3. Le temps d’affichage du message de confirmation d’envoi de CF7 est devenu ultra rapide !
1 à 2 secondes max avant d’être redirigé vers le formulaire mis à jour.
Faudrait-il que j’utilise la fenêtre surgissante à la place ?
En vous remerciant pour votre aide.
Si j’arrive à la retrouver, je vais essayer de faire un rollback vers la v1.0.1.9, pour que mes problèmes 1, 2 et 3 soient résolus 😉 Même si en attendant je perds la gestion des sauts de lignes issus des textareas et même si ça ‘casse’ les CSV générés.
Tout le reste est parfait, merci encore.
Dans l’attente de votre retour.
Cordialement,
Pierre
Florent,
Je vous remercie d’avoir lu mon message précédent.
J’ai depuis trouvé une solution pour récupérer l’ID Flamingo pour le publier dans le PDF généré, via le fichier functions.php.
Désolé de vous avoir déranger. merci d ene pas publier mon commentaire qui de fait n’a plus de sens.
Et merci encore pour votre plugin.
Bonne fin de journée.
Cordialement,
Pierre
Mr Florent
Thank you for this wonderful plugin!
I installed ver 1.0.1.8 .
As a result, [addpage] no longer works.
Regurds.
Oui, c’est vrai, je travaille sur la version 1.0.1.9 et j’ai la même erreur.
Pourrais-tu le réparer Florent ?
Par contre, j’ai détecté que certaines balises HTML ne sont pas acceptées, par exemple ou
est-ce une erreur ?
Merci, votre plugin est génial !
Bonjour,
Le PDF détecte automatiquement si il a un saut de page. Le coude court [addpage] n’est utile que si on veut vraiment faire un saut de page.
Sur mon site de démo cela fonctionne et j’ai essayé dans tous les sens..
Quelles baises HTML vaut-il rajouter ?
Cordialement
Bonjour Florent,
Serait-il possible de modifier le nombre de caractères de la balise [reference] ?
Je m’en sers comme numéro d’identification, et actuellement, c’est un peu trop long pour mes besoins 🙂
Merci !
Et excellente année 2024 🙂 !
Bonjour,
J’ai regardé un peu mais le problème est que cet ID doit être vraiment unique…
Cordialement
Bonjour Florian,
Je comprends que l’ID est unique, mais est-ce que c’est possible de réduire le nombre de caractères ?
Merci 🙂
Bonjour,
Je veux bien essayer. Vous avez un nombre de caractère minimum (ex: 8, 12) ?
Cordialement
Bonjour,
Merci de tester cette version sur GitHub
Référence limitée à 8 caractères.
Cordialement
Hello,
This plugin seems to be just what I was looking for. Thanks for all the great work.
I would like to know, how can I take out the space taken by the header and footer? I want the content of my pdf to fill the edges of the page like a glove, but I can’t find a way to get rid of the slight white edge on top, and the bigger edge on the bottom
Hello Florent,
The line break in the “textaera” doesn’t work, even though the automatic line break is activated.
Means, if someone is writing in the textarea a notice, and doing a line break, the text shows in one row.
How to resolve the problem?
why sometimes « pdf_uniqueid.pdf » is not the same as it’s save on upload folder « other_pdf_uniqueid.pdf »
Hi!
This bug is now fixed with the 1.0.1.3 version.
Please let me know if it works.
Thanks