我有以下代码来生成自定义价格:
add_action( 'woocommerce_before_calculate_totals', 'update_custom_price', 1, 1 );
function update_custom_price( $cart_object ) {
foreach ( $cart_object->cart_contents as $cart_item_key => $value ) {
$price = my_custom_calculate_func($value);
$value['data']->set_price($price);
}
}
它在购物车页面上运行良好,但在WooCommerce迷你购物车小部件上,它不会显示正确的价格,但会计算正确的小计。
我相信这个代码作为模板存在,所以我将文件从../wp-content/plugins/woocommerce/templates/cart/mini-cart.php复制到../wp-content/mytheme /woocommerce/cart/mini-cart.php但更改此文件不执行任何操作。我删除了这个文件中的所有内容,它保持不变。
任何指导意见。
答案 0 :(得分:0)
产品价格在第39行的mini-cart.php中计算:
$product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
您可以在主题文件夹中的mini-cart.php中编辑此行,或在functions.php中使用过滤器:
add_filter( 'woocommerce_cart_item_price', 'woocommerce_cart_item_price_filter', 10, 3 );
function woocommerce_cart_item_price_filter( $price, $cart_item, $cart_item_key ) {
// your code to calculate $new_price
return $new_price;
}