@furuko51 さん、こんにちは。
checkbox のタグがどのように展開されているかだと思います。
例えば checkbox でひとつだけ選択されている場合でも BCC 送信されませんでしょうか。
複数選択されている場合、[shops]タグがカンマ区切りで展開されないと正常な構文としてメール送信できないと思いますので、 maillog 等を確認して、どのように展開されてエラーになったのか見てみると良いかもしれません。
展開の内容が確認できたらフックで展開方法を編集可能か調べてみる等が次の段階でしょうか。
試していないので分かりませんが、 checkbox のメールアドレスの最後にカンマを入れてみたら動作したりして…?
ご参考になれば。
こんにちは
Contact Form 7 のwpcf7_mail_components
フィルターフックを使ってはどうでしょうか。
このフィルターフックで渡される$components
にadditional_headers
があります。
このadditional_headers
にBCCを設定します。
このadditional_headers
の値は、最終的にwp_mailの第4引数に渡されます。
wp_mail の bcc などの設定の仕方は上記ページの「$headers を使って “From:”, “Cc:”, “Bcc:” パラメータをセットする」にあります。
ここでは、
$headers は文字列にも配列にもできますが、配列形式の方がたぶん簡単でしょう。
と書かれていますが、Contact Form 7 では文字列で処理しているようなので、文字列で追加する必要がありそうです。
$components['recipient']
に送信先が配列かコンマ区切りで入っているので、そこから取ってきて整形して$components['additional_headers']
に BCC として追加してやります。
またそのあと、上記フィルターフック内で送信先を示す$components['recipient']
もなんとかしてやる必要があります。
空にしても送信されるのかは分かりません。
何かのメールアドレスを指定してもいいかもしれません。
もちろん、フォームが複数ある場合には特定のフォームのときにのみ動作するようにする必要がありますが、上記フィルターフックの第二引数にWPCF7_ContactForm
クラスのオブジェクトが渡されてきますので、そのid
か何かで判定できるのではと思います。
私はこのプログラムを書いたことが無いので、このとおりに動作するのかは分かりません。
@shokun0803様、@munyagu様とても丁寧なご回答いただきましてありがとうございました。
ご回答いただきまして、再度確認と挙動を調べるために最初からフォームを作り直しました。
ここで、私の質問の仕方に誤りがありました。
実は[shops]をセレクトボックスでで分岐をさせる処理を行っており、
セレクトボックスにて【洋服】を選択すると以下を表示し、
[checkbox shops
"ショップA|shop-a@shop-a.co.jp"
"ショップB|shop-b@sample.jp"
"ショップC|shop-c@test.com"
"ショップD|shop-d@demo.net"]
セレクトボックスにて【和服】を選択すると以下を表示するというものです。
[checkbox shops
"ショップE|shop-e@shop-a.co.jp"
"ショップF|shop-f@sample.jp"
"ショップG|shop-g@test.com"
"ショップH|shop-h@demo.net"]
これによってBCCがうまくいかなかったようで、分岐をなくし、ひとまず以下のようにすることでBCC送信することができました。
[checkbox shops
"ショップA|shop-a@shop-a.co.jp"
"ショップB|shop-b@sample.jp"
"ショップC|shop-c@test.com"
"ショップD|shop-d@demo.net"
"ショップE|shop-e@shop-a.co.jp"
"ショップF|shop-f@sample.jp"
"ショップG|shop-g@test.com"
"ショップH|shop-h@demo.net"]
最初からこの分岐処理をしていることをお伝えすればよかったのですが、私が勝手にこのプラグインでは複数選択のチェックボックスでのBCC送信ができないものなんだと決めつけてしまったことを反省しております。
@shokun0803様、@munyagu様にご回答いたきまして再度確認と挙動を調べるきっかけをいただいたことで、何とかBCCに関しては解決しましたことを心より感謝しております。本当にありがとうございました。
引き続きここから再度分岐を行ったうえでBCCが送れるような仕様に変更していくなかで、お二方の貴重なご回答を参考にしながら進めていきたいと思います。
私はほとんどプラグラムはかけないのですが、今回の件をきっかけにしっかり勉強していきたいと思います。
重ねて@shokun0803様、@munyagu様にお礼申し上げます。
ありがとうございました。
失礼いたします。