これは難しいですね。
やるとしたら modules フォルダの中にある各種モジュールの実装を参考に、独自のモジュールを作る必要があります。
フィルタやアクションフックが要所要所に用意されてますので、それらをうまく利用すれば実現できるでしょう。
ご回答ありがとうございます
難しいのですね・・・ (;_;)
もうちょっと頑張ってみます
あと、こういう機能を実装する場合、スパム送信の踏み台とされる恐れがあります (任意のメールアドレスにメール送信できるわけだから)。このため、「同じ IP アドレスからは1日 NN 回までしか受け付けない」などの対策を取る必要があるでしょう。
>lilyfanさん
アカウント登録を公開している場合は確かに危険ですが、特定少数のアカウントしか無くかつここに書いてある「パイプのサポート」と同等のことをアカウント連動でやろうとしているだけのことなので、仰られているスパムリスクは低いかと思います。
結局、作者から「難しい」と言われていることにWordPress初級者が頑張ったところで出来そうにないので、今回は諦めて別の方法で回避することにしました。
ありがとうございました。
まあその、「難しい」といったのは「簡単ではない」というぐらいの意味だったので、気が向いたらプラグイン作成の練習のつもりでやってみてください。やってみてどうしてもわからないことがあれば質問してもらえば答えられると思思いますので。
lilyfan さんの指摘されたポイントは非常に重要です。今回は該当しないのかもしれませんがいい機会なので強調しておきます。
なお、立派なスパマーになると何百という IP アドレスを使いわけて送ってくるので、さらに CAPTCHA や Akismet のフィルタリングを駆使して二重三重の対策をお勧めします。ただしそれをしても人力スパマーの前には何の効果もありません。100%完全な対策はありません。
フォーム投稿者自身に確認メールを返す機能というのはよく見られますが、このようなリスクがあることを十分理解した上での使用を心がけてください。(> フォームをご利用のみなさま)
なるほど、確かにスパムリスクに関しては十分注意しないといけないですね。
ただ、一般ユーザー相手のお問い合わせフォームとして使う場合は、あまりハードルを上げてしまうと集客を切ってしまうことになるので、うまくバランスを取らないといけないですね。
あと、先ほど書いた「別の回避策」ですが、以下のようなコードを書いてみました。
function wpcf7_set_class_author_name() {
if ( !is_single() ) { return; }
$output[] = "\n";
$output[] = '<script type="text/javascript"><!-- ';
$output[] = 'jQuery(document).ready(function() {';
$output[] = "jQuery('.wpcf7_author_name').val('" . get_the_author_meta('user_nicename') . "')";
$output[] = " .attr('readOnly','true')";
$output[] = '});';
$output[] = '// --></script>';
echo join("\n", $output);
}
add_filter('found_posts', 'wpcf7_set_class_author_name');
これで、フォーム内に
[text author_name class:wpcf7_author_name class:hidden]
と書いて、フォーム経由で「投稿者名」を飛ばすようにしようと思います。
問題点等あれば、ご指摘頂けますようお願い致します。
あ、今回はフォーム送信者じゃなくて、投稿ごとにコンタクトフォームを入れて、その投稿の作成者にメールを送るという話でしたか。
通常のコメントフォームならば、投稿の作成者に通知メールが飛ぶので、それで十分な気がしますが、何か足りないでしょうか??
フォーム送信者にメールを返すのは、まさにスパム送信の踏み台になるので (スパムを送りたい相手のアドレスを「自分のアドレス」として入れてしまえばいい)、けっこう危険です。
コメントでは Contact Form 7 ばりに項目を増やすことは出来ないと思いますし、個人的な内容を公開してしまうリスクもあるので、コメントでの運用は厳しいと思います。
そういや、コメントに対して投稿者にメール飛びましたね。
コメントのメール送信機能を活用出来たりするのかな???
フォーム送信者にメールを返すのは、まさにスパム送信の踏み台になるので (スパムを送りたい相手のアドレスを「自分のアドレス」として入れてしまえばいい)、けっこう危険です。
その観点は抜けてました。ありがとうございます。
とすると、自動返信したい場合は、
- 自動返信するときは、定型固定文章にする
- 送信者は捨てても良いアドレスにして、「このアドレスに返信しないでください」と注意書きを入れる
という、良く見かけるパターンにするのがベターっぽいですね。
話がそれてしまって恐縮ですが、気になったのでちょいと補足を。
- 自動返信するときは、定型固定文章にする
- 送信者は捨てても良いアドレスにして、「このアドレスに返信しないでください」と注意書きを入れる
基本的にこれらは相手が本物のユーザーだということを前提にしない限り対策として意味をなしません。どのような対策をしたとしても任意のメールアドレスへの自動返信というのは多大なリスクを伴うものなのです。リスクに見合う理由がなければ自動返信の機能は使用するべきではない、と言い切ってしまってよろしいかと。
あと、実際にスパムやその他の被害が発生してしまったときに、なるべく早い段階で被害に気づけるようにしておくこと、それから、実際に誰にメールが送られてしまったのか、誰に謝ればいいのか、トレースできるようにしておくことは非常に重要です。自動返信が送られるときは管理者にも必ずメールが届くようにしておくとよいでしょう。