സ്റ്റാറ്റിക് സൈറ്റുകളിൽ Contact Form 7 പ്രവർത്തിക്കാത്തതിന്റെ കാരണം
നിങ്ങൾ നിങ്ങളുടെ WordPress സൈറ്റിനെ സ്റ്റാറ്റിക് HTML-ലേക്ക് എക്സ്പോർട്ട് ചെയ്യുന്നു. നിങ്ങളുടെ കോൺടാക്റ്റ് ഫോം പ്രവർത്തിക്കുന്നത് നിൽക്കുന്നു. കൺസോളിൽ നിങ്ങൾ ഒരു 404 എറർ കാണുന്നു.
Contact Form 7-ന് PHP ആവശ്യമാണ്. ഡാറ്റ പ്രോസസ്സ് ചെയ്യാൻ ഇത് ഒരു REST API ഉപയോഗിക്കുന്നു. സ്റ്റാറ്റിക് സൈറ്റുകളിൽ PHP ഇല്ല. PHP ഇല്ലെങ്കിൽ REST API-യും ഇല്ല.
ചിലർ ഇതിന് കാരണം CORS ആണെന്ന് പറയുന്നു. ഒരു സെർവർ ഇല്ലാത്ത പ്രശ്നം ഒരു CORS ഹെഡർ ഉപയോഗിച്ച് പരിഹരിക്കാൻ കഴിയില്ല. ഇമെയിൽ കൈകാര്യം ചെയ്യാൻ നിങ്ങൾക്ക് ഒരു ബാക്കെൻഡ് ആവശ്യമാണ്.
നിങ്ങൾ Simply Static Pro ആണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, നിങ്ങളുടെ ഫയൽ പെർമിഷനുകൾ പരിശോധിക്കുക. ഒരു JS ഫയൽ ഇല്ലാത്തത് ഈ എററിന് കാരണമാകുന്നു. ഈ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:
chmod 644 /var/www/html/wp-content/plugins/simply-static-pro/assets/ssp-form-webhook-public.js
വീണ്ടും എക്സ്പോർട്ട് ചെയ്യുക.
ഇത് പരിഹരിക്കാൻ രണ്ട് വഴികൾ:
- WordPress ഒരു സബ്ഡൊമൈനിൽ തന്നെ നിലനിർത്തുക. അതിനെ നിങ്ങളുടെ API ആയി ഉപയോഗിക്കുക. നിങ്ങളുടെ .htaccess ഫയലിൽ CORS ഹെഡറുകൾ ചേർക്കുക.
- ഒരു സ്റ്റാറ്റിക് ഫോം സർവീസ് ഉപയോഗിക്കുക. Formspree അല്ലെങ്കിൽ Netlify Forms പരീക്ഷിച്ചു നോക്കുക.
എങ്ങനെ ഡീബഗ് ചെയ്യാം:
- നിങ്ങളുടെ WordPress URL-ന് ശേഷം /wp-json/ എന്ന് ചേർത്ത് സന്ദർശിക്കുക. അവിടെ 404 കാണുന്നുണ്ടെങ്കിൽ, നിങ്ങളുടെ ബാക്കെൻഡ് ഓഫ്ലൈൻ ആണ്.
- DevTools തുറക്കുക. ഫോം സബ്മിറ്റ് ചെയ്യുക. 404 അല്ലെങ്കിൽ CORS എററുകൾ ഉണ്ടോ എന്ന് പരിശോധിക്കുക.
- നിങ്ങളുടെ forms.json ഫയൽ പരിശോധിക്കുക. എൻഡ്പോയിന്റ് (endpoint) നിങ്ങളുടെ WordPress ഡൊമൈനിലേക്കാണെന്ന് ഉറപ്പാക്കുക.
ലക്ഷണങ്ങളെ മാത്രം ചികിത്സിക്കുന്നത് നിർത്തുക. നിങ്ങളുടെ ആർക്കിടെക്ചർ ശരിയാക്കുക.