我尝试使用自定义字段(unit_price)格式化某些产品的价格。我的值是3.2(3,2),但代码不识别逗号或点,它只显示3 有什么方法可以实现全价值吗? 任何帮助表示赞赏。
function cw_change_product_html( $price_html, $product )
{
$unit_price = get_post_meta( $product->id, 'unit_price', true );
if ( ! empty( $unit_price ) ) {
$price_html = '<span class="amount">' . wc_price( $unit_price ) . ' per kg</span>';
}
return $price_html;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_html', 10, 2 );
function cw_change_product_price_cart( $price, $cart_item, $cart_item_key )
{
$unit_price = get_post_meta( $cart_item['product_id'], 'unit_price', true );
if ( ! empty( $unit_price ) )
{
$price = wc_price( $unit_price ) . ' per kg';
}
return $price;}
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_cart', 10, 3 );`
答案 0 :(得分:0)
请尝试将输出(仅为了更好地理解变量)从$unit_price = get_post_meta( $product->id, 'unit_price', true );
转储为
的var_dump($ UNIT_PRICE);
这将返回字符串。然后你必须将字符串转换为float
$ unit_price = floatval($ unit_price);
然后您可以使用wc_price( $unit_price )
。
检查文档http://woocommerce.wp-a2z.org/oik_api/wc_price/,因为 $ price 是浮动值