Чому 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. Додайте заголовки CORS у файл .htaccess.
- Використовуйте сервіс статичних форм. Спробуйте Formspree або Netlify Forms.
Як проводити налагодження:
- Перейдіть за вашою URL-адресою WordPress, додавши /wp-json/. Якщо ви бачите 404, ваш бекенд офлайн.
- Відкрийте DevTools. Надішліть форму. Шукайте помилки 404 або CORS.
- Перевірте свій файл forms.json. Переконайтеся, що endpoint вказує на ваш домен WordPress.
Припиніть боротися з симптомами. Виправте свою архітектуру.