我正在使用Woocommerce和Extra Product Options插件创建一个非常特殊类型的电子商店,我正面临着产品重量的问题。
我想根据所选属性修改每个产品购物车的重量,但没有运气。我用它来改变体重而没有任何成功。
add_action( 'woocommerce_before_calculate_totals', 'add_custom_weight', 10, 1);
function add_custom_weight( WC_Cart $cart ) {
if ( sizeof( $cart->cart_contents ) > 0 ) {
foreach ( $cart->cart_contents as $cart_item_key => $values ) {
$_product = $values['data'];
//very simplified example - every item in cart will be 100 kg
$values['data']->weight = '100';
}
}
var_dump($cart->cart_contents_weight);
}
var_dump返回购物车的重量,不变(如果在我更改之前它是0.5,它将保持0.5),当然运费(基于重量)保持不变。有什么想法吗?
答案 0 :(得分:2)
已更新 (可能是2019年)
自WooCommerce 3+以来,您需要在 Enter a number:
12
numarr[0]: 12
Enter a number:
13
numarr[1]: 13
Enter a number:
14
numarr[2]: 14
Enter a number:
-999
numarr[3]: -999
numarr[0]: 0
numarr[1]: 0
numarr[2]: 0
0
对象上使用 WC_Product
方法。以下是实现它的功能方法:
WC_Product
代码放在活动子主题(或活动主题)的functions.php文件中。经过测试和工作。