如何将属性列添加到 WooCommerce 管理订单列表

问题描述

如何将属性添加到 WooCommerce 管理订单列表

我从 wordpress 论坛上的某个人那里获得了代码,但不太正确。

它在我的订单管理员中创建了一个名为 Attributes 的列,它引入了属性名称,但没有引入选项。即它看起来像

"colour"

我愿意

"Colour = Red,blue

或类似的东西。

请帮帮我

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 );

function ec_order_items_column_content( $column,$postid ) {
    if ( $column == 'new_column' ) {

        // output variable
        $output = '';

        // Get product object
        $product = $item->get_product();
        $order_items = $the_order->get_items();
        foreach($order_items as $order_item)
        $order_item = wc_get_product( $postid );

        // Get Product Variations - WC_Product_Attribute Object
        $product_attributes = $product->get_attributes();

        // Not empty,contains values
        if ( !empty( $product_attributes ) ) {

            foreach ( $product_attributes as $product_attribute ) {
                // Get name
                $attribute_name = str_replace( 'pa_','',$product_attribute->get_name() );

                // Concatenate
                $output = $attribute_name . ' = ';

                // Get options
                $attribute_options = $product_attribute->get_options();

                // Not empty,contains values
                if ( !empty( $attribute_options ) ) {

                    foreach ($attribute_options as $key => $attribute_option ) {
                        // WP_Term Object
                        $term = get_term($attribute_option); // <-- your term ID

                        // Not empty,contains values
                        if ( !empty( $term ) ) {
                            $term_name = $term->name;

                            // Not empty
                            if ( $term_name != '' ) {

                                // Last loop
                                end($attribute_options);
                                if ( $key === key($attribute_options) ) {
                                    // Concatenate
                                    $output .= $term_name;                                  
                                } else {
                                    // Concatenate
                                    $output .= $term_name . ',';
                                }
                            }
                        }
                    }
                }

                echo $output . '<br>';
            }
        }
    }
}
add_action('manage_shop_order_posts_custom_column','ec_order_items_column_cnt',99);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...