Php 获取WooCommerce产品的总销售额

Php 获取WooCommerce产品的总销售额,php,wordpress,woocommerce,product,shortcode,Php,Wordpress,Woocommerce,Product,Shortcode,我创建了一个短代码,它将返回循环中的所有产品。我正在寻找一种方法来获得每种产品的总销售额。现在我仍然很难找到解决办法 这是我的代码: function loop_ffh_function() { ?> <div class="row"> <?php $args = array( 'numberposts' => -1, 'post_type' => 'pro

我创建了一个短代码,它将返回循环中的所有产品。我正在寻找一种方法来获得每种产品的总销售额。现在我仍然很难找到解决办法

这是我的代码:

    function loop_ffh_function() 
    {
        ?>

        <div class="row">
    <?php
    $args = array(
    'numberposts' => -1,
    'post_type' => 'product',
    'orderby' => 'date');
    $loop = new WP_Query($args);
    while ($loop->have_posts()) : $loop->the_post();
        global $product; ?>         
        
        <?php
        $productID = get_the_ID(); 
        
        
        ?>
        <div class="column">
            <a href="<?php echo get_permalink($loop->post->ID) ?>">
                <?php the_post_thumbnail('full'); ?>
            </a>
            <?php 
            $target = get_field( 'campaign_target_amount' );
            
            ?>
            
            <div class="progress" style="margin-top:20px;">
              <div class="progress-bar progress-bar-warning progress-bar-striped active" role="progressbar"
              aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width:40%">
                40%
              </div>
            </div>
            
            <div class="row">
                <div class="col-md-8" style="padding-top:7px;">
                    Target : <b style="font-size: 18px;">RM <?php echo $target;?></b>
                </div>
                <div class="col-md-4">
                    <a class="btn" href="<?php echo get_permalink($loop->post->ID) ?>">Donate Now</a>
                </div>
            </div>
        </div>  
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
      </div>

       <?php
    }
    add_shortcode('loop_ffh', 'loop_ffh_function');
函数循环\u ffh\u函数()
{
?>
40%
目标:RM

您可以使用以下自定义函数,这些函数将获得每种产品的净收入或/和总收入:

函数获取产品净收入($product\U id){
全球$wpdb;
返回(浮动)$wpdb->get_var($wpdb->prepare(“
选择总和(产品净收入)
从{$wpdb->prefix}wc\u订单\u产品\u查找
其中产品标识=%d
“,$product_id));
}
函数获取产品总收入($product\U id){
全球$wpdb;
返回(浮动)$wpdb->get_var($wpdb->prepare(“
选择总和(产品总收入)
从{$wpdb->prefix}wc\u订单\u产品\u查找
其中产品标识=%d
“,$product_id));
}
代码进入活动子主题(或活动主题)的functions.php文件。
在WooCommerce 4及以上级别进行测试和工作

循环内的用法示例:

<?php $amount = get_product_net_revenue( $loop->post->ID ); ?>
要以“处理”和“完成”订单为目标,请替换:

WHERE p.status = 'wc-completed'

虽然已经对其进行了全面的介绍,但有时您只需要知道总销售数量(例如,当价格固定时),在这些情况下,您可以使用以下选项之一替换查询:

SELECT total_sales
    FROM {$wpdb->prefix}wc_product_meta_lookup
    WHERE product_id = %d


我更新了我的答案,添加了产品净收入的“仅获取已完成订单状态”。
SELECT total_sales
    FROM {$wpdb->prefix}wc_product_meta_lookup
    WHERE product_id = %d
SELECT meta_value
    FROM {$wpdb->prefix}post_meta
    WHERE post_id = %d
      AND meta_key LIKE 'total_sales'