在WooCommerce管理产品列表上显示“税收状态”

时间:2020-07-28 12:15:54

标签: php wordpress woocommerce product admin

我该如何在管理页面的产品列表上显示产品的“税收状态”(即应纳税,仅交货,无)?

我一直试图在产品列表上将产品显示为“有货/无货”和“应税/不征税”,以便我可以轻松确定产品的状态并在必要时进行更改。

我想出了如何在产品列表上显示“库存状态”,但是,当我尝试对“税收状态”进行同样的处理时,它将不起作用。通过将以下代码添加到functions.php中,可以显示库存状态。如何显示“税收状态”?

add_filter( 'manage_edit-product_columns', 'product_column_arrange' );
function product_column_arrange( $product_columns ) {

    return array(
             ...
             'is_in_stock' => 'Stock',
             ...
    );
}

1 个答案:

答案 0 :(得分:1)

以下内容将在管理产品列表中显示商品税状态的自定义列:

add_filter( 'manage_edit-product_columns', 'tax_status_product_column');
function tax_status_product_column($columns){
    $new_columns = [];
    foreach( $columns as $key => $column ){
        $new_columns[$key] = $columns[$key];
        if( $key == 'is_in_stock' ) {
            $new_columns['tax_status'] = __( 'Tax status','woocommerce');
        }
    }
    return $new_columns;
}

add_action( 'manage_product_posts_custom_column', 'tax_status_product_column_content', 10, 2 );
function tax_status_product_column_content( $column, $post_id ){
    if( $column == 'tax_status' ){
        global $post, $product;

        // Excluding variable and grouped products
        if( is_a( $product, 'WC_Product' ) ) {
            $args =  array(
                'taxable'  => __( 'Taxable', 'woocommerce' ),
                'shipping' => __( 'Shipping only', 'woocommerce' ),
                'none'     => _x( 'None', 'Tax status', 'woocommerce' ),
            );

            echo $args[$product->get_tax_status()];
        }
    }
}

代码进入活动子主题(或活动主题)的function.php文件。经过测试和工作。

相关:Add custom columns to admin products list in WooCommerce 3