kico
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方もう一度コードを確認して再度やり直してみたところ、無事送信&出力できました!
このたびは本当に本当にありがとうございました。
原因は、「$_POST」を「$_GET」に直し忘れていたのと、<?php if ( isset( $_GET['syousai'] ) ) { echo wp_kses( $_GET['syousai'] ); } ?>
を「お問い合わせフォームページ(page-contact.php)」ではなく、「物件記事(single-bukken.php)」に加えていたからで、本当に初歩的なミスでした…。
教えていただいたことを自分への戒め&今後同様なことをなさりたい方のために、以下に自分がやったことを明記します。
1.お問い合わせフォームページをカスタムページテンプレートで作成し、「物件名」の指定フィールドを以下のように設定する
<p>物件名<br /> [text your-bukken]</p>
2.function.phpに以下のコードを加える。
function my_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['bukken'])){ $name = $tag['name']; if($name == 'your-bukken') $tag['values'] = (array) $_GET['bukken']; } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11); add_action( 'wpcf7_before_send_mail', 'my_wpcf7_before_send_mail' ); function my_wpcf7_before_send_mail( $wpcf7 ) { $recipients = array( 'a' => 'info@a.example.com', /* A社 */ 'b' => 'info@b.example.com', /* B社 */ ); if( isset( $_GET['gyousha'] ) && ( '' != $recipients[$_GET['gyousha']] ) ) $wpcf7->mail['recipient'] = $recipients[$_GET['gyousha']]; }
3.「物件記事」に「お問い合わせ」ボタン画像のカスタムフィールドを追加し、ボタン画像に、以下のようにリンクを付ける
<a href="http://www.example.com/contact?bukken=A町1丁目&gyousha=a">
以上です。
カスタムフィールドの内容を表示できる件も教えていただいてありがとうございました。色々と試してみます。
「wordpressって色んなことができるんだなあ、楽しなあ」と思えるようになってきました。
レスをくださった皆様、本当にありがとうございました。フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方function.phpを下記のように書き換え、「お問い合わせ」画像ボタンには、
http://www.example.com/contact?bukken=A町1丁目&gyousha=aとリンクさせました。function my_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['bukken'])){ $name = $tag['name']; if($name == 'your-bukken') $tag['values'] = (array) $_GET['bukken']; } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11); add_action( 'wpcf7_before_send_mail', 'my_wpcf7_before_send_mail' ); function my_wpcf7_before_send_mail( $wpcf7 ) { $recipients = array( 'a' => 'info@a.example.com', /* A社 */ 'b' => 'info@b.example.com', /* B社 */ ); if( isset( $_GET['gyousha'] ) && ( '' != $recipients[$_GET['gyousha']] ) ) $wpcf7->mail['recipient'] = $recipients[$_GET['gyousha']]; }
その上で実際に送信できるメールアドレスに変更して試してみたところ、メールは送信されませんでした。お問い合わせボタンを設置した記事の方に、何かカスタムフィールドなどを追加しなければいけないのでしょうか。
キーを追加すれば「詳細」など他のデータも取得し、 PHPでページに出力することも可能ですよ。
「詳細」を付け加えることができるとのアドバイス、ありがとうございます!
http://www.example.com/contact?bukken=A町1丁目&gyousha=a&syousai=test
上記のようですと、たとえば「詳細」に入れたい文章が多ければ多いほど、長ーーいURLになっちゃいますよね。
カスタムフィールドの値は渡せないのでしょうか。
あと1つだけとか言っておきながら、重ね重ね申し訳ありません…フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方umbrella_processさん、本当にありがとうございます。
functions.phpには以下のように追加しています。function my_form_tag_filter($tag){ if ( ! is_array( $tag ) ) return $tag; if(isset($_GET['bukken'])){ $name = $tag['name']; if($name == 'your-bukken') $tag['values'] = (array) $_GET['bukken']; } return $tag; } add_filter('wpcf7_form_tag', 'my_form_tag_filter', 11); add_action( 'wpcf7_before_send_mail', 'my_wpcf7_before_send_mail' ); function my_wpcf7_before_send_mail( $wpcf7 ) { $recipients = array( 'a' => 'info@a.example.com', /* A社 */ 'b' => 'info@b.example.com', /* B社 */ ); if( isset( $_POST['gyousha'] ) && ( '' != $recipients[$_POST['gyousha']] ) ) $wpcf7->mail['recipient'] = $recipients[$_POST['gyousha']]; }
上記に誤りがありますでしょうか。
フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方ご回答いただきまして、ありがとうございます。
<a href="http://www.example.com/contact?bukken=A町1丁目 &gyousha=a">
で試してみたところ、物件名は「A町1丁目」と正しく表示されましたが、「お問い合わせ先」には何も入っていない状態です。
どうしたものでしょうか…聞かぬは一生の恥ということで、あともう一つだけ質問です。
ご回答いただいた皆様のおかげで、コンタクトフォームへのurlで物件名とメールアドレスを渡せるということは理解できましたが、
さらにそのコンタクトフォームを設置してあるページに、元の記事である「A町詳細+A社お問い合わせ」を出力させることは無理でしょうか。フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方kzさん、いつもいつもありがとうございます。
http://ja.forums.wordpress.org/topic/3380?replies=11
を参考に、コンタクトフォームの「物件名」には<p>物件名<br /> [text your-bukken]</p>
とフィールドを指定しています。
さらに上記投稿で教えていただいたコードをfunction.phpに追加して、
コンタクトフォームに下記の指定フィールドを追加しました。<p>お問い合わせ先<br /> [text gyousha]</p>
その上で「お問い合わせ」画像ボタンに、
<a href="http://www.example.com/contact?bukken=A町1丁目 ?gyousha=a"><img src="http://www.example.com/contact_bt.gif" class="cfg_img" />
のような感じでリンクを付けましたが、
物件名のフィールドに、「A町1丁目?gyousha=a」と出力されてしまいます。
何か自分の使い方が根本的に間違っているようですが…
アドバイスいただけたら幸いです…フォーラム: 使い方全般
返信が含まれるトピック: お問い合わせ先ページの作り方レスをいただきましてありがとうございました。
ご紹介いただいた参照urlで、コンタクトフォームの指定フィールドに渡したい文字列を
入れることができました。
しかしやりたいことがもう一つあって、
「A町物件のお問い合わせはA社」
「B町物件のお問い合わせはB社」
という風に、送信先のメールアドレスも変えたいのです。Takayuki Miyoshiさんがおっしゃるように、
>「物件詳細+業者詳細」の記事にコンタクトフォームそのものをせっちしたらどうですか?とすれば簡単なのですが、参考にしているサイト(https://chintai360.jp/rooms/contact/10003/270457)がまさに自分がやりたいことを実現していることもあり、同じようにできたらいいなあと思った次第です。
これはやはり業者ごとの宛先メールアドレスのコンタクトフォームを、物件の数だけ増やすしかないでしょうか?フォーラム: 使い方全般
返信が含まれるトピック: 特定のカスタムフィールドの値を、特定のページに出力試してみたところ、ばっちりでした!
コードもすっきりとして見やすいです。
この1週間というもの、ずっと悩んでいたもやもやが晴れました。
このたびはありがとうございました。フォーラム: 使い方全般
返信が含まれるトピック: 特定のカスタムフィールドの値を、特定のページに出力物件記事のカスタムフィールドに、「業者の記事ID(keyはgyoushaID)」を追加して、
物件記事のテンプレートに<?php echo get_post_meta( get_post_meta($post->ID,gyoushaID,TRUE),name,TRUE); ?> <?php echo get_post_meta( get_post_meta($post->ID,gyoushaID,TRUE),address,TRUE); ?> <?php echo get_post_meta( get_post_meta($post->ID,gyoushaID,TRUE),tel,TRUE); ?>
上記を追加しました。
これで出力できましたが、このような記述で合っているでしょうか?
もっとすっきりさせたいと思い試行錯誤を繰り返しているのですが、良い方法が思いつきません…フォーラム: 使い方全般
返信が含まれるトピック: 特定のカスタムフィールドの値を、特定のページに出力