更改通过 WooCommerce 订单和电子邮件中的文本发送特定运送方式

Changing shipped via text in WooCommerce orders and emails for specific shipping method

我正在尝试更改电子邮件和订单信息中的发货方式。我有一个自定义单选按钮,其中包含仅在结帐页面上填写的客户字段。目前 WooCommerce 使用单选按钮的标签而不是字段。

我希望仅在客户电子邮件和 woocommerce -> 订单 -> 订单号下的订单信息中包含这些字段。

我可以将其更改为文本,但不知道如何在新行中包含自定义字段,即 carrier_namecarrier_number - 这些是唯一应该显示在WooCommerce 下的电子邮件和订单信息。

carrier_namecarrier_number 只能从结帐页面获得,不能从购物车页面获得。当未选择 'Custom Carrier' 时,它应该在电子邮件中打印正确的送货方式,我认为它是默认的,但只是想包括要求。

第三张图片显示的是woocommerce > orders > order#下的订单信息,这个应该只显示carrier_name and carrier_number.

我的代码:

//adjusting emails to show custom carrier name and number
add_filter( 'woocommerce_order_shipping_to_display_shipped_via', 'wdo_remove_shipping_label_thnakyou_page_cart', 10, 2 );
function wdo_remove_shipping_label_thnakyou_page_cart($label, $method) {
    $shipping_label = get_post_meta($order->id, 'carrier_name') ;
    $shipping_label = 'Just Test!!!';
    return $shipping_label;
}

1 我要显示的承运人信息,在自定义承运人下

2 我目前可以通过电子邮件发送的内容

3 来自 woocommerce 的订单信息 -> 订单 -> 订单#

4 没有我输入的代码的订单信息,我使用 php 代码更改了结帐页面上不同于购物车页面的标签“自定义承运人(输入详细信息下一步页)”到结帐页面“自定义承运人”:

您的代码中存在一些错误,例如错误的函数参数……
请尝试以下操作:

// 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;
}

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


重要说明(更新):

答案代码取代了这个答案,因为它处理了所有地方的变化 包括管理编辑订单页面 并且它是一个非常 轻量级的解决方案.