エンジニア歴約半年の駆け出しエンジニアです。
今回はWordPressで自動返信メールのあり・なしの条件分岐に結構詰まってしまったので備忘録として残しておきます。
自動返信メールを"受け取らない"にチェックしても自動返信メールが送信されてしまう
最初はラジオボタンの中に"受け取る"と"受け取らない"を入れてしまっていたのでそれが原因だと思いチェックボックスにして項目を分けましたがそれでも送信されてしまいました。
解決方法
お客様への自動返信をある/なしを、スイッチで制御したい
上記の記事を参考に少し変更をしました。
手順①
メール(2)の「メール(2)を使用」にチェックを入れます。
手順②
今回は"受け取らない"のチェックボックスのみ設置し、"受け取らない"を選択されなかったときは自動返信メールを送信するという処理にしました。
以下のコードをfunction.phpに貼りつけます↓
function my_wpcf7_additional_mail($additional_mail,$contact_form) {
if( isset($_POST['checkNone'])){
$additional_mail = [ ];
}else{
$additional_mail = $additional_mail;
}
return $additional_mail;
}
add_filter('wpcf7_additional_mail','my_wpcf7_additional_mail',10,2);
これにより"受け取らない"を押したときのみ自動返信メールを制御できるようになりました。
応用
function my_wpcf7_additional_mail($additional_mail,$contact_form) {
if( isset($_POST['checkForm'])){
$additional_mail = $additional_mail;
}else if( isset(($_POST['checkNone']))){
$additional_mail = [ ];
}else{
$additional_mail = $additional_mail;
}
return $additional_mail;
}
add_filter('wpcf7_additional_mail','my_wpcf7_additional_mail',10,2);
これにより"受け取る(checkForm)"を押したら自動返信メールが送信され、"受け取らない(checkNone)"を選択したら制御され、どちらも選択されなかった場合は自動返信メールが送信されるようになります。