为Woocommerce送货方式

时间:2017-10-05 19:38:07

标签: php wordpress woocommerce cart shipping

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

只有所有估计日期都不同......

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

screenshot

但是只有当我在php switch方法中将0作为一个案例时它才有效。 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);

该代码显然会对我的所有送货方式产生相同的估算值。

谢谢!

即时使用:

case&#39; flat_rate&#39;:             $ label。=&#39; Lieferzeit:2-3 Tage flat&#39 ;;             打破;         case&#39; free_shipping&#39;:             $ label。=&#39; Lieferzeit:2-3 Tage free&#39 ;;             打破;         案例&#39; international_delivery&#39;:             $ label。=&#39; Lieferzeit:4-5 Tage Inter&#39 ;;             打破;         默认:             $ label。=&#39; Lieferzeit:2-3 Tage默认&#39;;

国际交付没有显示&#39; Lieferzeit:4-5 Tage Inter&#39;。我猜我需要把它称为&#39; international_delivery&#39;别的东西。我尝试过flat_rate7&#39;也没用。

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

1 个答案:

答案 0 :(得分:0)

这是正确的方法来做你期望的(你应该只需要更改文本以获得正确的标签)

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文件中,或者放在任何插件文件中。

经过测试和工作