向 Woocommerce 运输方式添加不同的自定义标签

Posted

技术标签:

【中文标题】向 Woocommerce 运输方式添加不同的自定义标签【英文标题】:Add different custom labels to Woocommerce shipping methods 【发布时间】:2018-03-17 12:59:09 【问题描述】:

在 WooCommerce 中,我正在尝试将“运费估算”添加到我的运输方式(所有这些都是统一费率类型),所以它看起来像这样:

只有所有的预计日期不同……

我的问题是我似乎无法针对特定实例。我只能选择整个方法(统一费率),我检查了我的方法实例 ID,因为它们是唯一的:

但它仅在我将0 作为 php 切换方法中的案例时才有效。 2,3,4,5,7 不工作。

这是我的代码:

function sv_shipping_method_estimate_label($label, $method) 
    $label. = '<br /><small>';
    switch ($method - > instance_id) 
        case 0:
            $label. = 'Est delivery: 2-400 days';
            break;
    

    $label. = '</small>';
    return $label;

add_filter('woocommerce_cart_shipping_method_full_label', 'sv_shipping_method_estimate_label', 10, 2);

该代码显然会为我的所有运输方式得出所有相同的估算值。


谢谢!

我正在使用这个:

案例“flat_rate”: $label .= 'Lieferzeit: 2-3 Tage flat'; 休息; 案例“免费送货”: $label .= 'Lieferzeit: 2-3 无标签'; 休息; 案例“国际交付”: $label .= 'Lieferzeit: 4-5 Tage Inter'; 休息; 默认: $label .= 'Lieferzeit: 2-3 Tage default';

international_delivery 未显示“Lieferzeit: 4-5 Tage Inter”。我想我需要将其称为“international_delivery”而不是其他东西。我试过 'flat_rate7' 也没有用。

我为德国设置了 2 个运输区 1,另一个称为 Euro,包含其余欧洲国家

【问题讨论】:

【参考方案1】:

这是执行您所期望的正确方法(您只需要更改文本即可获得正确的标签)

add_filter('woocommerce_cart_shipping_method_full_label', 'custom_shipping_method_label', 10, 2);
function custom_shipping_method_label( $label, $method )
    $rate_id = $method->id; // The Method rate ID (Method Id + ':' + Instance ID)

    // Continue only if it is "flat rate"
    if( $method->method_id !== 'flat_rate' ) return $label;

    switch ( $method->instance_id ) 
        case '3':
            $txt = __('Est delivery: 2-5 days'); // <= Additional text
            break;
        case '4':
            $txt =  __('Est delivery: 1 day'); // <= Additional text
            break;
        case '5':
            $txt =  __('Est delivery: 2-3 days'); // <= Additional text
            break;
         // for case '2' and others 'flat rates' (in case of)
        default:
            $txt =  __('Est delivery: 2-400 days'); // <= Additional text
    
    return $label . '<br /><small>' . $txt . '</small>';

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

经过测试并且可以工作

【讨论】:

以上是关于向 Woocommerce 运输方式添加不同的自定义标签的主要内容,如果未能解决你的问题,请参考以下文章

根据不同的运输方式更改 Woocommerce 订单状态

根据 Woocommerce 中的运输方式和付款方式添加费用

将运输方式和时间段添加到 woocommerce 电子邮件 [重复]

基于 Woocommerce 中的运输方式的不同电子邮件标题

WooCommerce 订阅“重复的运输方式无效”

根据运输方式更改 Woocommerce 订单状态