我需要在woocommerce网站上更改订单的总重量。
例如:我在购物车中有3个产品:1 - 30g; 2 - 35; 3 - 35克;总计= 30 + 35 + 35 = 100克,但我想将包重量增加到总重量(占总重量的30%)。
示例:((30 + 35 + 35)* 0.3)+(30 + 35 + 35)= 130g
我可以计算它,但是如何将总重量从100g改为130g。
为了获得总重量,我使用get_cart_contents_weight(),但我不知道如何设置新值。
答案 0 :(得分:3)
勾选正确的过滤器操作
让我们看看函数public function get_cart_contents_weight() {
$weight = 0;
foreach ( $this->get_cart() as $cart_item_key => $values ) {
$weight += $values['data']->get_weight() * $values['quantity'];
}
return apply_filters( 'woocommerce_cart_contents_weight', $weight );
}
:
woocommerce_cart_contents_weight
我们可以使用过滤器钩子:add_filter('woocommerce_cart_contents_weight', 'add_package_weight_to_cart_contents_weight');
function add_package_weight_to_cart_contents_weight( $weight ) {
$weight = $weight * 1.3; // add 30%
return $weight;
}
所以我们可以为这个过滤器添加一个函数:
add_filter('woocommerce_product_get_weight', 'add_package_to_product_get_weight');
function add_package_to_product_get_weight( $weight ) {
return $weight * 1.3;
}
要将包装重量分别添加到每个产品,您可以尝试:
"pythonPath": "/Applications/Kivy3.app/Contents/Frameworks/python/3.5.0/bin/python",
但不要同时使用这两种解决方案。
答案 1 :(得分:0)
它在我的最后工作。将总重量更新为新的重量值。
add_action('woocommerce_cart_collaterals', 'myprefix_cart_extra_info');
function myprefix_cart_extra_info() {
global $woocommerce;
echo '<div class="cart-extra-info">';
echo '<p class="total-weight">' . __('Total Weight:', 'woocommerce');
echo ($woocommerce->cart->cart_contents_weight*0.3)+$woocommerce->cart->cart_contents_weight;
echo '</p>';
echo '</div>';
}