Woocommerce-显示特色产品订单的数量


Woocommerce - display number of featured product orders

我想在子页面上显示一种摘要,即我的商店目前销售特色产品的金额。每个月我只有一个特色项目(30天后我添加了一个新项目,将以前产品的状态从特色更改为正常)。

我当前的代码如下:

function woo_featured_product_sales_qty( $atts, $content = null ) {
    $args = shortcode_atts( array(
        'status' => 'completed',
        'meta_query' => array(
            array(
                'post_type' => 'product',  
                'meta_key' => '_featured',  
                'meta_value' => 'yes', 
                'order' => 'DESC'
            )
        ),
    ), $atts );
    $status_list = $args['status'];
    $statuses = array_map( 'trim', explode( ',', $status_list ) );
    $order_count = 0;
    foreach ( $statuses as $status ) {
        $status = str_replace( $status, 'wc-' . $status, $status );
        $total_orders = wp_count_posts( 'shop_order' )->$status;
        $order_count += $total_orders;
    }
    ob_start();
    echo $order_count;
    return ob_get_clean();
}
add_shortcode( 'featured_product_sales_qty', 'woo_featured_product_sales_qty' );

此代码确实显示了总订单,但显示为总和。该怎么办,让它正常工作?如何根据当前的特色产品显示订单数量?

我会简化事情,并为这些帖子做一个简单的WP_Query

function woo_featured_product_sales_qty( $atts, $content = null ) {
    $args = shortcode_atts( array(
        'status' => 'completed',
        'meta_query' => array(
            array(
                'post_type' => 'product',  
                'meta_key' => '_featured',  
                'meta_value' => 'yes', 
                'order' => 'DESC'
            )
        ),
    ), $atts );
    $status_list = $args['status'];
    $statuses = array_map( 'trim', explode( ',', $status_list ) );
    $query_args = array(
        'post_status' => $statuses,
        'meta_query' => $args['meta_query'],
    );
    $posts = new WP_Query( $query_args );
    return $posts->have_posts() ? $posts->found_posts : 0;
}
add_shortcode( 'featured_product_sales_qty', 'woo_featured_product_sales_qty' );