过滤器 "woocommerce_cart_contents_weight" 不适用于装运重量
Filter "woocommerce_cart_contents_weight" not applied for shipping weight
我正在尝试将包裹重量计入购物车的总重量,以便我计算正确的运费。
我尝试在 'woocommerce_cart_contents_weight' 上添加过滤器,就像解释的那样
所以我添加了以下代码片段
function add_package_weight_to_cart_contents_weight( $weight ) {
$weight = $weight * 1.3; // add 30%
return $weight;
}
add_filter('woocommerce_cart_contents_weight', 'add_package_weight_to_cart_contents_weight');
我还添加了一个代码段来在购物车页面上打印购物车重量,我可以看到没有应用重量过滤器:无论代码段是否处于活动状态,购物车的总重量都不会改变.
我也试过把刚好900g的东西放进购物车,加上箱子的重量,超过1kg改价,但是运费还是1kg以下的。
知道为什么没有应用它以及如何解决它吗?
您的代码有效且仅影响 WC_Cart
method get_cart_contents_weight()
使用。
现在对于运输方式,由于购物车商品可以分为包裹,重量是为每个运输包裹计算的,不使用 WC_Cart
method get_cart_contents_weight()
。相反,它会计算每个包裹的购物车商品。
一种可能的方法应该是使用过滤器钩子 woocommerce_package_rates
根据包裹重量计算来改变成本。但这将变得更加复杂,因为您似乎正在使用第 3 方插件。
我正在尝试将包裹重量计入购物车的总重量,以便我计算正确的运费。
我尝试在 'woocommerce_cart_contents_weight' 上添加过滤器,就像解释的那样
所以我添加了以下代码片段
function add_package_weight_to_cart_contents_weight( $weight ) {
$weight = $weight * 1.3; // add 30%
return $weight;
}
add_filter('woocommerce_cart_contents_weight', 'add_package_weight_to_cart_contents_weight');
我还添加了一个代码段来在购物车页面上打印购物车重量,我可以看到没有应用重量过滤器:无论代码段是否处于活动状态,购物车的总重量都不会改变.
我也试过把刚好900g的东西放进购物车,加上箱子的重量,超过1kg改价,但是运费还是1kg以下的。
知道为什么没有应用它以及如何解决它吗?
您的代码有效且仅影响 WC_Cart
method get_cart_contents_weight()
使用。
现在对于运输方式,由于购物车商品可以分为包裹,重量是为每个运输包裹计算的,不使用 WC_Cart
method get_cart_contents_weight()
。相反,它会计算每个包裹的购物车商品。
一种可能的方法应该是使用过滤器钩子 woocommerce_package_rates
根据包裹重量计算来改变成本。但这将变得更加复杂,因为您似乎正在使用第 3 方插件。