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_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; }
次のようにショッピングカート内の価格が表示されます。
量部分の場合は、フックを確認して同様の方法で価格を円単位で表示することができます。
もし101万4千400ウォン式でウォン単位まで表示したい場合は、上記のコードでは1000ウォンの部分まで考慮して、コードを少し変更してくれればとなります。
もう一度申し上げます、上記のコードは、十分なテストを経ていない。 適切な変更をして使用してください。
今テストしてみると $cart_item['data']->price も同じエラーが出ます $cart_item['data']->get_price() で修正してテストしてみるとうまくいくようです。
テストサイトでエラーが出なくて、そのまま置いた、この部分も同じエラーがあるようですね。 エラーを修正しました。
楽しい一日を^^
こんにちは? デバッグモードで$ product-> reqular_priceなどを使用すると、 'regular_priceは間違って呼び出されました。 製品のプロパティに直接アクセスしてはいけません。
こんにちは?
エラーを報告いただきありがとうございます。
コードを再修正しました。 テストしてみてください?
はいよくなりますね。 ありがとうございます^^