WordPress Tips

Contact Form 7 くるくるしたまま送信されない時の解決方法

2019-02-26

本記事にはプロモーションが含まれています。

Contact Form 7 くるくるしたまま送信されない時の解決方法

WordPressの問い合わせフォームプラグインContact Form 7。

送信ボタンを押した後、ずーっとくるくる回ったまま送信されない状況がありました。

以前はちゃんと送信できていたはずなのに・・・・解決するのに色々調べたので備忘録として記載します。

Contact Form 7が送信できない状況

送信ボタン下のアイコンがくるくる回ったままで送信完了にならない

送信ボタン下のアイコンがくるくるしたまま送信完了になりません。

まだエラーメッセージが表示されれば、原因の特定がしやすいですが、くるくる回ったままだと何がいけないのかわかりませんね。

調べてみるとくるくる回ったまま送信できない原因は色々あるようです。

Contact Form 7が送信できない原因

Contact Form 7が送信できない原因として考えられるのは以下のようなものがあります。

  • 他のプラグインやテーマの問題
  • reCAPTCHA
  • WP REST API

他のプラグインやテーマの問題

一番多い理由は他のプラグインやテーマがContact Form 7の送信に影響を与えている場合です。

他のプラグインとの競合

インストールされている他のプラグインとの競合が原因で、Contact Form 7が正常に動作しないことがあります。

競合が起きているかどうかを確認するために、他のプラグインを一時的に無効化して送信できるかどうかをテストしてみます。

テーマの問題

使用しているテーマによっては、Contact Form 7との整合性に問題が起きる場合があります。

テーマがフォームのスタイルやJavaScriptの処理方法を変更していたりすると、送信が妨げられることがあります。

問題を特定するために、一時的にデフォルトのテーマに切り替えて送信できるかテストしてみてください。

セキュリティプラグインの設定

セキュリティプラグインがContact Form 7の動作に影響を与えることがあります。

セキュリティプラグインがフォームの送信をブロックしている、またはセキュリティ設定が過剰に厳しい場合、メールの送信ができないことがあります。

セキュリティプラグインの設定を確認し、調整が必要な場合があります。

reCAPTCHAの問題

Contact Form 7では、スパムや不正な送信を防ぐためにreCAPTCHAを使用することができます。

しかし設定によって問題が起きていないか確認します。

  1. reCAPTCHAの設定ミス
  2. reCAPTCHAの表示エラー
  3. Googleサーバーの問題

Contact Form 7のreCAPTCHAの設定が正しく行われていない場合、フォームの送信がブロックされてしまうことがあります。

reCAPTCHAの設定や、デベロッパーツールでエラーメッセージが出ていないかを確認し、正しく構成されているかどうかを確認してください。

Google側のサーバーの問題や通信の遅延が発生している場合、reCAPTCHAが正常に機能しないことがあります。Google reCAPTCHAで問題がないかを確認してください。

Google reCAPTHA

WP REST API

Contact Form 7は、WordPressのWP REST APIを使用してフォームのデータを送信します。

WP REST APIはWordPressのデータを取得したり更新したりするためのAPIであり、Contact Form 7がデータを送信するために使用してます。

WP REST APIが無効になっていないか確認する

WordPressの設定やプラグインによって、WP REST APIが無効になっている場合があります。

WordPressの設定を確認し、WP REST APIが有効になっていることを確認してください。

以下の場合に当てはまる場合はWP REST APIが無効になっています。

  • Disable REST API がインストールされている
  • テーマのfunction.phpにWP REST APIを無効にするコードがある
  • セキュリティ系のプラグインで無効になっている

Disable REST API がインストールされている

Disable REST APIはインストールすれば特別な設定不要で、WordPressにログインしていない訪問者に対してWP REST APIを無効にします。

テーマのfunction.phpにWP REST APIを無効にするコードがある

functions.phpに以下のコードがある場合、WP REST APIが無効になっています。

add_filter('rest_authentication_errors', function ($access) {
    return new WP_Error('rest_disabled', __('The REST API on this site has been disabled.'), array('status' => rest_authorization_required_code()));
});

セキュリティ系のプラグインで無効になっている

All In One WP Security & Firewallなどのセキュリティ系のプラグインでREST APIを無効になっている場合があります。

All-In-One Security (AIOS) 

WPセキュリティ > その他 > WP REST API

Disallow unauthorized REST requests:にチェックが入っている場合、ログインしていないユーザーに対するWP REST APIは無効になります。

今回のContact Form 7がくるくるしたまま送信できない原因

今回私が遭遇したContact Form 7がくるくるしたまま送信できなかったのは、上記のAll In One WP Security & FirewallのWP REST APIを無効にする設定にチェックが入っていたのが原因でした。

すぐに気が付けなかったのは、PCから問い合わせフォームを送信すると送信できていたのです。

上記のAll In One WP Security & Firewallの設定は、WordPressにログインしていない場合にブロックされるので、WordPressにログインした状態だったPCでは問題なく送信できたのです。盲点でした。。。

管理しているいくつかのサイトにAll In One WP Security & Firewallをインストールしていますが、なぜか今回のサイトでだけ、この「WP REST APIの無効化」設定が有効になっていました。

セキュリティ対策は重要ですが、WP REST APIを利用して機能するプラグインは多いのでWP REST API関係の設定には注意が必要ということを痛感しました。

今月キャンペーン特典があるサービス

  • エックスサーバー
    利用料最大30%キャッシュバッグ月額693円&ドメイン永久無料 - 2024年5月1日(水)12:00まで
  • ConoHa WING
    WINGパック36ヶ月で月額678円 53%OFF ドメイン2個無料 - 2024年4月19日(金)16:00まで
  • カラフルボックス
    ドメイン永久無料特典とBOX2以上の月額費用が50%OFFのクーポンコード「SERVER50

-WordPress Tips
-