WooCommerce 제품 총 판매량 받기

Nov 24 2020

모든 제품을 루프로 반환하는 단축 코드를 만들었습니다. 나는 각 제품의 총 매출을 얻는 방법을 찾고 있습니다. 지금은 여전히 ​​솔루션을 찾는 데 어려움을 겪고 있습니다.

이것은 내 코드입니다.

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

각 제품의 총 판매액을 가져 와서 루프에 표시하는 방법은 무엇입니까?

답변

3 LoicTheAztec Nov 25 2020 at 16:25

각 제품, 순 수익 또는 / 및 총 수익에 대해 얻을 다음 사용자 지정 함수를 사용할 수 있습니다.

function get_product_net_revenue( $product_id ) { global $wpdb;

    return (float) $wpdb->get_var( $wpdb->prepare("
        SELECT SUM(product_net_revenue)
        FROM {$wpdb->prefix}wc_order_product_lookup WHERE product_id = %d ",$product_id ) );
}

function get_product_gross_revenue( $product_id ) { global $wpdb;

    return (float) $wpdb->get_var( $wpdb->prepare("
        SELECT SUM(product_gross_revenue)
        FROM {$wpdb->prefix}wc_order_product_lookup WHERE product_id = %d ",$product_id ) );
}

코드는 활성 자식 테마 (또는 활성 테마)의 functions.php 파일에 들어갑니다.
WooCommerce 4 이상에서 테스트되고 작동합니다.

루프 내부의 사용 예 :

<?php $amount = get_product_net_revenue( $loop->post->ID ); ?>

그런 다음 필요한 곳에이 부동 금액 변수를 사용할 수 있습니다.