gpt4 book ai didi

php - 根据 WooCommerce 中的成本更改运输方式标签名称

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

在提出这个问题之前,我知道可能还有其他方法可以实现该目标,但我正在尝试了解 Woocommerce 如何更好地工作,所以情况是我有一个插件可以根据需要更改运费在购物车中的产品上,但我想根据成本更改运费的名称。

根据我在 HTML 中发现的内容,运输方式的当前结构如下所示:

<td data-title="Shipping">
<ul id="shipping_method" class="shipping__list woocommerce-shipping-methods">
<li class="shipping__list_item">
<input type="hidden" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate24" value="flat_rate:24" class="shipping_method" /><label class="shipping__list_label" for="shipping_method_0_flat_rate24">Flat Rate Shipping Fee: <span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>10.00</bdi></span></label>
</li>
</ul>

我正在尝试为我的 Wordpress 主题的 functions.php 文件创建一个函数,我在谷歌上查找了一些代码并发现了一个涉及“$available_shipping_methods”的类似函数,但我不太确定如何使用它变量,所以我目前拥有的是:

add_filter('woocommerce_package_rates', 'wc_shipping_rate_rename', 100, 2)

function wc_shipping_rate_rename($rates, $package){
//Checking if the shipping rate exists
if ( isset( $rates['flat_rate:24'] ) ) {
//Getting the rate
$ship_cost = $rates['flat_rate:24']->cost;
if ( $ship_cost == 10) {
$rates['flat_rate:24'] -> 'Subsidized shipping fee:';
}
if ( $ship_cost == 100) {
$rates['flat_rate:24'] -> 'Flat rate shipping fee:';
}
}
return $rates;
}

目标是根据运费的成本更改 HTML 中显示“统一运费:”的部分。非常感谢任何帮助。

最佳答案

对于特定的运费 Id,根据其成本用途更改运费显示标签:

add_filter('woocommerce_package_rates', 'custom_shipping_rate_label_based_on_cost', 100, 2)
function custom_shipping_rate_label_based_on_cost( $rates, $package ){
// Here your targeted shipping rate Id
$targeted_rate_id = 'flat_rate:24';

// Loop through available shipping rates
foreach ( $rates as $rate_key => $rate ) {
// Targetting specific rate Id
if( $targeted_rate_id === $rate_key ) {
$rate_cost = $rate->cost;

if ( $rate_cost < 100 ) {
$rate_label = __('Subsidized shipping fee');
}
elseif ( $rate_cost >= 100 ) {
$rate_label = __('Flat rate shipping fee');
}

if ( isset($rate_label) ) {
$rates[$rate_key]->label = $rate_label;
}
}
}
return $rates;
}

代码进入事件子主题(或事件主题)的 functions.php 文件。它应该有效。

Clearing shipping caches:

  • You will need to empty your cart, to clear cached shipping data
  • Or In shipping settings, you can disable / save any shipping method, then enable back / save.

关于php - 根据 WooCommerce 中的成本更改运输方式标签名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64286828/

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