gpt4 book ai didi

php - 当 WooCommerce 3 中提供免费送货服务时,隐藏具体的统一费率

转载 作者:行者123 更新时间:2023-12-04 00:50:58 28 4
gpt4 key购买 nike

在 WooCommerce 3 中,我有以下送货选项(设置):

  1. 免运费:free_shipping:1 - 最低订单金额设置为 50 美元
  2. 正常运费 flat_rate:3 - 金额 5 美元
  3. 特快专递 flat_rate:5 - 金额 10 美元

我希望 express 选项始终可用(如图所示)。

但是当免运费可用时(意味着客户购物车中的金额超过 50 美元),我只想隐藏正常运费

因此,当免费送货可用(且隐藏)时,可用运费将为正常送货> 和 express 。

这可能吗?我如何在 WooCommerce 3 上获取此内容?

最佳答案

基于the official WooCommerce snippet code ,进行一些细微的更改,当提供免费送货时,您将只能隐藏您的第一个统一费率:

add_filter( 'woocommerce_package_rates', 'conditionally_hide_shipping_methods', 100, 2 );
function conditionally_hide_shipping_methods( $rates, $package ) {
// HERE yours 2nd flat rate "Express Shipping" (that you never hide) in the array:
$flat_rates_express = array( 'flat_rate:5', 'flat_rate:12', 'flat_rate:14' );

$free = $flat2 = array();
foreach ( $rates as $rate_key => $rate ) {
// Updated Here To
if ( in_array( $rate->id, $flat_rates_express ) )
$flat2[ $rate_key ] = $rate;
if ( 'free_shipping' === $rate->method_id )
$free[ $rate_key ] = $rate;
}
return ! empty( $free ) ? array_merge( $free, $flat2 ) : $rates;
}

代码位于事件子主题(或主题)的 function.php 文件中或任何插件文件中。

在 WooCommerce 3 上测试并有效。

Refresh the shipping caches:
1) First empty your cart.
2) This code is already saved on your function.php file.
3) Go in a shipping zone settings and disable one "flat rate" (for example) and "save". Then re-enable that "flat rate" and "save". You are done and you can test it.

关于php - 当 WooCommerce 3 中提供免费送货服务时,隐藏具体的统一费率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391064/

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