2017-05-03 5 views
6

の単一商品ページでディスカウントされたパーセンテージを表示するfunction.phpにこのコードを入れて価格を表示し、WooCommerce v2.6.14でうまくいきました。WC 3.0 +

ただし、このスニペットはWooCommerceバージョン3.0以降では動作しません。

どうすれば修正できますか?ここで

はそのコードです:

// Add save percent next to sale item prices. 
add_filter('woocommerce_sale_price_html', 'woocommerce_custom_sales_price', 10, 2); 
function woocommerce_custom_sales_price($price, $product) { 
    $percentage = round((($product->regular_price - $product->sale_price)/$product->regular_price) * 100); 
    return $price . sprintf(__(' Save %s', 'woocommerce'), $percentage . '%'); 
} 

答えて

8

woocommerce_sale_price_htmlフックは(もうではなく$product引数)今3つの引数を持っていWooCommerce 3.0 +で異なるフック、置き換えられています。

// Only for WooCommerce version 3.0+ 
add_filter('woocommerce_format_sale_price', 'woocommerce_custom_sales_price', 10, 3); 
function woocommerce_custom_sales_price($price, $regular_price, $sale_price) { 
    $percentage = round(($regular_price - $sale_price)/$regular_price * 100).'%'; 
    $percentage_txt = __(' Save ', 'woocommerce').$percentage; 
    $price = '<del>' . (is_numeric($regular_price) ? wc_price($regular_price) : $regular_price) . '</del> <ins>' . (is_numeric($sale_price) ? wc_price($sale_price) . $percentage_txt : $sale_price . $percentage_txt) . '</ins>'; 
    return $price; 
} 

このコードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルに入るか、また、どのプラグインファイルに:ここ

は、機能的なコードということです。

このコードはテストの結果、通常の販売価格があるときNAN%パーセント値を避けるためにのみWooCommerceバージョン3.0+


更新のために働くされたHTMLフォーマット済み:

add_filter('woocommerce_format_sale_price', 'woocommerce_custom_sales_price', 10, 3); 
function woocommerce_custom_sales_price($price, $regular_price, $sale_price) { 
    // Getting the clean numeric prices (without html and currency) 
    $regular_price = floatval(strip_tags($regular_price)); 
    $sale_price = floatval(strip_tags($sale_price)); 

    // Percentage calculation and text 
    $percentage = round(($regular_price - $sale_price)/$regular_price * 100).'%'; 
    $percentage_txt = __(' Save ', 'woocommerce').$percentage; 

    return '<del>' . wc_price($regular_price) . '</del> <ins>' . wc_price($sale_price) . $percentage_txt . '</ins>'; 
} 

このコードは、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイル、またはすべてのプラグインファイル。

このコードはテストされ、WooCommerceバージョン3.0+ (@AsifRaoのおかげで)

+0

恐ろしいに対してのみ機能している、それは働きます! – decupe

+0

返品NAN% –

+0

私の場合は$ LoicTheAztec $ regular_price returrning " 65.99 $"通常価格しかし、このhtmlとそれがなぜナノを返すのかということです。 –

関連する問題