WooCommerce:get_price_htmlを編集する方法


13

単一の製品の価格値を編集しようとしています。

single-product/price.phpのテンプレートの呼び出しがあります$product->get_price_html。その関数/メソッドを編集して、HTMLの表示方法を変更するにはどうすればよいですか?

現時点では、その中にある関数の内容をすべて削除しclass-wc-productても、奇跡的に表示されますか?誰もが理由を知っていますか?

回答:


17

更新により変更が上書きされる可能性があるため、コアファイルとプラグインファイルを直接編集しないでください。get_price_htmlメソッドでWooCommerceソースを見ると、関数の出力を変更するために使用できるフィルターがいくつかあります。

呼び出しadd_filterへのフィルターの追加の詳細については、コーデックスを参照してくださいapply_filters

get_price_htmlclass-wc-product

return apply_filters('woocommerce_get_price_html', $price, $this);

独自のフィルターを追加するには:

add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83367_price_html( $price, $product ){
    return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price );
}

私はそれはまだ通常通りの出力を返す主な機能の内容を削除する理由経由で答えてくれてありがとう、
ラッキールーク

1
それで、セールがあり、それが私を返す場合、フィルターで<del>£2</del><ins>£1</ins>それをどのように変更できWas:<del>£2</del> Now:<ins>£1</ins>ますか?
ラッキールーク

わからない、WooCommerceに精通していない、おそらく別のクラスがそれを拡張している。2番目の質問については、上記の編集を参照してください。
ミロ

ブリル、;)、大きな助け
ラッキールーク

のデフォルトwoocommerce_get_price_htmlフィルタで何が起こっているかを知りたい$price。私のサイトでは、woocommerceショー代わりに無料の製品の0 $Free!
SKMohammadi

5
function wpa83368_price_html( $price,$product ){
   // return $product->price;
    if ( $product->price > 0 ) {
      if ( $product->price && isset( $product->regular_price ) ) {
        $from = $product->regular_price;
        $to = $product->price;
        return '<div class="old-colt"><del>'. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' Retail </del>  | </div><div class="live-colst">'.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'Our Price</div>';
      } else {
        $to = $product->price;
        return '<div class="live-colst">' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . 'Our Price</div>';
      }
   } else {
     return '<div class="live-colst">0 Our Price</div>';
   }
}

5
コードが機能する場合でも(そして、それが機能しないと思う理由はありません)、これはQ / Aサイトであり、コードリポジトリではありません。でも、インラインコメント...
gmazzap

また、このコードでは適切ではないオブジェクトプロパティも使用しています。
スヴェトスラフマリノフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.