0
votes

I have added 6 new columns in the Woocommerce order list:
- Adres (Address)
- Tel./GSM (phone)
- Leverdatum (new field from Woocommerce Checkout Field Editor)
- Voorkeur dag 1 (new field from Woocommerce Checkout Field Editor)
- Voorkeur dag 2 (new field from Woocommerce Checkout Field Editor)
- Notitie (order note)

Screenshot of order list with added columns

How can I add the value of the order in these new columns?
Now I have used 'get_post_meta', but I don't now what meta key to fill in...
(see 'WHAT TO INSERT HERE?' in the code below)

This is the code I have in 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;
        }
    }
1

1 Answers

0
votes

Please Try Below Code to get order data:

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;