在WooCommerce中,我试图计算购物车中可变产品的价格。我想将产品价格乘以一些自定义购物车项目的数值。
这是我的代码:
add_filter( 'woocommerce_cart_item_price', 'func_change_product_price_cart', 10, 3 );
function func_change_product_price_cart($price, $cart_item, $cart_item_key){
if (isset($cart_item['length'])){
$price = $cart_item['length']*(price of variation);
return $price;
}
}
价格计算不起作用。我在做什么错了?
答案 0 :(得分:2)
此挂钩中的$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'] );
}
if ( isset($cart_item['length']) ) {
$price = wc_price( $product_price * $cart_item['length'] );
}
return $price;
}
应该可以。