我正在尝试编辑购物车中产品的总计。但由于某种原因,输出没有得到更新。这是我所拥有的:
foreach ( $woocommerce->cart->get_cart() as $key => $value ) {
$value['data']->price = 10;
$value['line_total'] = 1;
$value['line_subtotal'] = 1;
}
更新 $value['data']->price
,工作正常。但是当我尝试更新 $value['line_total']
或 $value['line_subtotal']
时,输出是相同的。
有什么想法吗?
最佳答案
更改 $value['line_total']
或 $value['line_subtotal']
到 $woocommerce->cart_contents[ $key ]['line_total']
和/或 $woocommerce->cart_contents[ $key ]['line_subtotal']
您可能还想通过覆盖 $woocommerce->cart_contents_total
的值来修改购物车内容总数
这些变量只会改变购物车总计的计算,但如果您还想反射(reflect)购物车标记,您可能需要挂接到 'woocommerce_cart_product_subtotal'
add_filter( 'woocommerce_cart_product_subtotal', 'modify_cart_product_subtotal', 10, 4 );
function modify_cart_product_subtotal( $product_subtotal, $product, $quantity, $cart ) {
//在这里添加你的逻辑。
//您可以使用 $cart 而不是使用全局 $woocommerce 变量。
返回 $product_subtotal;
}
有关更详细的引用,您可以在此处查看 WC_Cart
类文档:Woocommerce Cart
关于php - 编辑 woocommerce 行总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701569/