将属性列添加到WooCommerce管理产品列表 [英] Adding an attributes column to WooCommerce admin products list

查看:116
本文介绍了将属性列添加到WooCommerce管理产品列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Wordpress论坛上从某人那里获得了代码,但这并不完全正确.

I was given code from someone on the Wordpress forum, but it isn't quite right.

它在我的产品管理员中创建了一个名为Attributes的列,并输入了属性名称,但未输入选项.即看起来像

It has created a column in my Product Admin called Attributes, and it is bringing in the name of the attributes, but not options. i.e. it looks like

  • "coloursizeyearcountry"

我想

  • 颜色=红色,尺寸=大,年份= 2020,国家=英国"

或类似的东西.

到目前为止,我的代码是:

The code I have so far is:

function add_product_column( $columns ) {
    //add column
    $columns['new_column'] = __( 'New column', 'woocommerce' );

    return $columns;
}
add_filter( 'manage_edit-product_columns', 'add_product_column', 10, 1 );

function add_product_column_content( $column, $postid ) {
    if ( $column == 'new_column' ) {
        // Get product object
        $product = wc_get_product( $postid );
        
        // Get Product Variations
        $product_attributes = $product->get_attributes();
        
        foreach ( $product_attributes as $product_attribute ) {
            $attribute_name = $product_attribute->get_name();
            
            echo str_replace( 'pa_', '', $attribute_name );
        }
    }
}
add_action( 'manage_product_posts_custom_column', 'add_product_column_content', 10, 2 );

推荐答案

以下代码将帮助您获得所需的内容.通过代码中添加的注释标签进行解释

The following code will help you get what you want. Explanation via the comment tags added in the code

function add_product_column( $columns ) {
    //add column
    $columns['new_column'] = __( 'New column', 'woocommerce' );

    return $columns;
}
add_filter( 'manage_edit-product_columns', 'add_product_column', 10, 1 );

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

        // output variable
        $output = '';

        // Get product object
        $product = 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_product_posts_custom_column', 'add_product_column_content', 10, 2 );

这篇关于将属性列添加到WooCommerce管理产品列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆