WooCommerce展示产品总销售额的自定义在前端一个日期
问题描述:
我想显示自定义的日期后的产品销售总额后:WooCommerce展示产品总销售额的自定义在前端一个日期
我有这样的代码,但我想将其自定义为显示自定义后,仅销售总额日期例如05/26/2016
function total_sales()
{
global $product;
$units_sold = get_post_meta(206, 'total_sales', true);
echo '<p>' . sprintf(__('Units Sold: %s', 'woocommerce'), $units_sold) . '</p>';
}
答
total_sales
持有的所有时间的总销售数量,因此你需要 写自定义查询得到具体出售日期之间的数。
//woocommerce get total sale count of a product after a specific data
function wh_get_total_sold_by_product_id($date_from, $product_id)
{
global $wpdb;
$date_to = date('Y-m-d');
$sql = "
SELECT COUNT(*) AS sale_count
FROM {$wpdb->prefix}woocommerce_order_items AS order_items
INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS order_meta ON order_items.order_item_id = order_meta.order_item_id
INNER JOIN {$wpdb->posts} AS posts ON order_meta.meta_value = posts.ID
WHERE order_items.order_item_type = 'line_item'
AND order_meta.meta_key = '_product_id'
AND order_meta.meta_value = %d
AND order_items.order_id IN (
SELECT posts.ID AS post_id
FROM {$wpdb->posts} AS posts
WHERE posts.post_type = 'shop_order'
AND posts.post_status IN ('wc-completed','wc-processing')
AND DATE(posts.post_date) BETWEEN %s AND %s
)
GROUP BY order_meta.meta_value";
return $wpdb->get_var($wpdb->prepare($sql, $product_id, $date_from, $date_to));
}
代码放在functions.php
文件的活跃儿童主题(或主题)的。或者也可以在任何插件php文件中使用。
用法
//$count = wh_get_total_sold_by_product_id($my_custom_date, $product_id);
$count = wh_get_total_sold_by_product_id('2016-05-26', 56);
请注意:所有日期都在Y-m-d
格式。
守则测试和工程。
希望这会有所帮助!
Thxs了很多!作品 – alfredo49