I want to show product total sales after custom date:
I have this code, but I would like to custom it for showing only the total sales after a custom date for example 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>'; }
Advertisement
Answer
total_sales
holds the total sales count of all time, So you need to write custom query to get sold count between specific date.
//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)); }
Code goes in functions.php
file of your active child theme (or theme). Or also in any plugin php files.
USAGE
//$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);
Please Note: All the date are in Y-m-d
format.
Code is tested and works.
Hope this helps!