wordpress 如何将运输区域名称添加到WooCommerce管理订单列表中的新列

dgenwo3n  于 2023-01-12  发布在  WordPress
关注(0)|答案(2)|浏览(167)

我想在WooCommerce中的订单概览上显示运输区域名称。
此处显示订单概述

这将显示要显示的装运区名称

我已经读到,我可以做它与我自己的插件,尝试和失败,或使用过滤器在我的函数。
我发现这个过滤器,添加日期到同一订单屏幕.

  • 如何在WooCommerce订单屏幕的日期栏中添加时间戳?

如何调整此选项以显示配送区域?
我的代码到目前为止:

add_action( 'manage_posts_custom_column', 'misha_date_clmn' );
function misha_date_clmn( $column_name ) {
    global $post;
    if( $column_name  == 'order_date' ) {

        echo strtotime( $post->post_date ) . '<br />';

    }

}
tvmytwxo

tvmytwxo1#

所以试试这个

// Add a Header
function filter_manage_edit_shop_order_columns( $columns ) {
    // Add new column
    $columns['shipping_zone'] = 'Shipping zone';

    return $columns;
}
add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );

// Populate the Column
function action_manage_shop_order_posts_custom_column( $column, $post_id ) {
    // Compare
    if ( $column == 'shipping_zone' ) {
        // Get order
        $order = wc_get_order( $post_id );

        // Iterating through order shipping items
        foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ) {
            $shipping_method_instance_id = $shipping_item_obj->get_instance_id(); // The instance ID
        }
        
        // Get zone by instance id
        $shipping_zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $shipping_method_instance_id );
        
        // Get zone name
        $current_zone_name = $shipping_zone->get_zone_name();
        
        if ( ! empty ( $current_zone_name ) ) {
            echo $current_zone_name;    
        }
    }
}
add_action( 'manage_shop_order_posts_custom_column' , 'action_manage_shop_order_posts_custom_column', 10, 2 );
nhhxz33t

nhhxz33t2#

尝试此过滤器和操作以在管理面板中添加自定义列

// Filter to add custom column to custom post types
add_filter('manage_shop_order_posts_columns', "edit_shop_order_columns");

function edit_shop_order_columns($columns) {
    $columns['shipping_zone'] = "Shipping Zone";
    return $columns;
}

// Action to display data in column
add_action('manage_shop_order_posts_custom_column', "edit_shop_order_columns_data", 10, 2);
function edit_shop_order_columns_data($column, $post_id) {
    $shipping_zone = get_post_meta($post_id, "shipping_zone", true); // Use your logic here to value of shipping zone
    switch ($column) {
        case 'shipping_zone' :
            echo !empty($shipping_zone) ? $shipping_zone : "";
            break;
   }
}

相关问题