お知らせ

PHPによるWordPressカスタマイズブック(WordPress 3.x対応版)2010年9月24日

PHPによるWordPressカスタマイズブック(3.x対応)」が発売されました。
WordPressのテンプレートにPHPのプログラムを書いてカスタマイズする方法や、WordPressのデータベースにPHPでアクセスする方法、またWordPressのプラグインの開発方法など、WordPressをより深く活用したい方に最適な一冊です。
WordPress 3.xに対応しています。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

定価と売価から割引率を求める

| コメント(1) | トラックバック(0)

当ブログの読者の方から、以下の質問をいただきました。

MTでネットショップを運営しているのですが、定価と売価の割引率を、自動で表示したいのです。
今、現在は、定価フィールドと売価フィールドを作っています。

記事のネタとして手頃だったので(笑)、この質問に答えてみます。

1.変数と計算

Movable Type 4.1以降では、変数を使って簡単な計算を行うことができます。
計算を行うには、タグを以下のように書きます。

<mt:SetVar name="変数名" op="演算子" value="値">

演算子は以下を指定することができます。

演算方法演算子
足し算+
引き算-
掛け算*
割り算/

例えば、「a」という変数が定義されているとして、その値を5増やすには、以下のように書きます。

<mt:SetVar name="a" op="+" value="5">

また、valueのところを「value="$変数名"」のように書くと、ある変数と他の変数を計算することもできます。
例えば、変数aから、変数bの値を引くには、以下のように書きます。

<mt:SetVar name="a" op="-" value="$b">

2.テンプレートタグの値を変数に代入する

テンプレートタグの値を計算に使いたい場合、まずテンプレートタグの値を変数に代入してから、上記の手順で計算を行います。
テンプレートタグの値を変数に代入するには、以下のように書きます。

<テンプレートタグ名 setvar="変数名">

例えば、ブログ全体の記事数を変数entry_countに代入するには、以下のように書きます。

<$mt:BlogEntryCount setvar="entry_count"$>

3.割引率を求める

いただいたご質問は、「定価と売価がカスタムフィールドに入っている場合に、それらの値から割引率を求める」という話でした。
割引率をパーセント単位で求めるなら、計算式は以下のようになります。

割引率=(定価-売価)/定価×100

定価/売価を、それぞれMTEntryRegularPrice/MTEntryRetailPriceというカスタムフィールドに入れているとします。
そして、割引率を変数discountに求めたいとします。
その手順は以下のようになります。

  • 定価(MTEntryRegularPrice)/売価(MTEntryRetailPrice)を、それぞれ変数regular_price/retail_priceに代入します。
  • 変数discountに、定価(変数regular_price)を代入します。
  • 変数discountから、売価(変数retail_price)を引きます。
  • 変数discountを、定価(変数regular_price)で割ります。
  • 変数discountの値を100倍します。

この流れをテンプレートタグにすると、以下のようになります。

<$mt:EntryRegularPrice setvar="regular_price"$>
<$mt:EntryRetailPrice setvar="retail_price"$>
<$mt:SetVar name="discount" value="$regular_price"$>
<$mt:SetVar name="discount" op="-" value="$retail_price"$>
<$mt:SetVar name="discount" op="/" value="$regular_price"$>
<$mt:SetVar name="discount" op="*" value="100"$>

後は、割引率を出力したい位置に、以下のようなタグを入れます。

<$mt:GetVar name="discount"$>

4.割引率の小数点以下の処理

ここまでの手順だけだと、定価/売価の組み合わせによっては、割引率に小数点以下の値が含まれます。
例えば、定価が900円で売価が800円だと、割引率は11.111111・・・%になります。

割引率の小数点以下を切り捨てたりする方法は、以前に「MTで税込み計算&3桁ごとにコンマで区切る&切り捨てなど」の記事で解説しています。
そちらも合わせてお読みください。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(0)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1944.

コメント(スレッド1件,コメント1件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 akira : 素晴らしいです!

素晴らしいです!ありがとうございます。
まさか、こんなにもすぐにお答えしていただけるとは・・。

感謝です。
また分からないことがあったら質問します!

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。