Woocommerce根据购物车数量和商品数量减少运费成本
问题描述:
我正在寻找一种方法来根据购物车总价百分比,统一费率和每种产品的数量进行运费定制降价...Woocommerce根据购物车数量和商品数量减少运费成本
对于6产品:统一运费20€
- 总车是120€|运费=统一费用 - 总购物车10%| 20 - 12 = 8€
- 总购物车是180€|运费=统一费用 - 总购物车的10%| 20 - 18 = 2€
- 总购物车是220€|运费=统一费用 - 总购物车10%| 20 - 22 = 0€
对于12产品:平坦航运率30€
- 总车为120€|运费=统一费用 - 总购物车10%| 30 - 12 = 18€
- 总购物车是180€|运费=统一费用 - 总购物车的10%| 30 - 18 = 12€
- 总购物车是220€|运费=统一费用 - 总购物车的10%| 30 - 22 = 8€
这怎么办?
答
这可以无需插件来完成...
1)首先你需要在WooCommerce送货设置每个出货区设置的1
一定数量的“扁平率”的方法:
此金额将在我们的功能中更改为20€
从1到11项和30€
12项和更多项目。这笔金额将会减少10%的购物车总金额。
2)然后使用woocommerce_package_rates
过滤钩子钩住的自定义功能,您将能够使基于车项目数和上车总上运输成本的折扣。
这里是代码:
add_filter('woocommerce_package_rates', 'custom_package_rates', 10, 2);
function custom_package_rates($rates, $packages) {
if (is_admin() && ! defined('DOING_AJAX')) return;
// Get some cart data and set variable values
$cart_count = WC()->cart->get_cart_contents_count();
$cart_total = WC()->cart->cart_contents_total;
$cart_10_percent = $cart_total * 0.1;
$flat_rate_value = 20; // Default "Flat rate" value
foreach($rates as $rate_key => $rate_values) {
$method_id = $rate_values->method_id;
$rate_id = $rate_values->id;
if($method_id == 'flat_rate'){
if($cart_count < 6)
$cart_10_percent = 0; // No percent discount
elseif($cart_count >= 12)
$flat_rate_value = 30; // "Flat rate" value for 12 or more items
$rate_cost = $flat_rate_value > $cart_10_percent ? $flat_rate_value - $cart_10_percent : 0;
// Set the new calculated rate cost
$rates[$rate_id]->cost = number_format($rates[$rate_id]->cost * $rate_cost, 2);
// Taxes rate cost (if enabled)
$taxes = array();
foreach ($rates[$rate_id]->taxes as $key => $tax){
if($tax > 0){ // set the new tax cost
// set the discounted tax cost
$taxes[$key] = number_format($tax * $rate_cost, 2);
}
}
$rates[$rate_id]->taxes = $taxes;
}
}
return $rates;
}
代码放在您的活动子主题(或主题)的function.php文件或也以任何插件文件。
在WooCommerce 3上测试并正常工作。
刷新航运缓存(有时需要):
1)首先清空购物车。
2)此代码已保存在您的function.php文件中。
3)进入运输区域设置并禁用一个“统一费率”(例如)和“保存”。然后重新启用“统一费率”和“保存”。 你完成了,你可以测试它。
+0
Merci Loic,c'est vraiment parfait ainsi! – Alain
这个插件在提供运输的折扣方面非常灵活。 https://codecanyon.net/item/woocommerce-dynamic-pricing-discounts/7119279 –