Pourquoi Contact Form 7 ne fonctionne plus sur les sites statiques

Vous exportez votre site WordPress en HTML statique. Votre formulaire de contact cesse de fonctionner. Vous voyez une erreur 404 dans la console.

Contact Form 7 nécessite PHP. Il utilise une REST API pour traiter les données. Les sites statiques n'ont pas de PHP. Pas de PHP signifie pas de REST API.

Certains rejettent la faute sur CORS. Un en-tête CORS ne résoudra pas l'absence de serveur. Vous avez besoin d'un backend pour gérer l'envoi de l'e-mail.

Si vous utilisez Simply Static Pro, vérifiez les permissions de vos fichiers. Un fichier JS manquant provoque cette erreur. Exécutez cette commande :

chmod 644 /var/www/html/wp-content/plugins/simply-static-pro/assets/ssp-form-webhook-public.js

Relancez l'exportation.

Deux solutions pour corriger cela :

  • Gardez WordPress sur un sous-domaine. Utilisez-le comme votre API. Ajoutez des en-têtes CORS à votre fichier .htaccess.
  • Utilisez un service de formulaire statique. Essayez Formspree ou Netlify Forms.

Comment déboguer :

  • Visitez votre URL WordPress suivie de /wp-json/. Si vous voyez une erreur 404, votre backend est hors ligne.
  • Ouvrez les DevTools. Soumettez votre formulaire. Recherchez les erreurs 404 ou CORS.
  • Vérifiez votre fichier forms.json. Assurez-vous que l'endpoint pointe vers votre domaine WordPress.

Arrêtez de traiter les symptômes. Corrigez votre architecture.

Source : https://dev.to/rahul_sharma_15bd129bc69e/why-contact-form-7-breaks-on-static-sites-and-what-to-do-about-it-jg5