ContactForm7でメール送信ができなくなった場合(ContactForm7 add confirmの修正)
ContactForm7で確認画面や送信完了ページが出なくなった場合は、確認画面プラグインのContact Form 7 add confirmに原因がある事が多いです。
Contact Form 7 add confirm側がバージョンアップされないので、頻繁にバージョンアップされるContactForm7との連携が取れなくなってきています。
プラグイン内script.jsの対象コード部分を変更する事で解決しますが、将来的な事を考慮して代替プラグインを探した方が良いです。
ContactForm7でメール送信ができなくなった
ContactForm7のお問い合わせフォームで、突然送信ができなくなる事があります。
必要事項は入力していますが、確認画面や送信完了ページが表示されない状態になるのです。
本記事では、CotactForm7の確認画面プラグイン「Contact Form 7 add confirm」に修正を加える事でこの現象を解決します。
原因はContact Form 7 add confirm
この現象はContactForm7の確認画面プラグインである「Contact Form 7 add confirm」を入れている場合に起きやすいです。
ContactForm7側は、定期的なバージョンアップがされています。
それに対してContact Form 7 add confirmプラグイン側は、実はしばらくバージョン更新が止まっている状態なのです。
別のプラグインを検討するべき
そのため両者の連携が取れなくなってきている訳ですね。
ですので今後の事を考えると、別のプラグインを採用した方が良いと思われます。
今回の操作は応急措置ですので、改めて何かしらの代替手段を考えましょう。
プラグインへの修正
データ連携が取れなくなった
実はContactForm7側のバージョンアップで、DOMのプロパティが変更になりました。
これによりContactForm7のユニットタグが、Contact Form 7 add confirm側に渡らなくなっているのです。
ですのでデータが渡る様に、Contact Form 7 add confirmプラグイン側に変更を加えます。
script.jsの修正
Contact Form 7 add confirmプラグインを丸ごとダウンロードしてきましょう。
プラグインフォルダ構成から、include < js < script.jpを開きます。
そこでコードの一番下の付近にある下記の部分を以下の様に修正します。
修正前
wpcf7c_step1(event.detail.id); : wpcf7c_step2(event.detail.id);
修正後(idをunitTagへ変更)
wpcf7c_step1(event.detail.unitTag); : wpcf7c_step2(event.detail.unitTag);
このscript.jpを上書きアップロードすれば修正完了です。
jsファイルのキャッシュをクリアする
これからテストとなる訳ですが、そのためには修正したscript.jpが正常に読み込まれる必要があります。
ですのでキャッシュをクリアするなど事前準備が必要です。
強制更新する方法
jsファイルを更新する方法は主に2つです。
Shift+F5で強制更新
一つは読み込みされるjsファイルを更新するため、Shift+F5を押して強制更新する方法です。
お問い合わせ送信を実施テストをする前に実行しましょう。
読込ファイルにパラメータをつける
もう一つはjsファイル名にパラメータをつける方法です。
プラグイン内TOPにあるcontact-form-7-confirm.phpで、以下の記述部分を探します。
define(‘WPCF7C_VERSION’,‘5.1’);
上記の5.1のところを「5.1-20230502」などに変更しましょう。
define(‘WPCF7C_VERSION’,‘5.1-20230502’);
するとキャッシュが更新されますので、最新のjsファイルを読込してくれます。
まとめ:代替手段を講じて下さい
これでテストをすれば、きちんと確認画面・送信完了画面が表示されるはずです。
送信完了ページへ飛ばす事
ただし今回の措置でも、「送信しました」の通常ガイダンスは出ないかも知れません。
ですが本来このプラグインは、確認画面や送信完了画面を別途表示するのがセオリーです。
ですので送信完了ページを準備して、そこに飛ばすようにしましょう。
別プラグインを探す事
Contact Form 7 add confirmは、これからもバージョンアップがされない可能性があります。
そうなると今後、今回の措置程度では済まないエラーが起きる可能性もあります。
その上で別のプラグインなどを使って確認画面・送信完了ページを準備した方が良いと思います。