【问题标题】:Woocommerce: Add content in new created columns in order listWoocommerce:在订单列表的新创建列中添加内容
【发布时间】:2020-04-04 17:49:24
【问题描述】:

我在 Woocommerce 订单列表中添加了 6 个新列:
- 地址(地址)
- 电话/GSM(电话)
- Leverdatum(来自Woocommerce Checkout Field Editor 的新字段)
- Voorkeur dag 1(来自Woocommerce Checkout Field Editor 的新字段)
- Voorkeur dag 2(来自Woocommerce Checkout Field Editor 的新字段)
- 通知(订单备注)

Screenshot of order list with added columns

如何在这些新列中添加订单值?
现在我使用了“get_post_meta”,但我现在不知道要填写什么元键...
(请参阅下面代码中的“在此处插入什么?”)

这是我在 functions.php 中的代码:

// ADD NEW COLUMNS    
        add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
        function custom_shop_order_column($columns)
        {
            $reordered_columns = array();

// Inserting columns to a specific location
        foreach( $columns as $key => $column){
            $reordered_columns[$key] = $column;
            if( $key ==  'order_status' ){
                // Inserting after "Status" column
                $reordered_columns['Adres'] = __( 'Adres','theme_domain');
                $reordered_columns['Tel./GSM'] = __( 'Tel./GSM','theme_domain');
                $reordered_columns['Leverdatum'] = __( 'Leverdatum','theme_domain');
                $reordered_columns['Voorkeur dag 1'] = __( 'Voorkeur dag 1','theme_domain');
                $reordered_columns['Voorkeur dag 2'] = __( 'Voorkeur dag 2','theme_domain');
                $reordered_columns['Notitie'] = __( 'Notitie','theme_domain');
            }
        }
        return $reordered_columns;
    }

// Adding custom fields meta data for each new column
    add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 20, 2 );
    function custom_orders_list_column_content( $column, $post_id )
    {
        switch ( $column )
        {
            case 'Adres' :
                // Get custom post meta data
                $adres = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($adres))
                    echo $adres;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value adres</em>)</small>';

                break;

            case 'Tel./GSM' :
                // Get custom post meta data
                $my_var_two = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($my_var_two))
                    echo $my_var_two;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value gsm</em>)</small>';

                break;


             case 'Leverdatum' :
                // Get custom post meta data
                $my_var_three = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($my_var_three))
                    echo $my_var_three;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value leverdatum</em>)</small>';

                break;


             case 'Voorkeur dag 1' :
                // Get custom post meta data
                $my_var_four = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($my_var_four))
                    echo $my_var_four;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value</em>)</small>';

                break;


             case 'Voorkeur dag 2' :
                // Get custom post meta data
                $my_var_five = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($my_var_five))
                    echo $my_var_five;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value</em>)</small>';

                break;


            case 'Notitie' :
                // Get custom post meta data
                $my_var_six = get_post_meta( $post_id, 'WHAT TO INSERT HERE?', true );
                if(!empty($my_var_six))
                    echo $my_var_six;

                // Testing (to be removed) - Empty value case
                else
                    echo '<small>(<em>no value</em>)</small>';

                break;
        }
    }

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    请尝试以下代码以获取订单数据:

    global $post;
    $order = wc_get_order( $post->ID );
    $order_data = $order->get_data();
    
    case 'Adres' :
    if(!empty($order_data))
    echo $order_data['billing']['address_1'];
    
    // Testing (to be removed) - Empty value case
    else
    echo '<small>(<em>no value gsm</em>)</small>';
    break;
    

    【讨论】:

    • 确实有效!完整地址使用“address_2”、“city”和“postcode”。
    猜你喜欢
    • 2018-09-29
    • 2018-09-09
    • 2020-08-15
    • 2016-07-26
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2018-09-15
    • 2019-04-25
    相关资源
    最近更新 更多