స్టాటిక్ సైట్‌లలో Contact Form 7 ఎందుకు పనిచేయదు

మీరు మీ WordPress సైట్‌ను స్టాటిక్ HTMLకి ఎగుమతి (export) చేస్తారు. మీ కాంటాక్ట్ ఫారమ్ పనిచేయడం ఆగిపోతుంది. కన్సోల్‌లో (console) మీకు 404 ఎర్రర్ కనిపిస్తుంది.

Contact Form 7 కి PHP అవసరం. డేటాను ప్రాసెస్ చేయడానికి ఇది REST APIని ఉపయోగిస్తుంది. స్టాటిక్ సైట్‌లలో PHP ఉండదు. PHP లేకపోతే REST API కూడా ఉండదు.

కొందరు CORS ని నిందిస్తారు. సర్వర్ లేనప్పుడు CORS హెడర్ వల్ల ఉపయోగం ఉండదు. ఈమెయిల్‌ను హ్యాండిల్ చేయడానికి మీకు ఒక బ్యాకెండ్ (backend) అవసరం.

మీరు Simply Static Pro ఉపయోగిస్తుంటే, మీ ఫైల్ పర్మిషన్లను (file permissions) తనిఖీ చేయండి. ఒక JS ఫైల్ లేకపోవడం వల్ల ఈ ఎర్రర్ వస్తుంది. ఈ కమాండ్‌ను రన్ చేయండి:

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

మళ్ళీ ఎగుమతి (export) చేయండి.

దీనిని పరిష్కరించడానికి రెండు మార్గాలు:

  • WordPressని ఒక సబ్-డొమైన్ (subdomain)లో ఉంచండి. దానిని మీ APIగా ఉపయోగించండి. మీ .htaccess ఫైల్‌కు CORS హెడర్‌లను జోడించండి.
  • ఒక స్టాటిక్ ఫారమ్ సర్వీస్‌ను ఉపయోగించండి. Formspree లేదా Netlify Forms ప్రయత్నించండి.

ఎలా డీబగ్ (debug) చేయాలి:

  • మీ WordPress URL చివరన /wp-json/ అని టైప్ చేసి చూడండి. మీకు 404 కనిపిస్తే, మీ బ్యాకెండ్ ఆఫ్‌లైన్‌లో ఉన్నట్లు అర్థం.
  • DevTools ఓపెన్ చేయండి. మీ ఫారమ్‌ను సబ్మిట్ చేయండి. 404 లేదా CORS ఎర్రర్‌ల కోసం చూడండి.
  • మీ forms.json ఫైల్‌ను తనిఖీ చేయండి. ఎండ్‌పాయింట్ (endpoint) మీ WordPress డొమైన్‌ను సూచిస్తుందో లేదో నిర్ధారించుకోండి.

లక్షణాలను మాత్రమే నయం చేయడం ఆపండి. మీ ఆర్కిటెక్చర్‌ను (architecture) సరిచేయండి.

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