Корзина WooCommerce не показывает цены на небольшие десятичные дроби правильно - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть некоторые продукты, в которых цены должны быть указаны до 8 знаков после запятой, например, цена за единицу равна 0,00000214.

Я пытался добавить фильтр, но он просто показывает значение 0,00000000

Вот что у меня есть:

function filter_woocommerce_cart_item_price( $price, $cart_item, $cart_item_key ) 
{ 
    $formattedNum = number_format((float) $price, 8); 
    return $formattedNum;
}; 

add_filter( 'woocommerce_cart_item_price', 'filter_woocommerce_cart_item_price', 10, 3 ); 

Спасибо

1 Ответ

0 голосов
/ 09 февраля 2020

Проблема заключалась в том, что $ price возвращает уже отформатированное значение. Мне нужно было получить исходную цену.

Это рабочее решение:

add_filter( 'woocommerce_cart_item_price', 'change_cart_item_price', 10, 3 );
function change_cart_item_price( $price, $cart_item, $cart_item_key )
{
    if ( WC()->cart->display_prices_including_tax() )
    {
        $product_price = wc_get_price_including_tax( $cart_item['data'] );
    } else
    {
        $product_price = wc_get_price_excluding_tax( $cart_item['data'] );
    }

    $price =  number_format($product_price,8);

    return floatval($price);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...