Aperçu et prérequis
MevvForms Free est le runtime local. Un formulaire publié est lu depuis un enregistrement de formulaire WordPress versionné, rendu avec de vraies étiquettes et de vraies relations d’erreur, revalidé sur le serveur, stocké localement et confié à une file d’attente de notifications durable.
- WordPress
- 6.6 ou plus récent ; testé jusqu’à WordPress 7.1.
- PHP
- 8.1 ou plus récent ; la matrice de versions couvre PHP 8.1–8.5.
- Frontière des données
- Les définitions de formulaires, les entrées et les tâches en file d’attente restent par défaut sur le site WordPress.
- Tables
- Treize tables propres : les soumissions et leurs valeurs typées, la file d’attente des tâches, les fichiers, les soumissions partiellement terminées, le journal des notifications, deux compteurs d’analytique, les liens de contenu, le stock, les codes de réduction, les paiements et les événements de paiement.
- Tâches planifiées
- Deux tâches horaires. L’une applique la conservation, l’autre vide la file d’attente unique qui porte les notifications, les flux différés et les exports — une seule file plutôt qu’une tâche cron par fonctionnalité.
- Fichiers de traduction
- Dix-neuf paramètres régionaux WordPress sont fournis avec l’extension, catalogues sources inclus.
Free n’adresse aucune requête de licence, de télémétrie, d’IA ou de mise à jour à un service externe pendant qu’un visiteur affiche ou envoie un formulaire.
Installation
- Réalisez une sauvegarde restaurable de la base de données et de wp-content.
- Téléversez et activez le ZIP de MevvForms Free.
- Vérifiez que les tables de base de données de MevvForms ont été créées et qu’un administrateur peut ouvrir le tableau de bord.
- Gardez l’extension de formulaires d’origine active jusqu’à ce que l’aperçu de migration, l’import et les contrôles de santé soient terminés.
- N’installez le compagnon Pro correspondant que si le formulaire enregistré utilise un module Pro publié.
Ne supprimez pas le paquet Free tant que Pro est installé. Le runtime des formulaires enregistrés appartient à Free ; Pro l’étend.
Le constructeur
Les champs sont mis en place par glisser-déposer, et tout ce que la souris peut faire, le clavier peut le faire aussi. Ajouter, sélectionner et supprimer un champ sont des boutons ordinaires, donc Entrée et Espace fonctionnent déjà ; déplacer un champ a son propre raccourci, Ctrl avec la flèche haut ou bas, qui appelle exactement le même déplacement qu’un glisser. Après chaque changement, le focus est remis sur la carte sur laquelle vous travailliez, et une région dynamique annonce ce qui s’est passé — « Email déplacé de la position 2 à la position 5 sur 9 » — afin que la réorganisation puisse être suivie sans la voir.
Les colonnes sont un outil de mise en page assorti d’une règle : l’ordre de lecture doit rester identique à l’ordre des champs. Cela est vérifié côté serveur, pas laissé au CSS. Une mise en page qui placerait les champs sur la page dans un ordre différent de celui du schéma est refusée avec une erreur plutôt que rendue, car un lecteur d’écran et un visiteur voyant doivent recevoir le même formulaire.
- Enregistrement automatique
- Le brouillon est écrit dans l’enregistrement de brouillon propre au formulaire environ deux secondes et demie après que vous arrêtez de taper. Il ne touche jamais au formulaire publié et ne crée jamais de révision WordPress, donc l’enregistrement automatique ne peut rien publier par accident.
- Révisions
- L’enregistrement utilise le système de révisions propre à WordPress plutôt qu’un système privé, ce qui signifie que les révisions sont visibles par tout ce qui comprend WordPress. Le constructeur liste les cinquante plus récentes et peut restaurer n’importe laquelle d’entre elles.
Il n’y a ni annulation ni rétablissement dans le constructeur. Restaurer une révision antérieure est le moyen de revenir en arrière, et cela restaure l’ensemble du formulaire plutôt que la dernière action. Si vous êtes sur le point de faire un changement important, enregistrez d’abord pour qu’il y ait une révision à laquelle revenir.
Types de champs
Trente-huit types de champs, en cinq groupes. Tous sont dans le paquet gratuit, y compris signature, répéteur, matrice et quiz.
- Basique
- Texte sur une ligne, texte de paragraphe, e-mail, e-mail avec confirmation, téléphone, URL de site web, nombre, mot de passe, valeur cachée.
- Choix
- Liste déroulante, liste déroulante à sélection multiple, groupe de boutons radio, groupe de cases à cocher, case à cocher unique, consentement, évaluation, classement, curseur.
- Avancé
- Nom, adresse, date, heure, date et heure, couleur, téléversement de fichier.
- Paiement
- Calcul, total de commande, produit, code de réduction.
- Mise en page
- Titre, saut de section, séparateur, bloc de contenu, saut de page. Ceux-ci ne portent aucune saisie et ne produisent aucune valeur stockée.
Un champ mot de passe est rendu et validé mais sa valeur n’est jamais écrite dans une soumission. Il en va de même pour tout champ marqué comme non stocké. Les champs calcul et total affichent bien une case à l’écran, mais leur valeur ne vient pas du navigateur : le serveur réexécute la formule et écrase ce qui est arrivé.
Modèles
Vingt-huit formulaires prêts, pensés comme point de départ et non comme produit fini : contact, demande de devis, candidature, inscription à un événement, enquête de satisfaction, demande d’assistance, demande de rendez-vous, inscription à la newsletter, commande de produit, réclamation, don, réservation de table, inscription d’utilisateur, quiz, sondage, envoi de fichier, témoignage, enquête de départ, demande de maintenance, planificateur de réunion, inscription à un cours, autorisation parentale, enquête de recommandation, réservation d’hébergement, inscription de bénévole, rapport de bogue, inscription de fournisseur et demande de rappel.
Un modèle est copié dans un nouveau formulaire puis modifié ; ce n’est pas un lien vivant, donc modifier un modèle plus tard ne change pas les formulaires déjà construits à partir de lui.
Afficher et envoyer un formulaire
Intégrez un formulaire publié avec [mevvforms id="123"]. Le rendu imprime des identifiants de champs stables, de vraies étiquettes, des descriptions, une cible de résumé d’erreurs et une session signée liée à la révision courante du formulaire.
Dans l’éditeur de blocs, la même chose est un bloc — MevvForms Form — et son aperçu n’est pas une approximation : l’éditeur demande au serveur de rendre le bloc, et le serveur le rend exactement avec le code utilisé en façade. Ce que vous voyez dans l’éditeur est la page.
- L’état obligatoire et les règles de validation proviennent du schéma détenu par le serveur.
- Des valeurs client cachées ou inconnues ne peuvent pas assouplir les règles du serveur.
- Un envoi valide crée l’entrée avant tout effet de bord de notification.
- La réponse contient le message configuré ou une redirection sûre, jamais les valeurs de champs stockées.
Si un formulaire a changé après l’ouverture de la page, actualisez la page avant d’envoyer pour que la session signée corresponde à la révision courante.
Logique conditionnelle
Un champ peut être affiché ou masqué en fonction de la valeur d’autres champs, avec des groupes ET et OU imbriqués les uns dans les autres jusqu’à dix niveaux de profondeur. Quatorze opérateurs sont disponibles : égal à, différent de, contient, ne contient pas, commence par, se termine par, est vide, n’est pas vide, supérieur à, inférieur à, supérieur ou égal à, inférieur ou égal à, fait partie de, et ne fait pas partie de.
Les conditions sont réévaluées côté serveur à chaque soumission. Un champ que le navigateur a masqué peut quand même être envoyé à la main, donc le masquer dans le navigateur est un confort et jamais une règle. La même évaluation décide quels champs existent pour la validation, pour le stockage et pour le corps de la notification — ce qui signifie aussi que le formulaire se comporte correctement avec JavaScript désactivé, simplement sans l’affichage et le masquage en direct.
Formulaires multi-étapes et enregistrer-et-continuer
Un saut de page transforme un formulaire en plusieurs étapes. C’est un champ de mise en page ordinaire, donc un long formulaire devient un formulaire multi-étapes en ajoutant un champ plutôt qu’en étant converti en autre chose.
Enregistrer-et-continuer conserve une soumission partiellement terminée et remet au visiteur un lien pour y revenir. Le lien porte un jeton signé — l’identifiant de la ligne et un HMAC dessus — et la signature est dérivée du secret propre au site. Rien dans la base de données ne suffit à en forger un à lui seul, la comparaison se fait en temps constant, et le lien expire au bout de trente jours.
Le jeton fait office d’identifiant : aucune connexion n’est requise et aucun cookie n’est posé, donc quiconque détient le lien peut continuer cette soumission. Traitez un lien de reprise comme vous traiteriez un lien de réinitialisation de mot de passe — envoyez-le à la personne, pas à une boîte de réception partagée.
Entrées et frontière de confidentialité
Les entrées et les projections typées de champs sont stockées dans des tables locales dédiées. Les mots de passe, les données de carte, le CVV, les nonces WordPress, les jetons de session et les champs marqués store=false ne sont jamais écrits dans les valeurs d’entrée.
- Les adresses IP ne sont représentées que par un HMAC propre au site, là où la limitation de débit en a besoin.
- Les projections texte, numérique et date permettent une recherche ultérieure sans changer l’identité d’origine du champ.
- Une écriture d’entrée ou de file de sortie en échec annule la totalité de la transaction d’envoi.
- La preuve de production ne consigne que les identifiants de formulaire, d’entrée et de tâche ; jamais les valeurs envoyées.
La liste des soumissions recherche dans les valeurs stockées, filtre par statut, par état lu et favori et par plage de dates, et applique lu, non lu, favori, retirer des favoris, spam, corbeille, restaurer et supprimer à une sélection en une fois. Chacune de ces actions est vérifiée séparément par rapport à vos permissions, donc un rôle qui peut lire les soumissions mais pas les supprimer ne peut pas les supprimer via une action groupée.
- Un CSV qui s’ouvre correctement
- Le fichier commence par une marque d’ordre des octets, ce qui fait qu’Excel le lit comme de l’UTF-8 — sans elle les caractères turcs arrivent corrompus et la réaction habituelle est d’accuser l’export plutôt que l’encodage.
- Un CSV qui ne peut pas s’exécuter
- Une valeur commençant par
=,+,-,@, une tabulation ou un retour chariot est préfixée d’une apostrophe. Ces caractères font qu’un tableur traite une valeur soumise comme une formule, et un formulaire est exactement l’endroit où un inconnu choisit cette valeur.
Notifications et confirmations
Les notifications sont des tâches durables. Une panne de messagerie ne peut pas effacer une entrée acceptée : les échecs passagers sont réessayés avec des délais bornés, tandis que les erreurs de configuration permanentes s’arrêtent pour une action de l’administrateur.
Un formulaire peut porter plusieurs notifications, chacune avec ses propres destinataires, objet, corps et condition. Les destinataires peuvent être des adresses fixes, des adresses tirées d’un champ que le visiteur a rempli, ou des routes choisies selon la valeur d’un champ — et chaque route correspondante est utilisée, pas seulement la première, car un formulaire qui atteint à la fois les ventes et le support est le cas normal plutôt qu’une erreur. Une réponse automatique est le même mécanisme pointé en retour vers la personne qui a rempli le formulaire.
- En-têtes
- Les destinataires et les balises de fusion d’en-tête sont validés ; l’injection CR/LF est supprimée.
- Corps
- Le HTML est échappé ou filtré selon son contexte de sortie.
- Confirmation
- Les décisions de message, de page du même site et de redirection autorisée sont choisies dans le schéma enregistré.
- Idempotence
- La même clé de tâche de notification ne peut pas créer deux fois le même effet de bord.
- Journal de livraison
- Une ligne par tentative : quel formulaire, quelle soumission, quelle notification et quelle tâche, si elle a été envoyée ou a échoué, quel numéro de tentative c’était, les destinataires, l’objet ainsi que le code et le message d’erreur. Une ligne en échec peut être renvoyée depuis l’écran.
Le journal enregistre ce qui a été tenté, pas ce qui a été livré. Le courrier est remis à WordPress puis de là à votre hébergeur ; une ligne marquée envoyée signifie qu’il a quitté le site, et seul un rejet de l’autre côté peut vous en dire davantage.
Protection anti-indésirables
Deux défenses sont actives dès l’installation : un champ pot de miel qu’une personne ne voit jamais et une vérification de temporisation qui refuse un formulaire soumis en moins de trois secondes. Aucune des deux ne coûte quoi que ce soit au visiteur et aucune ne casse les technologies d’assistance, ce qui explique qu’elles soient le défaut plutôt qu’une épreuve.
Au-delà de cela, tout est optionnel et désactivé jusqu’à ce que vous l’activiez : reCAPTCHA v2 et v3, hCaptcha, Cloudflare Turnstile et Akismet, ainsi que des règles de mots-clés, d’adresses et de pays qui s’exécutent entièrement sur votre propre serveur.
Une soumission jugée comme spam est marquée, pas supprimée. Un déclenchement du pot de miel, un CAPTCHA en échec ou à faible score et un verdict d’Akismet stockent tous la soumission avec un statut spam, où vous pouvez la lire et changer d’avis — car le coût d’une demande écartée à tort est bien plus élevé que le coût d’une ligne que vous devez regarder. Les deux exceptions sont la vérification de temporisation et la limitation de débit, qui refusent la requête avant même qu’une soumission n’existe ; il n’y a rien à marquer, et rien n’a jamais été accepté puis jeté.
Akismet est la seule option qui envoie les valeurs soumises, l’adresse IP du visiteur, l’user agent du navigateur et l’URL de référence à un tiers. C’est un transfert de données personnelles : prévenez vos visiteurs avant de l’activer. Les autres fournisseurs ne reçoivent que ce que leur propre script collecte plus le jeton d’épreuve, et l’adresse IP du visiteur ne leur est pas transmise sauf si un filtre sur votre site le demande.
Contrôle d’accès
Un formulaire peut s’ouvrir et se fermer selon un calendrier, s’arrêter après un certain nombre de soumissions, exiger un utilisateur connecté ou un rôle particulier, ou se trouver derrière un mot de passe. Ces quatre cas sont décidés par une seule fonction, et cette fonction est appelée depuis deux endroits : une fois lorsque le formulaire est sur le point d’être rendu et une fois lorsqu’une soumission arrive.
Deux points d’appel, une seule décision. Si masquer le formulaire et refuser une soumission directe étaient écrits séparément, ils finiraient par diverger, et le formulaire fermé accepterait quand même un POST de quelqu’un qui aurait l’adresse. Rien ici n’est appliqué dans le navigateur.
La limite de soumissions est vérifiée une nouvelle fois immédiatement après l’écriture de la ligne, le comptage étant verrouillé pendant sa lecture. Deux visiteurs cliquant sur envoyer dans la même seconde passeraient sinon tous les deux une vérification effectuée avant qu’aucun des deux n’ait été compté.
Téléversements de fichiers
Les fichiers téléversés sont maintenus hors d’atteinte de la barre d’adresse. Le nom du répertoire est indevinable et porte des règles de refus pour Apache, IIS ainsi qu’un index de répertoire, donc un fichier n’est pas servi même si quelqu’un apprend son chemin.
Le coffre se trouve dans votre répertoire de téléversements à moins que vous ne définissiez MEVVFORMS_FILE_VAULT_DIR et ne le pointiez vers un emplacement hors de la racine web. Être sous la racine web est plus robuste que des règles de refus, car cela survit à une configuration de serveur web réinitialisée ou pas lue du tout. Si votre hébergeur vous le permet, définissez-le.
Un fichier est jugé sur son contenu, pas sur le nom avec lequel il est arrivé. Les premiers octets sont comparés à une table de signatures connues, les nombres magiques exécutables sont refusés d’emblée, et un fichier est scanné à la recherche d’un script intégré même quand sa signature paraissait anodine. Une extension est une affirmation faite par celui qui a téléversé le fichier.
Les téléchargements passent par un lien signé plutôt que par un chemin. La signature couvre le fichier, la personne et une expiration — quinze minutes par défaut et jamais plus d’un jour — et le téléchargement revérifie quand même que la personne est autorisée à l’avoir, même tant que le lien est dans sa fenêtre de validité. Un lien transféré à quelqu’un d’autre ne fonctionne pas pour lui.
Vues en façade
Les soumissions peuvent être republiées sur le site sous forme de vue : une grille, un tableau, un calendrier, une chronologie ou une carte. Les vues sont placées avec [mevvforms_view id="12"], ou avec le bloc MevvForms View, et épingler un enregistrement unique sur une page revient à nommer la soumission.
La carte ne contacte aucun service extérieur. Il n’y a pas de tuiles à récupérer, pas de clé à obtenir et pas de requête de géocodage : les points sont dessinés comme une image vectorielle intégrée sur votre propre page, avec les coordonnées également écrites en texte en dessous pour quiconque ne peut pas voir le dessin. Cela paraît plus sobre qu’une carte à tuiles, et en échange l’adresse d’aucun visiteur n’est envoyée à une société de cartographie par une page dont il ignorait qu’elle contenait une carte.
Confidentialité et conservation
MevvForms est enregistré auprès des outils propres à WordPress d’export et d’effacement des données personnelles, si bien qu’une demande de données traitée via WordPress retrouve les soumissions, les soumissions partiellement terminées et les fichiers sans que personne n’ait à se souvenir de vérifier un second écran.
La conservation est réglée par formulaire sous forme d’un nombre de jours — zéro signifie conserver indéfiniment, et le plafond est de dix ans. Une tâche horaire l’applique.
Avant qu’un changement de conservation ne soit enregistré, l’écran vous indique combien de soumissions cela rendrait éligibles à une suppression définitive. Le nombre est calculé d’abord et la suppression est une étape distincte, confirmée séparément. Taper 30 dans une case ne devrait jamais être le même geste que détruire quatre mille enregistrements.
Analytique des formulaires
L’analytique répond à une seule question — où les gens abandonnent-ils ce formulaire — et elle est désactivée tant que vous ne l’activez pas et ne nommez les formulaires qu’elle peut mesurer. Tant qu’elle est désactivée, rien n’est écrit, aucun script n’est ajouté à vos pages et aucun point de terminaison public n’existe.
Une fois activée, elle tient deux tables de compteurs quotidiens : par formulaire, les affichages, démarrages, soumissions et abandons ; par champ, les abandons sur ce champ, le nombre de fois où il est resté vide, les erreurs de validation, le temps de focus total et combien de visiteurs l’ont focalisé.
Aucun identifiant de visiteur n’est créé et aucun cookie n’est posé. Les tables n’ont aucune colonne pour une adresse IP, un utilisateur, un e-mail, une session, une empreinte, un référent ou une valeur soumise — c’est la forme du schéma qui rend une ligne intraçable, et non une promesse de ne pas regarder. Le signal du navigateur va vers votre propre site et est authentifié avec le ticket éphémère propre au formulaire, identique pour chaque visiteur de ce formulaire. Comme les lignes sont des agrégats, un export de données personnelles ne trouve rien à exporter, et une demande d’effacement reçoit pour réponse une ligne le disant.
Générer un formulaire avec l’IA
Vous pouvez décrire un formulaire en une phrase et faire disposer les champs à votre place. Trois connexions sont prises en charge : Ollama et LM Studio, qui s’exécutent sur votre propre machine ou votre propre serveur, et un point de terminaison compatible OpenAI pour quiconque préférerait utiliser un modèle hébergé avec sa propre clé.
- Il n’y a nulle part dans l’extension de quota, de crédit ni de compteur d’utilisation — rien à épuiser, car le modèle n’est pas le nôtre.
- Avec Ollama ou LM Studio, la description de votre formulaire ne quitte jamais la machine sur laquelle le modèle s’exécute.
- Sans connexion configurée, la fonctionnalité n’est pas affichée du tout et aucune requête n’est effectuée. Il n’y a aucun repli hébergé qui attendrait d’être utilisé par accident.
Une clé que vous collez est conservée dans une seule option WordPress qui n’est pas chargée sur chaque page, et l’écran l’affiche masquée par la suite — mais elle est stockée telle que vous l’avez saisie, non chiffrée. Tout ce qui a accès à la base de données peut la lire. Utilisez une clé limitée à ce dont elle a besoin, et renouvelez-la si le site change de mains.
Ce qui revient est un brouillon. C’est une disposition de départ à corriger, pas un formulaire à publier sans le lire — et un champ généré n’a aucune idée de ce que votre législation exige de demander ou d’omettre.
Importer depuis une autre extension de formulaires
Les formulaires peuvent être importés depuis sept autres extensions : Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Formidable Forms, Ninja Forms et SureForms.
- La source n’est jamais que lue. Rien dans l’autre extension n’est modifié, désactivé ou supprimé par l’import, et ses propres données restent exactement là où elles étaient.
- Tout ce qui ne peut pas être transféré est listé, avec la raison. L’import refuse d’écrire tant que vous n’avez pas vu cette liste et ne l’avez pas acceptée — un import partiel silencieux est la façon dont une notification manquante est découverte trois semaines plus tard par un client qui n’a jamais reçu de réponse.
- Les anciens shortcodes continuent de fonctionner. Le shortcode de l’extension source reçoit une réponse de MevvForms une fois la migration active, si bien que les pages jamais modifiées continuent d’afficher un formulaire fonctionnel. Si autre chose s’est déjà approprié ce shortcode, MevvForms n’y touche pas.
Gardez l’extension source installée jusqu’à ce que vous ayez vous-même soumis le nouveau formulaire et vu la soumission et la notification. Revenir en arrière est facile tant que l’original est encore là, et malaisé une fois qu’il est parti.
Migration WPForms réversible
La migration commence en lecture seule. L’aperçu liste les champs associés, les notifications, les confirmations, les intégrations dans les pages et les réglages non pris en charge. L’application crée ou met à jour un formulaire MevvForms mis en attente et consigne l’empreinte de la source. Elle ne supprime ni les données WPForms, ni les révisions, ni les tables, ni le contenu des pages.
- Exigez un aperçu exact avant d’appliquer.
- Importez le formulaire en attente et comparez à nouveau les empreintes de la source.
- Passez la porte de santé de la bascule : publication, rendu, envoi de test signé, entrée locale et notification mise en file d’attente.
- L’extension d’origine ne peut être désactivée qu’une fois ces contrôles réussis.
- Si un contrôle échoue, le retour arrière restaure l’ancienne liste des extensions actives et remet le formulaire importé à l’état de brouillon.
L’inventaire mesuré de mevvshop.com est d’un formulaire source à 4 champs, 1 notification, 1 confirmation et une intégration en ligne. Ces nombres sont une condition de publication pour ce site, pas une promesse sur tous les formulaires WPForms.
Prendre un paiement
Un formulaire peut porter un prix. Les champs produit contiennent les articles, les champs calcul et total déterminent ce qui est dû, et la commande est construite côté serveur à partir du schéma à chaque soumission.
- Le montant ne vient jamais du navigateur. Un total qui arrive avec la soumission n’est utilisé que pour comparaison, et un désaccord rejette la soumission plutôt que de la corriger silencieusement — un visiteur ne doit jamais être facturé d’un montant différent de celui qui lui a été montré.
- L’argent est transporté d’un bout à l’autre sous forme de nombres entiers de la plus petite unité de la devise. Aucune valeur monétaire ne passe nulle part par un nombre à virgule flottante.
- Rien ne devient payé sans une réponse du fournisseur. Un navigateur qui revient de la page de paiement fait passer la commande au plus à « nécessite un rapprochement » ; payé exige une notification vérifiée par signature ou une question directe posée au fournisseur.
- Les détails de carte n’atteignent jamais le site. Il n’y a aucun champ pour un numéro de carte, une expiration ou un code de sécurité dans le contrat de paiement, ni aucune colonne pour cela dans la base de données.
- PayPal — une passerelle Pro
- Pro ajoute une passerelle PayPal bâtie sur Orders v2. La commande est ouverte sur votre serveur, le visiteur l’approuve sur la page de PayPal, et l’argent est capturé au retour — ou, s’il ferme l’onglet avant, à l’arrivée de la notification signée. Les deux chemins aboutissent au même endroit : une commande approuvée ne reste donc pas non capturée avec l’argent non encaissé. La double capture est verrouillée deux fois : l’appel de capture porte un identifiant de requête fixe que PayPal ne rejoue pas, et une réponse « déjà capturé » est lue comme un travail déjà fait, non comme un échec. Les remboursements, totaux ou partiels, sont émis depuis l’entrée.
- PayPal n’est pas disponible en Türkiye
- PayPal n’opère pas en Türkiye et ne règle pas en livres turques : cette passerelle sert donc à vendre à l’étranger. Les prestataires de paiement turcs restent où ils étaient, sur le pont MevvPos, et rien n’y change ici.
Aucun frais de transaction, à aucun niveau. Plusieurs extensions de formulaires prélèvent un pourcentage de ce que vous encaissez sur leur couche de paiement gratuite ; un test vérifie que le montant envoyé au fournisseur est exactement égal au total de la commande.
Aucun paiement n’a été exécuté de bout en bout, PayPal compris. Il n’y a encore derrière tout cela aucun compte marchand réel ni bac à sable : chaque chemin de fournisseur est exercé face à un substitut, et la forme des requêtes et des notifications a été vérifiée ligne par ligne sur les références publiées des fournisseurs, et non sur un appel abouti. Tenez les fonctions de paiement pour non éprouvées tant que cela n’a pas changé, et ne les mettez pas devant de vrais clients sur notre seule parole.
Zapier et Make
Pro peut aussi publier les entrées vers Zapier et Make sous forme de REST hooks. Zapier s’abonne à l’un de vos formulaires, MevvForms mémorise l’abonnement, et chaque entrée suivante est mise en file et lui est livrée. Le désabonnement le supprime, et une route d’échantillons distincte remet à Zapier une entrée récente afin que son écran de correspondance des champs affiche de vrais noms de champs plutôt que des cases vides.
- L’authentification est une clé de site que vous générez dans l’écran de réglages Zapier. C’est le seul identifiant, et il identifie le site plutôt qu’une personne.
- Les envois passent par le webhook signé et la file de tâches que l’édition gratuite utilise déjà. C’est une nouvelle destination, pas un second système de livraison : le journal des envois et les reprises fonctionnent donc de la même façon.
- Sans licence valide, le module ne démarre pas du tout : aucune route n’est enregistrée, aucun hook n’est ajouté, et il n’existe aucun chemin de code capable d’atteindre une adresse distante.
Zapier et Make étaient déjà accessibles sans Pro, car l’édition gratuite peut envoyer en POST un webhook signé à n’importe quelle adresse. Ce que Pro supprime, c’est l’entre-deux : vous ne construisez plus vous-même l’abonnement, la correspondance des champs et la reprise.
Salesforce
Pro peut transformer un envoi en Lead, Contact ou Case Salesforce. Vous faites correspondre les champs du formulaire aux champs de l’objet sur l’écran du connecteur, et chaque entrée passe par la file qu’utilisent les autres connecteurs — une panne de Salesforce retarde donc l’enregistrement, elle ne perd pas l’entrée.
- L’authentification est OAuth 2.0 avec un jeton de rafraîchissement. Aucun mot de passe Salesforce n’est stocké sur votre site.
- Sandbox et production sont un interrupteur, pas un second jeu d’identifiants à ne pas confondre.
- L’entrée elle-même reste sur votre propre site dans les deux cas. Envoyer une copie à Salesforce, ce n’est pas y déplacer vos données.
Des téléversements sur votre propre stockage objet
Par défaut le coffre à fichiers est sur votre propre disque, hors de la racine web. Pro peut le déplacer vers n’importe quel stockage compatible S3 — AWS S3, Cloudflare R2, MinIO, DigitalOcean Spaces, Backblaze B2 ou Wasabi — en signant lui-même chaque requête, si bien qu’aucun SDK tiers ne voit jamais les entrées.
Ce qui change, c’est où sont les octets, pas qui peut les récupérer. Les fichiers ne sont toujours remis que par un lien à durée limitée rattaché à une personne, et l’extension gratuite décide toujours qui y a droit. Déplacer le stockage ne déplace pas le contrôle des permissions.
Langues
Dix-neuf paramètres régionaux WordPress sont fournis avec l’extension : allemand (Allemagne, Allemagne soutenu et Suisse), anglais, espagnol (Espagne, Mexique, Argentine, Chili, Colombie), français, italien, japonais, néerlandais (Pays-Bas et Belgique), polonais, portugais (Brésil et Portugal), russe et turc. Les catalogues sources modifiables sont inclus, si bien qu’une traduction peut être corrigée sur votre propre site.
Le turc et l’anglais sont les deux langues qui ont été relues ligne par ligne. Les autres sont complètes mais n’ont pas toutes encore reçu une relecture humaine ; si une chaîne sonne bizarrement dans votre langue, c’est bien de cela qu’il s’agit, et le catalogue est là pour la corriger.
Frontière entre Free et Pro
Le moteur fiable appartient à l’édition gratuite, et avec lui presque tout ce qui figure sur cette page : le schéma, les trente-huit types de champs, le rendu accessible, la validation côté serveur et la logique conditionnelle, les formulaires multi-étapes avec étape de récapitulatif et mode conversationnel, l’enregistrement et la reprise, les entrées locales avec export CSV et piste d’audit, les notes d’administration et un circuit de validation, la file de notifications et son journal de livraison, les webhooks sortants signés en HMAC, la suite antispam complète, le contrôle d’accès, le coffre de fichiers, les vues publiques, les outils de rétention et de confidentialité, les statistiques, la génération par IA, les importateurs pour sept extensions et les paiements ponctuels sans frais de transaction.
Pro ajoute les connecteurs de services nommés : Mailchimp, HubSpot, Brevo, ActiveCampaign, Airtable, Notion, Google Sheets, Discord, Telegram et Slack, chacun parlant la forme propre au service, plus une passerelle PayPal, un connecteur Zapier et Make bâti sur des REST hooks, les paiements récurrents, les codes de réduction et les paiements partiels. Notez ce que cela signifie toujours : l’édition gratuite envoie déjà en POST un webhook signé n’importe où, si bien que Zapier, Make et tout ce que vous écrivez vous-même restent accessibles sans Pro — ce que Pro supprime, c’est l’entre-deux : l’abonnement, la correspondance des champs et la reprise que vous auriez sinon à écrire. La barrière de licence est la vérification de démarrage du module lui-même : sans licence valide, aucune classe de connecteur n’est chargée, aucun filtre de tâche n’est enregistré et aucun appel distant ne peut avoir lieu.
Un élément de feuille de route n’est pas présenté comme une capacité opérationnelle. Vérifiez la version installée et les notes de version avant de concevoir un formulaire autour d’un module Pro.
Dépannage et retour arrière
- L’ancien code court reste vide
- Vérifiez que l’identifiant source dispose d’une association de migration active et qu’aucune autre extension ne détient le code court wpforms.
- L’envoi signale une session expirée
- Rechargez la page et envoyez sur la dernière révision publiée.
- Une notification est en attente
- Ouvrez l’état de la file d’attente et corrigez l’erreur de configuration permanente, ou laissez la nouvelle tentative planifiée s’exécuter en cas d’erreur de transport passagère.
- La bascule n’a pas désactivé WPForms
- Lisez le résultat de santé. La porte de sécurité a conservé ou restauré WPForms parce que la vérification du rendu, de l’envoi, de l’entrée ou de la tâche a échoué.
- Un champ que le visiteur ne pouvait pas voir est arrivé quand même
- C’est précisément le moment où le serveur décide. Les conditions sont réévaluées à la soumission, donc une valeur envoyée pour un champ caché y est écartée — vérifiez la condition elle-même plutôt que le navigateur.
- Les caractères turcs sont corrompus dans le CSV
- Le fichier porte une marque d’ordre des octets et est en UTF-8. Un tableur à qui on a demandé de l’importer comme autre chose l’affichera quand même mal ; ouvrez-le directement plutôt que via un assistant d’import avec un encodage déjà choisi.
- Un lien de téléchargement indique qu’il a expiré
- Les liens durent quinze minutes par défaut et sont liés à la personne qui les a demandés. Générez-en un nouveau depuis la soumission ; un lien ne peut pas être transféré à un collègue.
- Le panneau IA n’est pas là
- Aucune connexion n’est configurée. Le panneau est masqué plutôt que montré cassé, et rien n’est envoyé nulle part tant qu’il est masqué.
- Une entrée de menu ouvre un écran vide
- Certaines entrées du menu sont des espaces réservés pour des écrans pas encore construits. Un écran vide n’est pas une installation cassée.
Pour l’assistance, indiquez les versions de l’extension, de WordPress et de PHP ainsi que le code d’erreur sûr. Retirez les valeurs de champs, les données clients, les jetons de session, les nonces et les clés de licence avant d’envoyer des journaux.
Mises à jour
Les mises à jour passent par WordPress lui-même. L’extension demande à notre boutique s’il existe une version plus récente et remet la réponse au flux de mise à jour propre à WordPress : une nouvelle version apparaît donc sur l’écran des extensions avec un bouton Mettre à jour ordinaire, au lieu d’attendre que quelqu’un télécharge un zip à la main. Dans l’édition gratuite, cette requête ne porte que le nom du paquet et la version installée — aucune adresse de site, aucune adresse e-mail, aucune clé de licence et aucun inventaire d’extensions. Comme rien n’y permet de vous identifier, la confiance repose sur la signature : la réponse est signée avec notre clé Ed25519, et une réponse non signée, mal signée, rejouée depuis un horodatage ancien ou pointant le téléchargement vers un autre hôte que le nôtre est écartée sans toucher au site.
Limites
Dit clairement, pour que rien sur cette page n’ait à être pris sur la foi.
- Les fonctionnalités de paiement n’ont pas été vérifiées avec un compte marchand réel ou de bac à sable. Elles sont construites selon la documentation des fournisseurs et testées contre un transport de substitution.
- Il n’y a ni annulation ni rétablissement dans le constructeur. Les révisions sont le moyen de revenir en arrière.
- La sortie PDF dépend du site. Si une bibliothèque PDF est installée, MevvForms l’utilise ; sinon, elle produit à la place un document imprimable et laisse l’impression au navigateur. Aucune bibliothèque PDF n’est fournie et aucune n’est récupérée nulle part.
- Chaque entrée de menu ouvre désormais un véritable écran. Rapports, intégrations, import et export, réglages, rôles et journaux étaient des espaces réservés dans les versions précédentes ; depuis la 1.1.0, chacun est servi par son propre paquet.
- Le coffre des fichiers téléversés se trouve par défaut dans le répertoire de téléversements et est protégé par des règles de refus plutôt que par son emplacement, à moins que vous ne le pointiez vous-même hors de la racine web.
- Les clés IA sont stockées telles que saisies, non chiffrées. Elles sont masquées à l’écran et tenues hors des options toujours chargées, ce qui n’est pas la même chose qu’illisibles.
- L’équivalent clavier du constructeur est complet mais restreint. Les boutons portent les touches ordinaires et déplacer un champ a un seul raccourci ; il n’y a pas de plus grande carte de touches à apprendre, ni à découvrir.
Là où cette page dit qu’une chose a été mesurée, elle l’a été. Là où elle dit qu’une chose n’a pas été prouvée, ce n’est pas de la modestie — cela signifie que le test n’existe pas encore, et vous devez considérer l’affirmation comme inachevée.