WordPressの超有名プラグインContact form 7を利用されている方は多いと思います。かく言う私もこのプラグインの愛好者でWebサイトのお問い合わせページやオンラインアンケートなどでよく利用しています。
先日Webサイト内で「ある実行ファイルをダウンロードさせるリンクを張って欲しい」という依頼がありました。単純にダウンロードリンクを設置するだけなら、/wp-content 下にダウンロード用のフォルダを作って、そこに対象の実行ファイルを突っ込めばおしまいです。左手でも2分でできます
今回の場合、ダウンロード可能なのは、『必要事項を申し込んだ人のみ』というしばりがあったため、少し頭をつかったのでその方法をシェアします。
考えた方法は3つです。
1. Allow PHP in Posts and Pages を使う方法
Allow PHP in Posts and Pagesとはpageやpost内にphpを記載できようになるプラグインです。
で囲んだ中にプログラムを記載することができます。普通にphpを書くときの<?><?>に読み替えていただければお思います ただし!特定のタグが勝手に除去されたりするのでデフォルトで利用する場合は動作・表示をよく確認して使用するようにしましょう。私がこの方法を選ばなかった理由はここにあります。もしかしたら可能なのかもしれませんが、if文をつかってsubmitボタンを押したときだけダウンロードリンクを表示させようとしたのですが、どうもうまく動きませんでした。 ↓こんな感じです。 <div style="background-color:#cfcfcf;padding:10px;margin-bottom:20px">
if($_POST["xxxx"] != ""){
ダウンロードリンクを記載
}
echo とかは普通に動いているので基本動作は問題なく動いています。私はここで違う方法を探ってしまったので、これ以上の検証はしていませんが、データベースに自作テーブルを作って、そこからダイナミックにページを生成するような処理がしたい人は試してみる価値はあると思います。
2. Contact form 7 のAdditional Settingを使う方法
これはCOntact form 7 のいち機能として備わっているAdditional Settingを使うものです。恥ずかしながらそんなものがあることを知りませんでした。。
使い方はここをみよ!とあるのですが、いまいち。。。
ということでいろいろ調べた結果このように記述することがわかりました。こいつをAdditional Settingの中にいれます。
ご覧のとおり、自分のサイトのあるページへリダイレクトしていますそして、これはメール送信ボタンが押下された直後に発動します。このあるページとはつまり、ダウンロードリンクを張ったページです。これを事前につくり、登録してメールを送付した人をこのページへ誘導するという流れです。
よし!これでOK!と思ったのですが、まあURLがわかってしまえば、登録していなくてもそのページを観れてしまいますよね。セッション管理して表示の有無を判断して、、という感じで作りこめば、回避できるのですが、めんどくさがりの私なのでさっさと次の方法を探しに行ってしまいました。
このあたり、つくづくエンジニアに向いていないなぁと感じます。基本、省エネ運転です。
3. Thank you メールを使う
なんでこんなことに気がつかなかったんだ っていう感じですが、やりたいことは、
1、ダウンロードリンクをユーザーに配りたい
2、ダウンロードができるのは登録した人だけ
この2つだけです。これが達成できるならばどんな方法でもいいわけです。
無理にWebで全部やる必要はないのです。
ということでメール送信時に送付されるありがとうメールにダウンロードリンクをいれることにしました。
これで万事解決。1とか2とか試した時間合わせると2時間半。最初からこの方法をとっていれば作業時間15分。回り道をしたもんだ。
(えらそうに)まとめ
プログラムに限らず、問題への解はひとつではないことは日常茶飯事だと思います。今までの慣習や思い込みで自然に選択肢を狭めてしまいがちですが、今一度考え直してみることも重要だと思います。1日置いたり、場所を変えると全く違うアイデアが浮かんだりします。
私は仕事がら、潜在顧客へのpre salesからプログラムの実装・保守までを全部みることが多いのですが、ばか正直に正攻法をとりつづけると自分の首をしめることになります。元日本代表の岡野じゃないですが、自分で出したパスを自分で受け取ることなんてざらです。一人ワンツーです。
この記事の文中に基本、省エネ 運転と書きましたが大マジです。私の頭の中にあるのは、いかに楽してクライアントの要望を満たすか。これに尽きます。あ、ウソをつきました。要望を満たす のではなくて、要望(期待)を少しだけ超えることを考えています。"少しだけ"がミソです。 大きく超えようとうると、時間もかかるし、要求から離れていってしまう可能性があります。 少しだけ超えること。これができると次の営業が格段に楽になります。あいみつとられて、、なんていう面倒なステップをすっとばして自分にどんどん仕事がくるようになります。
えらそうにまとめなんて書いてしまいましたが、生来のなまけものなので、これからも楽をして生きていくつもりです。楽をするための努力ならいくらでもします。