gpt4 book ai didi

php - 当 WooCommerce 中另一个特定的运输方式处于事件状态时隐藏特定的运输方式

转载 作者:行者123 更新时间:2023-12-04 15:14:28 25 4
gpt4 key购买 nike

有很多方法可以在免费送货事件时隐藏送货方式。
我的问题是我总是为网站上的每个订单提供免费送货服务。
同时我还提供需要额外付款的“更快”交付。
这就是为什么互联网上的代码在这种情况下对我没有帮助。
那么当另一种特定的运输方式出现时,如何隐藏特定的运输方式。
我将举一个例子。

对于 350 美元以下的订单,网站上有 2 种送货方式:
一种。普通邮件免费送货
b.通过特快专递交付,费用为 35 美元

订购超过 350 件时,有 3 个选项。
一种。普通邮件免费送货
b.通过特快专递交付,费用为 35 美元
C。 express 免费送货。

在此示例中,我想在出现货件 c 时隐藏货件 b。
我搜索了很多,但没有找到任何方法。感谢您的帮助。

最佳答案

已更新 - 添加了缺失的

首先,您需要为“Delivery by express mail ($35)”和“Free shipping by express mail”获取正确的运费 ID

这可以在检查运输方式单选按钮上生成的 html 代码(使用浏览器检查器)时执行。所以你会看到类似的东西:

enter image description here

其中送货方式费率 ID 为 free_shipping:10 (单选按钮“值”)

下面的代码将在“通过特快专递免费送货”可用时隐藏“通过特快专递付费送货(费用为 35 美元)”$(您必须设置两个运费 ID)*:

add_filter( 'woocommerce_package_rates', 'customizing_shipping_methods', 10, 2 );
function customizing_shipping_methods( $rates, $package ) {
$flat_express_delivery_rate_id = 'flat_rate:12'; // Paid delivery by express mail (cost $35)
$free_express_delivery_rate_id = 'free_shipping:10'; // Free delivery by express mail

// When Free delivery by express mail is available
if( isset($rates[$free_express_delivery_rate_id]) ) {
// Remove Paid delivery by express mail (cost $35)
unset($rates[$flat_express_delivery_rate_id]);
}
return $rates;
}

代码进入事件子主题(或事件主题)的 functions.php 文件。经过测试并有效。

Refresh shipping methods

Once you have saved this code, empty cart to refresh shipping methods, or if needed, go to shipping areas settings, then disable / save and re-enable / save any shipping methods from a shipping zone.

关于php - 当 WooCommerce 中另一个特定的运输方式处于事件状态时隐藏特定的运输方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64579420/

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