You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce商品页显示过去X天的商品销量?

实现WooCommerce商品页面显示过去X天销量的代码片段

你可以通过查询WooCommerce的订单数据统计指定天数内的商品销量,以下是可用的代码片段:

add_action( 'woocommerce_single_product_summary', 'wp_product_sold_count_last_x_days', 12 );
function wp_product_sold_count_last_x_days() {
    global $product;
    $product_id = $product->get_id();
    $days_to_check = 7; // 这里设置你要统计的天数,比如7天
    
    // 计算起始时间(当前时间减去指定天数)
    $start_date = date( 'Y-m-d H:i:s', strtotime( "-{$days_to_check} days" ) );
    $end_date = current_time( 'mysql' );
    
    // 查询符合条件的订单中的商品销量
    $args = array(
        'status' => array( 'completed', 'processing' ), // 统计已完成和处理中的订单,可按需调整
        'date_created' => $start_date . '...' . $end_date,
        'return' => 'ids',
        'limit' => -1,
    );
    
    $orders = wc_get_orders( $args );
    $total_sold_x_days = 0;
    
    foreach ( $orders as $order_id ) {
        $order = wc_get_order( $order_id );
        foreach ( $order->get_items() as $item ) {
            if ( $item->get_product_id() == $product_id ) {
                $total_sold_x_days += $item->get_quantity();
            }
        }
    }
    
    if ( $total_sold_x_days > 0 ) {
        echo '<p>' . sprintf( __( '过去 %d 天销量: %d', 'woocommerce' ), $days_to_check, $total_sold_x_days ) . '</p>';
    }
}

关键说明:

  • 修改$days_to_check的值可调整统计天数,比如改成30就是统计过去30天的销量
  • status参数里的订单状态可按需增减,比如去掉processing仅统计已完成订单
  • 钩子优先级设为12,会在你原有的总销量显示位置之后输出,若要调整显示顺序可修改这个数字
  • 如果要和总销量合并显示,可把两个逻辑整合到同一个函数里

内容的提问来源于stack exchange,提问作者Najm Aldekhel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:15:59