web-dev-qa-db-ja.com

Woocommerce:購入した商品の注文管理ページに列を追加

Woocommerce 3.0に更新した後、Woocommerceの注文ページ(注文状況、請求先住所、配送先住所、合計などを含む、顧客が行ったすべての注文を確認できます)には、顧客が購入した商品の欄がありません。トイレの更新の前に、そのコラムはそこにありました。今ではなくなっています。

誰かが私にこのコラムを再び追加するのを手伝ってくれる?

どうもありがとう!

1
Sender

このおかげで私はすでにコラムを作成することができました:

    // ADDING COLUMN TITLES
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column',11);
function custom_shop_order_column($columns)
{
   //add columns
    $columns['my-column1'] = __( 'Column Title','theme_slug');
   return $columns;
}

// adding the data for each orders by column (example)
add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column )
{
    global $post, $woocommerce, $the_order;
    $order_id = $the_order->id;

    switch ( $column )
    {
        case 'my-column1' :
            $myVarOne = wc_get_order_item_meta( $order_id, '_the_meta_key1', true );
            echo $myVarOne;
            break;
    }

しかし、この列にデータを追加する方法がわかりません。顧客が購入した商品を追加する必要があります。出来ますか?

ありがとうございます。

1
Sender

これを使用して、Date列の直後にOrdered Products列を追加します(そこにうまく収まります)。各製品は、適切な編集ページにもリンクされています。

// ----- add column to orders that shows which products were ordered -----
function ec_order_items_column($columns) {
    $new_columns = array();
    foreach($columns as $key=>$column){
        $new_columns[$key] = $columns[$key];
        if($key === 'order_date') {
            $new_columns['ordered_products'] = __('Ordered Products','woo-custom-ec');
        }
    }
    return $new_columns;

    //$columns['order_products'] = "Purchased Items";
    //return $columns;
}
add_filter('manage_edit-shop_order_columns', 'ec_order_items_column', 99 );

// ----- add data to new column that shows which products were ordered -----
function ec_order_items_column_cnt($column) {
    global $the_order; // the global order object
    if($column == 'ordered_products') {
        // get items from the order global object
        $order_items = $the_order->get_items();
        if (!is_wp_error($order_items)) {
            foreach($order_items as $order_item) {
                echo $order_item['quantity'].'&nbsp;&times;&nbsp;<a href="'.admin_url('post.php?post='.$order_item['product_id'].'&action=edit' ).'">'.$order_item['name'].'</a><br />';
            }
        }
    }
}
add_action('manage_shop_order_posts_custom_column', 'ec_order_items_column_cnt', 99);

enter image description here

1
Scotty G

これは以前と同じように復元する無料のプラグインです。

https://wordpress.org/plugins/restore-purchased-items-column/ /

1
anon

購入した商品を列に表示したい場合は、次のコードを使用できます。

add_action( 'manage_shop_order_posts_custom_column' , 'custom_orders_list_column_content', 10, 2 );
function custom_orders_list_column_content( $column )
{
    global $the_order;
    $order_id = $the_order->id;

    switch ( $column )
    {
        case 'my-column1' :
            $order_items = $the_order->get_items();
            foreach( $order_items as $myVarOne ) {
                echo $myVarOne['quantity'] .'&nbsp;&times;&nbsp;'. $myVarOne['name'] .'<br />';
            }
            break;
    }
}

このチュートリアル でスクリーンショット付きの完全なコードを見ることもできます。

0
Misha Rudrastyh