php - 在 Woocommerce 中设置购物车商品价格后重新计算总计

标签 php wordpress woocommerce cart hook-woocommerce

通过 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/

相关文章:

php - 在 WooCommerce 单一产品标题下显示自定义字段

html - 选中时使颜色停留在 CSS 元素上

javascript - HTML + PHP。带 POST 的表单不发送输入类型 = 文本

PHP 和 DB 连接与 mysqli

javascript - 通过 JSON 从 PHP 到 javascript 的索引多维数组

php - 从 javascript 向 php 传递参数

php - 用类查找元素并在php字符串中添加一个

javascript - php脚本echo显示在控制台而不是文本输入中

php - WooCommerce 不显示模板

php - 在 Woocommerce 中选择的运输方式更改时显示或隐藏 html 元素