स्टैटिक साइट्स पर Contact Form 7 क्यों काम नहीं करता

आप अपनी WordPress साइट को स्टैटिक HTML में एक्सपोर्ट करते हैं। आपका कॉन्टैक्ट फॉर्म काम करना बंद कर देता है। आपको कंसोल में 404 एरर दिखाई देता है।

Contact Form 7 को PHP की आवश्यकता होती है। यह डेटा प्रोसेस करने के लिए REST API का उपयोग करता है। स्टैटिक साइट्स में PHP नहीं होता है। PHP नहीं होने का मतलब है कि REST API भी नहीं होगा।

कुछ लोग CORS को दोष देते हैं। एक CORS हेडर गायब सर्वर की समस्या को ठीक नहीं कर सकता। ईमेल हैंडल करने के लिए आपको एक बैकएंड की आवश्यकता होती है।

यदि आप Simply Static Pro का उपयोग करते हैं, तो अपनी फ़ाइल परमिशन्स (file permissions) की जाँच करें। एक गायब JS फ़ाइल इस एरर का कारण बनती है। इस कमांड को चलाएँ:

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

एक्सपोर्ट को फिर से चलाएँ।

इसे ठीक करने के दो तरीके:

  • WordPress को एक सबडोमेन (subdomain) पर रखें। इसे अपने API के रूप में उपयोग करें। अपनी .htaccess फ़ाइल में CORS हेडर जोड़ें।
  • एक स्टैटिक फॉर्म सर्विस का उपयोग करें। Formspree या Netlify Forms आज़माएँ।

डिबग (debug) कैसे करें:

  • अपने WordPress URL के बाद /wp-json/ लगाकर देखें। यदि आपको 404 दिखाई देता है, तो आपका बैकएंड ऑफलाइन है।
  • DevTools खोलें। अपना फॉर्म सबमिट करें। 404 या CORS एरर देखें।
  • अपनी forms.json फ़ाइल की जाँच करें। सुनिश्चित करें कि एंडपॉइंट (endpoint) आपके WordPress डोमेन की ओर इशारा कर रहा है।

लक्षणों का इलाज करना बंद करें। अपने आर्किटेक्चर (architecture) को ठीक करें।

स्रोत: https://dev.to/rahul_sharma_15bd129bc69e/why-contact-form-7-breaks-on-static-sites-and-what-to-do-about-it-jg5