WooCommerce 在前端自定义日期后显示产品总销售额
Posted
技术标签:
【中文标题】WooCommerce 在前端自定义日期后显示产品总销售额【英文标题】:WooCommerce Show Product Total Sales after Custom a Date in Frontend 【发布时间】:2017-10-26 06:01:53 【问题描述】:我想显示自定义日期之后的产品总销售额:
我有此代码,但我想自定义它以仅显示自定义日期之后的总销售额,例如 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>';
【问题讨论】:
【参考方案1】:
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->prefixwoocommerce_order_items AS order_items
INNER JOIN $wpdb->prefixwoocommerce_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
格式。
代码已经过测试并且可以工作。
希望这会有所帮助!
【讨论】:
Uncaught ArgumentCountError: Too little arguments to function wh_get_total_sold_by_product_id(), 1 pass in /app/public/wp-includes/class-wp-hook.php on line 286 我在添加到函数时得到了这个。 php文件 @FoamyMedia:您是否同时传递了参数,即日期和产品 ID?以上是关于WooCommerce 在前端自定义日期后显示产品总销售额的主要内容,如果未能解决你的问题,请参考以下文章
通过自定义前端表单设置 Woocommerce 产品标签和类别
WooCommerce:将自定义 Metabox 添加到管理订单页面