フリマ(マッチング)サイトを作るにあたって考えなければならないこと。
それは、どこでユーザー同士(情報提供者と情報閲覧者)を結びつけるかということです。
手法は主に2通りあると思います。そして今回は後者の方法を取りたいと考えます。
掲示板のように返信形式を取る
掲示板形式にすれば、設置しておくだけで、サイト上でどんどんやりとりしてもらえると思われます。テキスト数も増えるので、活気が出てくればSEO的にも有利になるし、どんなやりとりがあるのかを他のユーザーも見ることができるので便利だと思います。
しかし、フリマサイトでない掲示板サイトなどではスパムコメントの嵐になって閉鎖してしまうところがあったりするところを見ると、自由に書き込めるという環境はあまり有効ではないと思います。これを防止する方法としては、会員制にしてしまうのが一番ですが、それではいちいちコメントするのにユーザー登録が必要となり敷居が一気に高くなってしまう。
メールで直接やりとりさせる
情報を提供する環境だけ整えて、あとは必要とするユーザー同士に委ねるというのが一番手間がかからなくていいと思います。長く運営しているフリマサイトなどはこの方法がほとんどです。
要するに、フリマであれば、あげたい人(売りたい人)の情報を掲載させて、あとはそれを見て「欲しい」と思った人が直接メールで連絡を取り、やりとりして完結してもらうという方法。投稿には掲載期限を設けておいて、日数経過したら非表示にするようにしていけばサイトメンテナンスも最小限で済む。
そして何よりメールアドレスのみを登録してもらえば済むため、個人情報を預からなくても運営できるので、個人情報を預かるにあたってのセキュリティが最小限で済む。
ただこの方法にも問題があって、解決しておかないと実装は不可能だと思うのでこんな方法を取ってみました。
そもそもプラグインがない
情報提供だけさせるということであれば、掲示板系のプラグインは使わずにフロントページから直接記事を書いたり編集したりできるようにすればいい。そういったプラグインはいろいろあるのですが、そこから見た人にメールで情報提供者に発信できるようなものはありませんでした。これは仕方ないのでHTMLでmailto:のタグ使って表記するしかないですね。
もともと情報提供するユーザーは情報の正しさとスパム対策を行うためユーザー登録必須にしてメールアドレスを必須にする予定ですから、そこから情報を引っ張り出せばいい。
それを踏まえて、投稿したユーザーのメールアドレス宛にメールを送るため、メーラーを起動してあて先を投稿ユーザーのアドレスにするには、
<a href="mailto:<?php the_author_meta('user_email'); ?>">投稿者にメールで問い合わせる</a>
と文末に記述すればメールをさせる仕組みはできます。
中に投稿者のメールアドレスを引き出すPHPを使っているので、EXEC-PHPなどのプラグインが必要になりますが、新規導入するだけなので問題ないでしょう。
メール収集Bot対策
上記のコードでメールを送るという動作は実装することができました。問題は悪意を持った人が行うメールアドレスの収集を行うことに対する策を講じる必要があります。このサイトを通じてメールアドレスが収集され、スパムメールに悩まされることがないようにはしたおきたいと思います。
このメールアドレス収集BOTの仕組みは、
mailto:タグの後の文字列を収集する
というもので、タグの中にmailto:タグを表示しないようにしたり、アドレス(@前後の文字列)を収集されなければセキュリティとしては最低限のことを実装できるので、「WP Mailto Links」というプラグインを使って対策するといいと思います。
英語のプラグインで日本語ファイルもありませんでしたのでそのまま使うことになりますが、余分な設定をしなくても有効化するだけで上記の対策をしてくれるので便利です。
実際に投稿を表示して、ソースを見てみましたが、確かにmailto:の部分はJavaスクリプトで別処理されているし、メールアドレスも暗号化されていました。通常はメールアドレスへのリンクをフォーカスしするとリンク先が画面の隅に表示されるのですが、それもつぶされて表示しなくなっていました。導入するだけでこの効果、さすがはwordpressプラグインです。
他にもメールアドレス収集Bot対策用プラグインはいろいろありましたし、言語ファイルの存在するものもありましたが、対策できれば特に後から設定を触ることもないので「WP Mailto Links」で事足りると思います。
掲示板やその他コミュニケーションツールをサイトに実装することがあると思いますが、こうしたBot対策ぐらいはしておきたいですね。