質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1031閲覧

コンタクトフォーム7の送信先アドレスを、別ページのカスタムフィールドから取得したい(WordPress)

d-y

総合スコア13

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/08 02:14

編集2022/01/12 10:55

前提

ポータルサイトを制作しております。
サイト内に多数の会社を掲載しており、会社ごとに固定ページをカスタムフィールドで作成しています。
コンタクトフォーム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]からメールアドレスを呼び出せていないのではないかと思っています。
ご存知の方いらっしゃればご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d-y

2019/02/08 06:54

ありがとうございます。hiddenについて勉強しつつ、試してみます。 結果出たらまた回答します。
guest

回答1

0

フォームページのURLへどのようにして各固定ページのIDを渡しているのか不明なんですが、そんな回りくどい事をしなくてもwpcf7_mail_componentsフックを使って送信先アドレスを書き変えれば済む話しです。

投稿2019/02/12 03:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問