jensgebken
Goto Top

Woocommerce: weitere Spalte "Kunde" im Backend einfügen

Hallo Gemeinschaft,

möchte in woocommerce unter Bestellungen (dort ist die Übersicht aller bestellungen) eine weitere Spalte Kunden hinzufügen - habt ihr da eine idee

Content-Key: 23298135017

Url: https://administrator.de/contentid/23298135017

Printed on: February 23, 2024 at 07:02 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Nov 04, 2023 at 12:44:11 (UTC)
Goto Top
Moin,

RTFM hilft oft. face-smile

lks
Member: jensgebken
jensgebken Nov 04, 2023 at 12:47:30 (UTC)
Goto Top
ich habe eine code gefunden weiss nur nicht, wie ich dort das Feld Kunden reinbkomme

`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['my-column1'] = __( 'Title1','theme_domain');  
            $reordered_columns['my-column2'] = __( 'Title2','theme_domain');  
        }
    }
    return $reordered_columns;
}

// Adding custom fields meta data for each new column (example)
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 'my-column1' :  
            // Get custom post meta data
            $my_var_one = get_post_meta( $post_id, '_the_meta_key1', true );  
            if(!empty($my_var_one))
                echo $my_var_one;

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

            break;

        case 'my-column2' :  
            // Get custom post meta data
            $my_var_two = get_post_meta( $post_id, '_the_meta_key2', true );  
            if(!empty($my_var_two))
                echo $my_var_two;

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

            break;
    }
}`
Member: jensgebken
jensgebken Nov 04, 2023 at 14:00:50 (UTC)
Goto Top
Hallo Gemeinschaft,

nun habe ich es zumindest hinbekommen, dass mir die user_id ausgegeben wird

add_filter( 'manage_edit-shop_order_columns', 'wtwh_add_new_order_admin_list_column' );  
 
function wtwh_add_new_order_admin_list_column( $columns ) {
    $columns['user_id'] = 'Kunde';  
    return $columns;
}
 
add_action( 'manage_shop_order_posts_custom_column', 'wtwh_add_new_order_admin_list_column_content' );  
 
function wtwh_add_new_order_admin_list_column_content( $column ) {
   
    global $post;
 
    if ( 'user_id' === $column ) {  
 
        $order = wc_get_order( $post->ID );
        echo $order->get_user_id();
      
    }
}

nun möchte ich aber gerne den namen ausgegeben haben . dieser befindet sichaber in der tabelle wp_users - die so aufgebaut ist

ID....user_login ....

mir würde helfen, wenn ich dort den user_login stehen hätte - könnt ihr da helfen
Member: Michi91
Michi91 Nov 06, 2023 at 08:36:17 (UTC)
Goto Top
Ersetze
if ( 'user_id' === $column ) {    
     $order = wc_get_order( $post->ID );
     echo $order->get_user_id();
}

mit
if ( 'user_id' === $column ) {    
     $order = wc_get_order( $post->ID );
     $user_id =  $order->get_user_id();
     $user_data = get_userdata($user_id);

    if( $user_data ){
         echo $user_data ->user_login;
    }else{
         echo "Kunde ohne Kundenkonto";  
    }
}
Referenz: https://developer.wordpress.org/reference/functions/get_userdata/

Grüße