سٹیٹک سائٹس پر 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 فائل چیک کریں۔ یقینی بنائیں کہ اینڈ پوائنٹ آپ کے WordPress ڈومین کی طرف اشارہ کر رہا ہے۔

علامات کا علاج کرنا چھوڑیں۔ اپنے آرکیٹیکچر کو ٹھیک کریں۔

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