ベストセラー人気 WordPress テーマTop 30 詳細

WooCommerce 商品の価格を円単位で表示する方法

Last Updated:2018年2月9日| 5のコメント
  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기

WordPress WooCommerceでお店や、個々の商品ページで価格を円単位で表示したい場合があります。 この場合、適切なPHPコードを応用して、価格を必要に応じて表示することができます。

仮に このphpschool記事に記載されているコードをアプリケーション試みることができるでしょう。 しかし、PHP 7.0以降のバージョンでは、エラーが発生しますね。

ただ無知にコードを一つ作ってみました。 私はPHPに黒目であるので私の頭の中にある考えをif… else… 構文だけを使って急調しましたㅎㅎ。

// 상점 페이지와 개별 상품 페이지 및 카테고리 페이지의 상품 가격을 만원 단위로 표시하기

add_filter('woocommerce_get_price_html', 'korean_units', 100, 2);
function korean_units($price, $product) {

$man = intval($product->get_regular_price()/10000);
$remain = $product->get_regular_price()%10000;
if($man == 0){
$regresult = $remain . '원';
}
else {
if($remain != 0) {
$regresult = $man . '만 ' . $remain . '원';
}
else {
$regresult = $man . '만 원';
}
}
$result = $regresult;

if ( $product->is_on_sale() ) {
$man = intval($product->get_sale_price()/10000);
$remain = $product->get_sale_price()%10000;
if($man == 0){
$saleresult = $remain . '원';
}
else {
if($remain != 0) {
$saleresult = $man . '만 ' . $remain . '원';
}
else {
$saleresult = $man . '만 원';
}
}
$result = '<span style="color:red"><del>' . $regresult . '</del></span> ' . $saleresult;
}
$price = $result;
return $price;

}

*既存のコードは、 $product->reqular_priceなどを使用すると、 'regular_priceは間違って呼び出されました。 製品のプロパティに直接アクセスしないでください。というエラーが発生し、製品の価格を呼び寄せるコードを置き換えました(参照).

PHP 7.2の環境でテストしてみるとうまく動作しますね。 テーマは Avada テーマを使用し、 WooCommerce バージョンは3.3.1でした。 (参考までに、最近 WordPressで推奨PHPバージョンを7.2に調整しました。 「WordPress推奨バージョンのPHPを7.2以上に調整「を参照してください。)

たとえば、1,135,200ウォンは「113万5200ウォン」と表示され、5300ウォンは「5300ウォン」と表示されます。 また、オプション商品については考慮しておりません。 オプション商品で上記のコードが正しく動作しない場合は、価格を呼び出す関数をチェックして価格部分を置き換えてください。

そして割引価格がある場合には、 113万5200ウォン 99万ウォンのように表示されるようにしました。

上記のコードは、十分にテストを行っていません。 より完全なコードをマンドゥシヌン場合お知らせいただければ、コードを更新するようにします。

以下は、実際の動作例の画面です。

WooCommerce 商品の価格を円単位で表示する方法5
店のページ
WooCommerce 商品の価格を円単位で表示する方法6
個別商品ページ(値引きなし)
WooCommerce 商品の価格を円単位で表示する方法7
個別商品ページ(セール価格適用)

上記のコードは、お店のページと、個々の商品ページ、アーカイブ、ページ(例えば、カテゴリページ)などに適用されてカートページでは適用されません。 カートのページに表示されている価格は、 woocommerce_cart_item_price フィルタを使用して調整することができます。

例えば、次のようなコードを適用してみると…

// 장바구내의 상품 가격을 만원 단위로 표시하도록 변경하기

add_filter( 'woocommerce_cart_item_price', 'cart_item_price_ko', 10, 3 );
function cart_item_price_ko( $price, $cart_item, $cart_item_key ) {

$man = intval($cart_item['data']->get_price()/10000);
$remain = $cart_item['data']->get_price()%10000;
if($man == 0){
$result = $remain . '원';
}
else {
if($remain != 0) {
$result = $man . '만 ' . $remain . '원';
}
else {
$result = $man . '만 원';
}
}
$price = $result;
return $price;
}

次のようにショッピングカート内の価格が表示されます。

WooCommerce 商品の価格を円単位で表示する方法8
カート内の価格は、表示変更

量部分の場合は、フックを確認して同様の方法で価格を円単位で表示することができます。

もし101万4千400ウォン式でウォン単位まで表示したい場合は、上記のコードでは1000ウォンの部分まで考慮して、コードを少し変更してくれればとなります。

もう一度申し上げます、上記のコードは、十分なテストを経ていない。 適切な変更をして使用してください。

メモ:



5のコメント

コメント

  1. テストしてみると $cart_item['data']->price も同じエラーが出ます $cart_item['data']->get_price() で修正してテストしてみるとうまくいくようです。

    応答
    • テストサイトでエラーが出なくて、そのまま置いた、この部分も同じエラーがあるようですね。 エラーを修正しました。

      楽しい一日を^^

      応答
  2. こんにちは? デバッグモードで$ product-> reqular_priceなどを使用すると、 'regular_priceは間違って呼び出されました。 製品のプロパティに直接アクセスしてはいけません。

    応答
    • こんにちは?
      エラーを報告いただきありがとうございます。

      コードを再修正しました。 テストしてみてください?

      応答