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

3z6pesqy  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(169)

在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);

代码显然导致所有相同的估计为我所有的航运方式。
谢谢!
我使用这个:
情况"固定费率":$标签。="寿命:2 - 3塔格平台";break; case "免费送货":$标签。="寿命:2 - 3无标记';中断;案例"国际交付":$标签。="寿命:4 - 5塔格国际机场;中断;默认:$标签。="寿命:"2 - 3塔格违约";
国际交货未显示"交货期:4 - 5 Tage Inter'。我想我需要说的不是'international_delivery',而是别的什么。我试过'flat_rate7'也不行。
我设置了2个运输区域,1个用于德国,另一个称为欧元区,包含其余欧洲国家

zour9fqk

zour9fqk1#

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

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文件或任何插件文件中。*

测试和工作

相关问题