1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

smart custom feildを使い、数字を入力したら税込で表示され、かつ数字をカンマで区切る方法

Posted at

「smart custom feild」が入っている前提。

税込計算をするためfunction.phpに以下を入力

消費税が8%の場合

function including_tax($attr) {
	$price = floor($attr[0]*1.08);
	return $price;
}
add_shortcode('price', 'including_tax');

消費税8%びの場合は、「*1.08」と記述。

消費税が8%から10%へ変更された場合

function including_tax($attr) {
    $price = floor($attr[0]*1.1);
    return $price;
}
add_shortcode('price', 'including_tax');

「*1.08」を「*1.10」と記述するだけ。

税抜き金額が「1000円」の場合、
税込み金額を挿入したい箇所に下記のショートコードを記述。

[price 1000]

すると8%の場合は、1080と表示され、10%の場合じゃ、1100と表示れる
[price 1000]に「円」を入れれば「円」つきで表示されます。

カスタムフィールドで表示させる方法

固定ページの場合は、[price 1000]などど記述すればすぐ表示されるが、
カスタムフィールドはちょっと違う。

普通に

<?php echo post_custom('カスタムフィールド名');?>

記述した場合、ショートコードがそのままでてきてしまう。
なので、

<?php echo apply_filters('the_content', get_post_meta($post->ID, 'カスタムフィールド名', true));?>

と記述しなければならない。
そうすることで、数字だけが出てくる。

カンマで区切りる方法

カンマで区切るには、number_formatを使えば良いのだが、
smart custom feildを使っているせいかエラーが吐き出されてしまう。

<?php
if(get_post_meta($post->ID , 'カスタムフィールド名' ,true)):
$num = get_post_meta($post->ID , 'カスタムフィールド名' ,true); 
echo number_format( $num ) ;
endif; ?>

上記を入れると、カンマ区切りで表示されるらしいが、何も表示されなくなってしまったため、

<?php echo apply_filters('the_content', get_post_meta($post->ID, 'カスタムフィールド名', true));?>

上記と合体させて

<?php
if(apply_filters('the_content', get_post_meta($post->ID, 'price', true))):
$num = (apply_filters('the_content', get_post_meta($post->ID, 'price', true)));
echo number_format((int)$num);
endif; ?>

と記述したら見事カンマ区切りで表示された。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?