*

WordPress Contact form 7 送信前に処理を実行する方法

公開日: : 最終更新日:2015/07/09 PHP全般, WordPress全般 ,

Pocket

7422505072_576a40fa8d_z

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を使うものです。恥ずかしながらそんなものがあることを知りませんでした。。
2013-10-16 09_32_49-Contact Form 7 ‹ JBS USA Inc

使い方はここをみよ!とあるのですが、いまいち。。。
http://contactform7.com/tracking-form-submissions-with-google-analytics/

ということでいろいろ調べた結果このように記述することがわかりました。こいつをAdditional Settingの中にいれます。

on_sent_ok: “location = ‘http://www.mywebsite.com/mypage’;”

ご覧のとおり、自分のサイトのあるページへリダイレクトしていますそして、これはメール送信ボタンが押下された直後に発動します。このあるページとはつまり、ダウンロードリンクを張ったページです。これを事前につくり、登録してメールを送付した人をこのページへ誘導するという流れです。

よし!これでOK!と思ったのですが、まあURLがわかってしまえば、登録していなくてもそのページを観れてしまいますよね。セッション管理して表示の有無を判断して、、という感じで作りこめば、回避できるのですが、めんどくさがりの私なのでさっさと次の方法を探しに行ってしまいました。

このあたり、つくづくエンジニアに向いていないなぁと感じます。基本、省エネ運転です。

3. Thank you メールを使う

なんでこんなことに気がつかなかったんだ っていう感じですが、やりたいことは、

1、ダウンロードリンクをユーザーに配りたい

2、ダウンロードができるのは登録した人だけ

この2つだけです。これが達成できるならばどんな方法でもいいわけです。

無理にWebで全部やる必要はないのです。

ということでメール送信時に送付されるありがとうメールにダウンロードリンクをいれることにしました。

これで万事解決。1とか2とか試した時間合わせると2時間半。最初からこの方法をとっていれば作業時間15分。回り道をしたもんだ。

(えらそうに)まとめ

プログラムに限らず、問題への解はひとつではないことは日常茶飯事だと思います。今までの慣習や思い込みで自然に選択肢を狭めてしまいがちですが、今一度考え直してみることも重要だと思います。1日置いたり、場所を変えると全く違うアイデアが浮かんだりします。

私は仕事がら、潜在顧客へのpre salesからプログラムの実装・保守までを全部みることが多いのですが、ばか正直に正攻法をとりつづけると自分の首をしめることになります。元日本代表の岡野じゃないですが、自分で出したパスを自分で受け取ることなんてざらです。一人ワンツーです。

この記事の文中に基本、省エネ 運転と書きましたが大マジです。私の頭の中にあるのは、いかに楽してクライアントの要望を満たすか。これに尽きます。あ、ウソをつきました。要望を満たす のではなくて、要望(期待)を少しだけ超えることを考えています。”少しだけ”がミソです。 大きく超えようとうると、時間もかかるし、要求から離れていってしまう可能性があります。 少しだけ超えること。これができると次の営業が格段に楽になります。あいみつとられて、、なんていう面倒なステップをすっとばして自分にどんどん仕事がくるようになります。

えらそうにまとめなんて書いてしまいましたが、生来のなまけものなので、これからも楽をして生きていくつもりです。楽をするための努力ならいくらでもします。

photo:All rights reserved by http://www.flickr.com/photos/millioneyez/

Ads by Google

Ads by Google

関連記事

WordPress RSSフィードでエラーが出たときの解決方法

wordpressではデフォルトでRSS用のXMLを吐き出す機能がついています。 普通は ht

記事を読む

WordPress + Welcart 全部無料。10分でお手軽Eコマースサイトを構築する方法

WordPressとWelcartというプラグインで、早く、安く、簡単にEコマースサイトを構

記事を読む

no image

Apache バーチャルホストごとに include pathを変更する方法

Apacheでバーチャルホストを使用し複数のサイトを1サーバで管理しているときに便利な機能。 例え

記事を読む

no image

WordPress ショートコードの中にショートコードを書く方法

.frame{ display: block; padding: 9.5px; margi

記事を読む

WordPress SSL対応後、管理ページがリダイレクトループエラーとなるときの解決方法

WordPressでSSL対応(https対応)後に管理ページでRedirect loopエ

記事を読む

WordPress cherry frameworkでカルーセルを使ったときにモバイルでスクロールしない問題を解決

カルーセル(Carousel)という言葉が一般的かわかりませんが、一定の画面内で画像をス

記事を読む

no image

WordPressでサイトを運営されている初心者ブロガーの方へ。SEOを意識した記事の投稿手順を紹介

WordPressは本当に便利なツールです。いまさら私が言うまでもないですが、WordPre

記事を読む

no image

WordPress colorway テーマのcufonフォントを無効にする方法

WordPressの無料テーマである Colorwayではデフォルトでh1,h2,h3,

記事を読む

WordPres3.9.1にアップデートしたらRSSでエラーがでた時の解決方法

WordPressの最新版(2014年6/25時点)3.9.1にアップグレードしたところRSSフ

記事を読む

no image

WordPressの投稿を自動的にFacebookのウォールに書き込む方法

Facebook、Twitterといったソーシャルネットワークサービス(SNS)が浸透している現在、

記事を読む

Ads by Google

Ads by Google

Ads by Google

Ads by Google
新着記事をRSSで受けとる
PAGE TOP ↑