我正在使用我网站上的UPS送货方式扩展程序来获取运费。在计算费率之前,我需要更改购物车物品的重量。以下是我尝试过的方法。在这种情况下,我想将任何包含“-$$$”的购物车商品的重量更改为1。
function cart_weight_change( $cart ){
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
foreach( $cart->get_cart() as $cart_item ){
$itemId = wc_get_product($cart_item['data']->get_id());
$itemName = $itemId->get_title();
if ( strpos( $itemName, '-$$$' ) !== false ) {
$cart_item['data']->set_weight(1);
}
}
}
add_action( 'woocommerce_before_calculate_totals', 'cart_weight_change', 25, 1 );
使用这种方法可以改变购物车的重量,但是仍然使用“-$$$”产品的原始重量来拉动运费。我尝试将操作的优先级更改为较低/较高的数字(即从25减少到5或100),希望这只是时间问题,但不幸的是,该操作也不起作用。