为了账号安全,请及时绑定邮箱和手机立即绑定

在 WooCommerce 管理员订单列表中显示每个订单的变体名称

在 WooCommerce 管理员订单列表中显示每个订单的变体名称

PHP
catspeake 2023-03-04 15:01:08
我很难在每个订单的管理订单列表中显示变体名称。我试过这段代码,但它给了我一个错误:// Get an instance of the WC_Order object from an Order ID$order = wc_get_order( $order_id ); // Loop though order "line items"foreach( $order->get_items() as $item_id => $item_product ){    $product_id = $item_product->get_product_id(); //Get the product ID    $quantity = $item_product->get_quantity(); //Get the product QTY    $product_name = $item_product->get_name(); //Get the product NAME    // Get an instance of the WC_Product object (can be a product variation  too)    $product = $item_product->get_product();    // Get the product description (works for product variation)    $description = $product->get_description();    // Only for product variation    if($product->is_type('variation')){        // Get the variation attributes        $variation_attributes = $product->get_variation_attributes();        // Loop through each selected attributes        foreach($variation_attributes as $attribute_taxonomy => $term_slug){            $taxonomy = str_replace('attribute_', '', $attribute_taxonomy );            // The name of the attribute            $attribute_name = get_taxonomy( $taxonomy )->labels->singular_name;            // The term name (or value) for this attribute            $attribute_value = get_term_by( 'slug', $term_slug, $taxonomy )->name;        }    }}
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

为了向 中添加变体admin order list,我创建了一个新列。


以下代码不包含任何错误,并且可以根据需要进行进一步调整


// Add a Header

function custom_shop_order_column( $columns ) {

    // Add new column

    $columns['variation_name'] = 'Variation name';


    return $columns;

}

add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 10, 1 );


// Populate the Column

function custom_shop_order_list_column_content( $column, $post_id ) {   

    // Compare

    if ( $column == 'variation_name' ) {


        // Get an instance of the WC_Order object from an Order ID

        $order = wc_get_order( $post_id );


        // Loop though order "line items"

        foreach( $order->get_items() as $item ) {

            // Get an instance of the WC_Product object (can be a product variation  too)

            $product = $item->get_product();


            // Only for product variation

            if( $product->is_type( 'variation' ) ) {


                $product_id = $item->get_product_id(); //Get the product ID

                $quantity = $item->get_quantity(); //Get the product QTY

                $product_name = $product->get_name(); //Get the product NAME


                // Get the product description (works for product variation)

                $description = $product->get_description();


                // Get the variation attributes

                $variation_attributes = $product->get_variation_attributes();


                // Loop through all product attributes in the variation

                foreach ( $variation_attributes as $variation_attribute => $term_slug ) {

                    echo $term_slug . '<br>';   


                    // Taxonomy

                    $taxonomy = str_replace('attribute_', '', $variation_attribute);


                    // The WP_Term object

                    $term = get_term_by( 'slug', $term_slug, $taxonomy );

                }

            }

        }

    }

}

add_action( 'manage_shop_order_posts_custom_column' , 'custom_shop_order_list_column_content', 10, 2 );



查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信