前提
ポータルサイトを制作しております。
サイト内に多数の会社を掲載しており、会社ごとに固定ページをカスタムフィールドで作成しています。
コンタクトフォーム7でフォームを1つ作成し、ショートコードをexample.com/form
に設置。
フォームのURLは、example.com/form/?pageid=各固定ページのID
となります。
やりたいこと
会社ごとの固定ページのカスタムフィールドから、フォームに設定する「送信先」メールアドレスを取得したいです。
つまりコンタクトフォームは1つで、メールアドレスは、呼び出し元の固定ページから取得したいです。
現状・試したこと
①各固定ページのカスタムフィールドに、フィールド名mail_address
を追加
②フォームのメールタブ内「送信先」に、[officemail]
を設置
③functions.php に以下を記載
function wpcf7_officemail() { $post_id = filter_input(INPUT_GET, 'pageid'); return get_field( 'mail_address', $post_id ) ; } wpcf7_add_form_tag( 'officemail', 'wpcf7_officemail' );
④フォーム内の最上部に以下を記載
<p style="display:none;><label>送信先メールアドレス [email* officemail]</label></p>
④を記載した理由は、送信先に[officemail]
を使用する場合、
フォーム内にも「officemail」を記載しておく必要があったためです。
ただこれだと、display:none
の部分が必須入力ですので、非表示なのに入力必須という状態になり、メールを送信できません。
かといってフォームから「officemail」を外すと、以下のページに記載されている、不正なメールボックス構文に該当するようです。
https://contactform7.com/ja/configuration-errors/invalid-mailbox-syntax/
知りたいこと
どのような対応策があるか、ご教示願います。
追記
https://yotsuba-d.com/blog/contact-form-7%E3%81%AE%E9%80%81%E4%BF%A1%E5%85%88%E3%82%92%E8%A8%98%E4%BA%8B%E3%81%94%E3%81%A8%E3%81%AB%E3%80%8C%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89/
こちらの記事の通り、「Contact Form 7 Dynamic Text Extension」をインストールし、
フォームの最上部のコードを以下に書き換えました。
[dynamichidden officemail "CF7_get_custom_field key='mail_address'"]
ただ、今も解決できていない(フォームを送信できない)状態です。
メールフォームの必要項目を入力し送信ボタンを押しても、メールが送信できません。
送信先に入れているショートコード[officemeil]
からメールアドレスを呼び出せていないのではないかと思っています。
ご存知の方いらっしゃればご教示お願い致します。