【问题标题】:Change specific shipping method title on WooCommerce orders after checkout结帐后更改 WooCommerce 订单上的特定运输方式标题
【发布时间】:2021-01-16 19:56:49
【问题描述】:

我的发货信息中有一些自定义字段未在 woocommerce -> 订单 -> 订单# 下的订单发货信息中“正确”显示。通过更改标签的 php 代码,购物车和结帐页面是不同的。购物车 image1 是在运输方法 image2 中定义的原始\核心标签,它被发送到订单信息页面。我希望显示结帐信息,而不是显示在 image3 中。 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 / Settings / Shipping 下定义:

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

WooCommerce 管理员 > 订单 > 编辑订单下的配送信息:

【问题讨论】:

    标签: php wordpress woocommerce orders shipping-method


    【解决方案1】:

    当客户下订单时,不要使用您之前的问题答案中的代码,而是使用以下代码为“Custom Carrier”运输方式设置正确的运输方式名称和标题以及运输商名称和编号:

    // 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_name''carrier_number' 是结帐页面上字段的正确输入名称。

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 2021-05-27
      • 2021-02-01
      • 2021-05-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2018-04-27
      • 2020-11-23
      相关资源
      最近更新 更多