gpt4 book ai didi

php - 更改总 woocommerce 订单重量

转载 作者:可可西里 更新时间:2023-11-01 01:15:22 26 4
gpt4 key购买 nike

我需要在 woocommerce 网站上更改订单的总重量。

例如:我的购物车中有 3 种产品:1 - 30g; 2 - 35; 3 - 35克;总计 = 30+35+35 = 100g,但我想将包裹重量添加到总重量(总重量的 30%)。

示例:((30+35+35) * 0.3) + (30+35+35) = 130g

我可以计算,但是如何将总重量从 100g 变为 130g。

为了获得总重量,我使用 get_cart_contents_weight(),但我不知道如何设置新值。

最佳答案

Hook 正确的过滤操作

让我们看一下 get_cart_contents_weight() 函数:

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 );
}

我们可以使用一个过滤器钩子(Hook):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;
}

但不要同时使用这两种解决方案。

关于php - 更改总 woocommerce 订单重量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com