首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将不同的自定义标签添加到Woocommerce发货方式

将不同的自定义标签添加到Woocommerce发货方式
EN

Stack Overflow用户
提问于 2017-10-06 03:38:07
回答 1查看 2.1K关注 0票数 1

在WooCommerce中,我尝试将“运输预估”添加到我的运输方法中(它们都是统一费率类型),因此它看起来如下所示:

只有所有的估计日期是不同的…

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

但是只有当我把0作为案例放在php switch方法中时,它才能起作用。2,3,4,5,7不工作。

下面是我的代码:

代码语言:javascript
复制
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);

显然,代码对我的所有发货方法都产生了相同的估计。

谢谢!

我正在使用这个:

case 'flat_rate':$label .= 'Lieferzeit: 2-3 Tage flat';break;case‘$label _shipping’:$label .= 'Lieferzeit: 2-3 Tage free';break;case 'international_delivery':$label .= 'Lieferzeit: 4-5 Tage Inter';break;默认值:$label .= 'Lieferzeit: 2-3 Tage default';

international_delivery没有显示'Lieferzeit: 4-5 Tage Inter‘。我想我不需要把它称为'international_delivery‘,而应该是其他的东西。我试过'flat_rate7‘也不起作用。

我已经设置了两个发货区,一个是德国的,另一个是欧洲的,包含其他欧洲国家

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-06 04:46:27

下面是你所期望的正确方式(你只需要改变文本就可以得到正确的标签)

代码语言:javascript
复制
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文件中,也可以放在任何插件文件中。

测试和工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46593557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档