如何更改购物车、结账和订单中的 Woocommerce 运输标签
How to change Woocommerce shipping labels in cart, checkout and also on orders
我正在尝试根据购物车中的任何产品是否有插件来更改运输标签。
为此,我使用 How can I modify a Woocommerce shipping label 答案代码,并进行了一些更改以满足我的需要。
HTML:
<input type="hidden" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate5" value="flat_rate:5" class="shipping_method">
<label class="shipping__list_label" for="shipping_method_0_flat_rate5">Standard Shipping (2-3 days): <span class="woocommerce-Price-amount amount"><bdi>3,95<span class="woocommerce-Price-currencySymbol">€</span></bdi></span></label>
因此标签标准送货(2-3 天) 必须显示定制送货(4-6 天) 如果某个满足条件(在这种情况下:字段 custom_text 不为空)。
functions.php:
//Change Standard Shipping Label if product is customized
add_filter( 'woocommerce_cart_shipping_method_full_label', 'change_shipping_label', 10, 2 );
function change_shipping_label( $full_label, $method ){
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( !empty( $cart_item['custom_text'] ) ) {
$full_label = str_replace( "Standard Shipping (2-3 days)", "Shipping with customization (4-6 days)", $full_label );
}
}
return $full_label;
}
这是成功的。如果满足条件,标签将更改为 Shipping with customized (4-6 days) prior checkout。
但是,标签更改在结帐后不适用(感谢页面和电子邮件,它显示原始的“标准运输(2-3 天)”)。
我可以在致谢页面和电子邮件中显示此标签更改吗?
更新 2
根据提供的代码和信息,更改订单上的特定运输标签,使用运费 ID 来定位所需的运输方式:
add_action( 'woocommerce_checkout_create_order_shipping_item', 'action_wc_checkout_create_order_shipping_item', 10, 4 );
function action_wc_checkout_create_order_shipping_item( $item, $package_key, $package, $order ) {
// Targeting "flat_rate:5" by its instance ID
if( $item->get_instance_id() == 5 ) {
$item->set_method_title( "Shipping with customization (4-6 days)" );
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
相关:
我正在尝试根据购物车中的任何产品是否有插件来更改运输标签。
为此,我使用 How can I modify a Woocommerce shipping label 答案代码,并进行了一些更改以满足我的需要。
HTML:
<input type="hidden" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate5" value="flat_rate:5" class="shipping_method">
<label class="shipping__list_label" for="shipping_method_0_flat_rate5">Standard Shipping (2-3 days): <span class="woocommerce-Price-amount amount"><bdi>3,95<span class="woocommerce-Price-currencySymbol">€</span></bdi></span></label>
因此标签标准送货(2-3 天) 必须显示定制送货(4-6 天) 如果某个满足条件(在这种情况下:字段 custom_text 不为空)。
functions.php:
//Change Standard Shipping Label if product is customized
add_filter( 'woocommerce_cart_shipping_method_full_label', 'change_shipping_label', 10, 2 );
function change_shipping_label( $full_label, $method ){
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( !empty( $cart_item['custom_text'] ) ) {
$full_label = str_replace( "Standard Shipping (2-3 days)", "Shipping with customization (4-6 days)", $full_label );
}
}
return $full_label;
}
这是成功的。如果满足条件,标签将更改为 Shipping with customized (4-6 days) prior checkout。
但是,标签更改在结帐后不适用(感谢页面和电子邮件,它显示原始的“标准运输(2-3 天)”)。
我可以在致谢页面和电子邮件中显示此标签更改吗?
更新 2
根据提供的代码和信息,更改订单上的特定运输标签,使用运费 ID 来定位所需的运输方式:
add_action( 'woocommerce_checkout_create_order_shipping_item', 'action_wc_checkout_create_order_shipping_item', 10, 4 );
function action_wc_checkout_create_order_shipping_item( $item, $package_key, $package, $order ) {
// Targeting "flat_rate:5" by its instance ID
if( $item->get_instance_id() == 5 ) {
$item->set_method_title( "Shipping with customization (4-6 days)" );
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
相关: