Tutorial

[FIX] Contact form 7 - Xili-language plugin incompatibility

Does not your Contact Form 7 work properly anymore after plugin or theme update? Check your console to see any error messages.

Today I found out the hard way, that our forms are not working at all. Check your installed plugins for Xili-language, which is currently not compatible with Contact Form 7.

I found this thread when I was searching for a possible fix, but could not reply because it was closed 7 months ago, neither I was able to contact any maintainer of Contact Form 7 easily (no mail, seriously?)

Pridal/a lubo dňa St, 03/04/2020 - 20:09
Troubleshooting

How does your Contact Form 7 behave aside from not sending anything? Check your console (F12) before you click on submit button. There should be an error message.

Dealing with an error

In my case, I had an error 400 bad request (or might be as well 404 not found) after submit button click with URL:

https://www.mydomain.XX/%lang%/wp-json/contact-form-7/v1/contact-forms/5/feedback

Visually I could see, that %lang% part does not belong into an URL. So I took a look at installed plugins and found out only one language related plugin.

Checking for module incompatibility

The module Xili-language unfortunately does not look like being compatible with Contact Form 7 and is appending the not-needed string in request URLs.

Disabling the module

Disabling Xili-language does look like a fix for this kind of problem.

Still not working? Check your REST API settings

If your REST API is disabled, it might cause a problems with sending Contact Form 7 forms. In this case try to add this snipplet into your .htaccess file.

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-json
RewriteRule . /index.php [L]

Important line is:

RewriteCond %{REQUEST_URI} !^/wp-json 

Which should be right after filename lines and before final RewriteRule part.

Done!

Hopefully this tutorial helped you with your problem or at least gave you an advice to follow and find where your problem lies.

Might interest you

Tutorial
In the last months I am being pretty much bombarded by my clients with asking what happened to their sites. That the spam protection is not…

Recommended

Tutorial
3 views
This sketch is quite easy, I used Arduino Nano with OLED 0.96″ display 128×64 resolution…
Tutorial
8 views
While working on a fairly complex website with very complex views setup, including tens…
Tutorial
6 views
In this case we have two options, either we use hook_user_presave() or we can create new…
Tutorial
6 views
When using Swiftmailer under Drupal 8 / 9 it automatically sets the headers for sender to…
Tutorial
3 views
Yes, IOS / Safari is the new internet explorer. Amount of time I spend on debugging…
Tutorial
10 views
There is a very handy function in Drupal 8 / 9, allowing developers refresh view when…
Tutorial
4 views
Often, when doing SEO checkups, SEO specialist come up with adding Schema.org…
Tutorial
78 views
I needed to test my contracts against USDC contract, specifically I needed ERC-721 mint…
Tutorial
4 views
If you are a newbie like I am and struggling with setting the proper MYSQL my.cnf config…
Tutorial
10 views
I had trouble to set this up properly, because documentation is quite misleading or often…
Article
56 views
As the title says, DO NOT in any circumstances install ANY bitcoin price extension to ANY…
Tutorial
173 views
This is (or should be) a working example of sending some Ether between two addresses.…
Module
43 views
This list was fetched from Zapper, with their /v1/token-list endpoint. Which you can…
Tutorial
98 views
In the last months I am being pretty much bombarded by my clients with asking what…
Tutorial
25 views
So sometimes you just need to transliterate some kind of foreign (or local) language, and…