在WooC中有项目行的自定义价格。 现在找到解决方案,以这种方式在编辑顺序中更改小计:
add_action( 'woocommerce_update_order_item', function ($_item_id, $_item, $_order_id) {
if( $arr_item_meta = wc_get_order_item_meta($_item_id) )
{
$prc = wooc_item1_price( $arr_item_meta["_a1"][0], $arr_item_meta["_a2"][0], $arr_item_meta["_a3"][0], $_item->get_product()->get_id() );
$_item -> set_total( $prc );
$_item -> set_subtotal( $prc );
$_item -> save();
}
},10,3);
这仅适用于编辑。即更新时 - 它设置我用功能
的价格wooc_item1_price与购物车中的争论很少(每种产品的数量)
问题是:
如何将刚刚添加到购物车中的产品制作成相同的产品。 因此,在任何编辑/更新程序之前,将按顺序提供新的小计+总计。 请帮帮我!
答案 0 :(得分:0)
add_action ('woocommerce_calculate_totals', function( $_cart )
{
foreach ($_cart->cart_contents as $cart_key => $cart_item)
{
$prc = function_to_make_item_custom_price(
$_cart->cart_contents[$cart_key]["_param1"],
$_cart->cart_contents[$cart_key]["_param2"],
$_cart->cart_contents[$cart_key]["_param3"],
$_cart->cart_contents[$cart_key]["product_id"]
);
$_cart->cart_contents[$cart_key]['line_subtotal'] = $prc;
$_cart->cart_contents[$cart_key]['line_total'] = $prc;
}
}, 10,1);
这是正确的方法 - 在购物车上添加商品的价格。 需要有价格函数function_to_make_item_custom_price来根据参数定制价格。在我的情况下 - 这是产品部分的数量(旅游成人和儿童和婴儿param1,param2,param3)
其简化的想法,还需要重新征税,优惠券......