指定した金額の税込み価格を3桁区切りで表示するショートコードです。
ショートコードの基本形
[after_tax price=""]
※実際に使用するときは、[]を半角([ ])に直してください
price=""に計算したい税別価格を指定してください。
税込み価格を税率10%で計算し、小数点以下の端数が発生した場合は切り捨てます。
※税率や小数点以下の処理方法は変更可能です。変更方法はこちら。
使用例
[after_tax price="2480"]
<↓ このショートコードを使ったときの表示結果>
2,728ソースコード
functions.phpにコピペしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
/** * ADD: 税込み価格を表示するショートコード * * 基本形:[after_tax price="税別価格" tax="税率(%)" round="「down」もしくは「up」"] * round:小数点以下をどう処理するか。「down」を指定すると切り捨て、「up」は切り上げ。 * * 例1)[after_tax price="2480" tax="10" round="down"] * →「2,728円」と表示される。 * 例2)[after_tax price="2,480" tax="10" round="down"] * →「2,728円」と表示される。 * 例3)[after_tax price="2480" tax="" round=""] * →taxが未指定の場合、税率10%で計算。roundが未指定の場合、「down」として計算。 * 表示結果は「2,728円」。 */ function add_calc_after_tax($arg){ /* パラメータの取得 */ extract (shortcode_atts (array ( 'price' => '', /* 税別価格 */ 'tax' => '', /* 税率 */ 'round' => '' /* 四捨五入の方法 */ ), $arg ) ); /************************* * 税別価格のチェック *************************/ if ($price == '') { return '<span style="color: #ff0000;">【価格が指定されていません】</span>'; } $price = str_replace(',', '', $price); /* 整数でない場合は処理終了 */ if(! preg_match('/^[0-9]+$/', $price)){ return '<span style="color: #ff0000;">【設定価格が整数ではありません】</span>'; } /************************* * 税率のチェック *************************/ if ($tax != '') { /* 整数でない場合は処理終了 */ if(! preg_match('/^[0-9]+$/', $tax)){ return '<span style="color: #ff0000;">【設定税率が整数ではありません】</span>'; } } else { $tax = '10'; } $calc_tax = (int)$tax / 100 + 1; /************************* * 税込み価格を計算 *************************/ $after_tax = (int)$price * $calc_tax; /* 四捨五入する */ if (strcmp($round, 'up') == 0) { $disp_price = ceil($after_tax); } else { /* 「up」以外はすべて切り捨てとして処理 */ $disp_price = floor($after_tax); } /* 3桁区切りにして返却 */ return number_format($disp_price); } add_shortcode('after_tax', 'add_calc_after_tax'); |
※一部インデントがおかしいように見えますが、プレーンテキスト表示にすると正しく表示されます。
税率や小数点以下の処理を指定するには
ショートコード内にtax=""とround=""のオプションを追記することで、税率や小数点以下の処理を指定できるようになります。
[after_tax price="" tax="" round=""]
- tax:税率(%)を指定。未指定の場合、10%として計算します。
- round:小数点以下をどう処理するか指定できます。「down」を指定すると切り捨て、「up」は切り上げです。未指定の場合、「down」として計算します。
税率8%/端数切り捨て
[after_tax price="2480" tax="8" round="down"]
→ 2,678
切り捨て・切り上げ
小数点以下の処理によって税込み価格が変わってしまうパターンの比較です。
※1005円×1.1=1105.5円
端数切り捨て
[after_tax price="1005" tax="" round=""]
→ 1,105
端数切り上げ
[after_tax price="1005" tax="" round="up"]
→ 1,106
その他使用例
税別価格に「,」が入っていても正しく処理します。
税別価格に「,」
[after_tax price="2,480" tax="10" round="down"]
→ 2,728
taxが未指定の場合、税率10%で計算し、roundが未指定の場合、「down」として計算します。
オプションが空っぽ
[after_tax price="2480000" tax="" round=""]
→ 2,728,000
3桁区切りで表示したくない場合の修正方法
ショートコード使用時、「1,000」ではなく「1000」のように表示したい場合は、最後のreturnからnumber_format()を取り除いてください。
修正前:return number_format($disp_price);
↓
修正後:return $disp_price;
これで3桁区切りが無効になります。