למה Contact Form 7 מפסיק לעבוד באתרים סטטיים

אתם מייצאים את אתר ה-WordPress שלכם ל-HTML סטטי. טופס יצירת הקשר שלכם מפסיק לעבוד. אתם רואים שגיאת 404 בקונסול.

Contact Form 7 זקוק ל-PHP. הוא משתמש ב-REST API כדי לעבד נתונים. באתרים סטטיים אין PHP. אין PHP פירושו אין REST API.

יש אנשים שמאשימים את CORS. כותרת CORS לא תתקן שרת שחסר. אתם זקוקים ל-backend כדי לטפל באימייל.

אם אתם משתמשים ב-Simply Static Pro, בדקו את הרשאות הקבצים שלכם. קובץ JS חסר גורם לשגיאה הזו. הריצו את הפקודה הזו:

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

הריצו את הייצוא שוב.

שתי דרכים לפתור זאת:

  • השאירו את WordPress תחת subdomain. השתמשו בו כ-API שלכם. הוסיפו כותרות CORS לקובץ ה-.htaccess שלכם.
  • השתמשו בשירות טפסים סטטי. נסו את Formspree או Netlify Forms.

איך לבצע דיבאג:

  • היכנסו לכתובת ה-URL של ה-WordPress שלכם בתוספת /wp-json/. אם אתם רואים 404, ה-backend שלכם לא פעיל.
  • פתחו את ה-DevTools. שלחו את הטופס. חפשו שגיאות 404 או CORS.
  • בדקו את קובץ ה-forms.json שלכם. ודאו שה-endpoint מפנה לדומיין ה-WordPress שלכם.

הפסיקו לטפל בתסמינים. תקנו את הארכיטקטורה שלכם.

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