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

Php 结帐后更改WooCommerce订单上的特定装运方式标题,php,wordpress,woocommerce,orders,shipping-method,Php,Wordpress,Woocommerce,Orders,Shipping Method,我的发货信息中有一些自定义字段未在woocommerce->orders->order#下的订单发货信息中“正确”显示。购物车和结帐页面通过更改标签的php代码是不同的。cart image1是shipping methods image2中定义的原始\core标签,它将被发送到订单信息页面。我希望显示结账信息,如图3所示。图4是订单信息下的当前外观。下面是我用来更改结帐和电子邮件上的发货信息的代码 // Adjusting order and emails "shipping via

我的发货信息中有一些自定义字段未在woocommerce->orders->order#下的订单发货信息中“正确”显示。购物车和结帐页面通过更改标签的php代码是不同的。cart image1是shipping methods image2中定义的原始\core标签,它将被发送到订单信息页面。我希望显示结账信息,如图3所示。图4是订单信息下的当前外观。下面是我用来更改结帐和电子邮件上的发货信息的代码

// 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;
}
//调整订单和电子邮件“shipping via”以显示自定义承运人名称和编号
添加过滤器(“woocommerce\u order\u shipping\u to\u display\u shipped\u via”、“wdo\u filter\u order\u shipping\u to\u display\u shipped\u via”,10,2);
功能wdo_过滤器_订单_发货_至_显示_发货_通过($shipped_通过,$order){
$carrier\u name=$order->get\u meta('carrier\u name');//获取承运人名称
//针对“定制承运人”装运方式定义了“承运人名称”的订单
如果($carrier\u name){
$carrier\u number=$order->get\u meta('carrier\u number');//获取承运人编号
$shipped_via=''.sprintf('via自定义承运商:%s(%s)'woocommerce'),$Carrier_name,$Carrier_number)。'';
}
返回$shipped_via;
}
购物车页面原始标签:

在商业/设置/配送下定义:

结帐发货信息以及我想在订单下显示的内容:

电子商务管理>订单>编辑订单下的配送信息:


当客户下订单时,使用以下选项将“自定义承运人”装运方式的名称和标题与承运人名称和编号一起设置,而不是使用上一个问题答案中的代码:

// 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 ) );
    }
}
代码进入活动子主题(或活动主题)的functions.php文件。它应该有效

因此,定制承运人运输方式将显示在管理订单、客户订单(订单接收和订单查看)和电子邮件通知中的任何位置

注意:确保
'carrier\u name'
'carrier\u number'
是结帐页面上字段的正确输入名称