#解決したい課題
wordpressのプラグイン:Contact form 7で送信完了したメールが受信できない。
##課題の詳細
以前までは受信できていたメールが、受信できなくなった。
フォーム上は送信完了したという表示がされる。
ググって一番見かけたサーバ違いによる不具合でsmtpでの解決が多かったけど、サーバは同じのため、該当しない。
https://blitzgate.co.jp/blog/250/
#結論
function.phpを見直す!
jsの動きを制御するプラグインが入ってしまっていた…。
#詳細
実装初期、contact form 7のjsを使用したいページ(以下の例だと、/lp)以外で読み込まないように、
function.phpに以下を挿入していた。
この当時は通常に受信できていた。
しかし、パスをlpから変更したため、jsが読み込まれなくなっていた。
function my_contact_enqueue_scripts(){
wp_deregister_script('contact-form-7');
wp_deregister_style('contact-form-7');
if (is_page('lp')) {
if (function_exists( 'wpcf7_enqueue_scripts')) {
wpcf7_enqueue_scripts();
}
}
}
add_action( 'wp_enqueue_scripts', 'my_contact_enqueue_scripts');
考えてみればそのとおりだし単純なことに気づくのに、時間がかかってしまった。
contact formに限らず、
なにかの変更のためにfunction.phpに加えた修正がなにかに影響していること
は多々あるだろうから、なにかが上手く行かないときは、そのズバリ事象+function.phpを見直してみると良い。
あとそもそも論としては、動いていた時期と動かなくなった時期があるのであれば、その間に加えた変更を一つ一つ検証して切り分けるのが正道。
だが、開発が重なっているとそれを細かく実施できるかどうか、、、という工数も懸念される。
大枠で切り分けつつ、定番のミスを抑えておくことが肝心。