首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在购物车、结账和订单上更改Woocommerce运输标签

如何在购物车、结账和订单上更改Woocommerce运输标签
EN

Stack Overflow用户
提问于 2021-02-26 19:48:54
回答 1查看 300关注 0票数 1

我正在尝试根据购物车中是否有任何产品有附加功能来更改发货标签。

为此,我使用How can I modify a Woocommerce shipping label

答案代码,有一些变化,以满足我的需要。

HTML:

代码语言:javascript
运行
复制
Standard Shipping (2-3 days): 3,95€

所以标签标准发货(2-3天)必须显示自定义发货(4-6天)如果满足某个条件(在本例中:字段自定义_文本不为空)。

functions.php:

代码语言:javascript
运行
复制
//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 customization (4-6天)。

但是,标签更改不适用于结帐后(感谢页面和电子邮件,它显示原始的“标准发货(2-3天)”。

我可以在感谢页面和电子邮件上显示此标签更改吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-26 23:25:15

更新2

根据提供的代码和信息,要更改订单上的特定发货标签,请使用发货费率Id来确定所需的发货方式:

代码语言:javascript
运行
复制
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文件中。经过测试,效果良好。

相关信息: Change specific shipping method title on WooCommerce orders after checkout

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66385332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档