2017-05-03 91 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已經WooCommerce 3.0+被替換爲不同的鉤,其具有現在3個參數(但不是$product論點了)。

這裏是一個功能類似的代碼:

// 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文件或也以任何插件文件。

此代碼測試,只爲WooCommerce 3.0以上版本


更新工程,以避免NAN%百分比值時經常和銷售價格是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和這就是爲什麼它返回南 –

相關問題