在 Woocommerce 中显示基于送货国家的送货日期范围
Display a delivery day range based on shipping country in Woocommerce
在 Woocommerce 中,我正在尝试在购物车和结帐页面上添加预计交货日期范围。
我设置了 2 个运输区域:德国和其他欧洲国家 (德国以外) 称为 "DHL Europe"。我需要为德国发货国家/地区显示与其他欧洲发货国家/地区不同的交货日期范围:
- 德国送货国家/地区将显示"Lieferzeit 3-5 Werktage"(当没有运费时)。
- 其他欧洲发货国家将显示"Lieferzeit 5-7 Werktage"
我的代码尝试:
function sv_shipping_method_estimate_label( $label, $method ) {
$label .= '<br /><small class="subtotal-tax">';
switch ( $method->method_id ) {
case 'flat_rate':
$label .= 'Lieferzeit 3-5 Werktage';
break;
case 'free_shipping':
$label .= 'Lieferzeit 3-5 Werktage';
break;
case 'international_delivery':
$label .= 'Lieferzeit 5-7 Werktage';
}
$label .= '</small>';
return $label;
}
add_filter( 'woocommerce_cart_shipping_method_full_label', 'sv_shipping_method_estimate_label', 10, 2 );
它适用于 free_shipping
和 flat_rate
送货方式,但不适用于欧洲送货 (德国境外)。
我做错了什么?
如何显示欧洲国家/地区的正确日期范围 (德国以外)?
您实际上不需要定位您的送货方式,而是客户送货国家/地区:
add_filter( 'woocommerce_cart_shipping_method_full_label', 'cart_shipping_method_full_label_filter', 10, 2 );
function cart_shipping_method_full_label_filter( $label, $method ) {
// The targeted country code
$targeted_country_code = 'DE';
if( WC()->customer->get_shipping_country() !== $targeted_country_code ){
$days_range = '5-7'; // International
} else {
$days_range = '3-5'; // Germany
}
return $label . '<br /><small class="subtotal-tax">' . sprintf( __("Lieferzeit %s Werktage"), $days_range ) . '</small>';
}
代码继续在您的活动子主题(或活动主题)的 function.php 文件中。已测试并有效。
在 Woocommerce 中,我正在尝试在购物车和结帐页面上添加预计交货日期范围。
我设置了 2 个运输区域:德国和其他欧洲国家 (德国以外) 称为 "DHL Europe"。我需要为德国发货国家/地区显示与其他欧洲发货国家/地区不同的交货日期范围:
- 德国送货国家/地区将显示"Lieferzeit 3-5 Werktage"(当没有运费时)。
- 其他欧洲发货国家将显示"Lieferzeit 5-7 Werktage"
我的代码尝试:
function sv_shipping_method_estimate_label( $label, $method ) {
$label .= '<br /><small class="subtotal-tax">';
switch ( $method->method_id ) {
case 'flat_rate':
$label .= 'Lieferzeit 3-5 Werktage';
break;
case 'free_shipping':
$label .= 'Lieferzeit 3-5 Werktage';
break;
case 'international_delivery':
$label .= 'Lieferzeit 5-7 Werktage';
}
$label .= '</small>';
return $label;
}
add_filter( 'woocommerce_cart_shipping_method_full_label', 'sv_shipping_method_estimate_label', 10, 2 );
它适用于 free_shipping
和 flat_rate
送货方式,但不适用于欧洲送货 (德国境外)。
我做错了什么?
如何显示欧洲国家/地区的正确日期范围 (德国以外)?
您实际上不需要定位您的送货方式,而是客户送货国家/地区:
add_filter( 'woocommerce_cart_shipping_method_full_label', 'cart_shipping_method_full_label_filter', 10, 2 );
function cart_shipping_method_full_label_filter( $label, $method ) {
// The targeted country code
$targeted_country_code = 'DE';
if( WC()->customer->get_shipping_country() !== $targeted_country_code ){
$days_range = '5-7'; // International
} else {
$days_range = '3-5'; // Germany
}
return $label . '<br /><small class="subtotal-tax">' . sprintf( __("Lieferzeit %s Werktage"), $days_range ) . '</small>';
}
代码继续在您的活动子主题(或活动主题)的 function.php 文件中。已测试并有效。