我正在尝试编辑购物车中产品的总计。但由于某种原因,输出没有得到更新。这就是我所拥有的:
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']
时,输出结果相同。
有什么想法吗?
答案 0 :(得分:1)
更改$value['line_total']
或$value['line_subtotal']
到$woocommerce->cart_contents[ $key ]['line_total']
和/或$woocommerce->cart_contents[ $key ]['line_subtotal']
您可能还想通过覆盖$woocommerce->cart_contents_total
这些变量只会改变购物车的总计算量,但如果你想反思购物车标记,你可能想要挂钩'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 ) {
// Add your logic here.
// You can use the $cart instead of using the global $woocommerce variable.
return $product_subtotal;
}
有关更详细的参考,您可以在此处查看WC_Cart
课程文档:Woocommerce Cart