如何在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
相关产品推荐
相关产品推荐

