更改总的woocommerce订单重量

时间:2016-11-11 11:14:06

标签: php wordpress woocommerce

我需要在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(),但我不知道如何设置新值。

2 个答案:

答案 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>';
}