结帐后更改 WooCommerce 订单上的特定运输方式标题

Change specific shipping method title on WooCommerce orders after checkout

我的发货信息中有一些自定义字段在 woocommerce -> 订单 -> 订单号下的订单发货信息中没有“正确”显示。购物车和结帐页面因更改标签的 php 代码而不同。购物车 image1 是运输方式 image2 中定义的 original\core 标签,它被发送到订单信息页面。我希望显示结帐信息,而不是图像 3 中显示的信息。 Image4 是它目前在订单信息下的样子。下面是我用来更改结帐和电子邮件运输信息的代码。

// Adjusting order and emails "shipping via" to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_filter_order_shipping_to_display_shipped_via', 10, 2 );
function wdo_filter_order_shipping_to_display_shipped_via( $shipped_via, $order ) {
    $carrier_name = $order->get_meta('carrier_name'); // Get carrier name

    // Targeting orders with defined "carrier name" for "Custom Carrier" shipping method
    if ( $carrier_name ) {
        $carrier_number = $order->get_meta('carrier_number'); // get carrier number
        $shipped_via = '&nbsp;<small class="shipped_via">' . sprintf( __( 'via Custom Carrier: %s (%s)', 'woocommerce' ), $carrier_name, $carrier_number ) . '</small>';
    }
    return $shipped_via;
}

购物车页面原标签:

在 WooCommerce/设置/运输下定义:

结帐运输信息和我想在订单下显示的内容:

WooCommerce 管理 > 订单 > 编辑订单下的运输信息:

不要使用您之前问题答案中的代码,而是使用以下代码,在客户下订单时使用承运人名称和编号为“自定义承运人”运输方式设置正确的运输方式名称和标题:

// Custom shipping label For Custom Carier with carrier name and number
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 ) {
    if ( isset($_POST['carrier_name']) && ! empty($_POST['carrier_name']) ) {
        // Get carrier number
        $carrier_number = isset($_POST['carrier_number']) && ! empty($_POST['carrier_number']) ? '(' . sanitize_text_field($_POST['carrier_number']) . ')' : ''; 
        
        $item->set_method_title( sprintf( '%s: %s %s', __("Custom Carrier", "woocommerce"), sanitize_text_field($_POST['carrier_name']), $carrier_number ) );
    }
}

代码进入活动 child 主题(或活动主题)的 functions.php 文件。它应该有效。

因此自定义承运人送货方式将在管理订单、客户订单(收到订单和查看订单)和电子邮件通知中随处显示。

注意:请确保 'carrier_name''carrier_number' 是结帐页面上您的字段的正确输入名称。