通过 set_price() 方法更改产品价格后,如何更改小计价格?现在是按照review-order.php中的旧价格计算总成本。
购物车.php
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
...
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
...
$_product->set_price( $price );
...
}
最佳答案
遇到此问题,以编程方式更新购物车中的现有商品后,cart_item 的 line_total 和购物车总计未更新。 woocommerce_before_calculate_totals
未运行,因此无法完全解决这些情况下的问题。
就我而言,因为这是在服务器端更新的,而不是通过 WooCommerce 表单更新,所以我的假设是 woocommerce_before_calculate_totals
Hook 不会自动运行。
很简单,您可以明确告诉 WooCommerce 重新计算:
WC()->cart->calculate_totals();
因此,如果您有一个 woocommerce_before_calculate_totals
Hook ,则应在此之后调用它,否则 WooCommerce 应该正常处理它。
关于php - 在 Woocommerce 中设置购物车商品价格后重新计算总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51846618/