向 Woocommerce 运输方式添加不同的自定义标签
Add different custom labels to Woocommerce shipping methods
在 WooCommerce 中,我正在尝试将 "shipping estimates" 添加到我的运输方式(所有这些都是固定费率类型),所以它看起来像这样:
只有所有的估计日期都不一样…
我的问题是我似乎无法针对特定实例。我只能 select 整个方法(统一费率),我检查了我的方法实例 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':
$标签 .= 'Lieferzeit: 2-3 Tage flat';
休息;
案例'free_shipping':
$标签 .= 'Lieferzeit: 2-3 Tage free';
休息;
案例'international_delivery':
$标签 .= 'Lieferzeit: 4-5 Tage Inter';
休息;
默认:
$标签 .= 'Lieferzeit: 2-3 Tage default';
international_delivery 未显示 'Lieferzeit: 4-5 Tage Inter'。我想我需要用别的东西而不是 'international_delivery' 来称呼它。我试过 'flat_rate7' 也没用。
我为德国设置了 2 个运输区域 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 中,我正在尝试将 "shipping estimates" 添加到我的运输方式(所有这些都是固定费率类型),所以它看起来像这样:
只有所有的估计日期都不一样…
我的问题是我似乎无法针对特定实例。我只能 select 整个方法(统一费率),我检查了我的方法实例 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': $标签 .= 'Lieferzeit: 2-3 Tage flat'; 休息; 案例'free_shipping': $标签 .= 'Lieferzeit: 2-3 Tage free'; 休息; 案例'international_delivery': $标签 .= 'Lieferzeit: 4-5 Tage Inter'; 休息; 默认: $标签 .= 'Lieferzeit: 2-3 Tage default';
international_delivery 未显示 'Lieferzeit: 4-5 Tage Inter'。我想我需要用别的东西而不是 'international_delivery' 来称呼它。我试过 'flat_rate7' 也没用。
我为德国设置了 2 个运输区域 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 文件或任何插件文件。
已测试并有效