【问题标题】:WooCommerce Show Product Total Sales after Custom a Date in FrontendWooCommerce 在前端自定义日期后显示产品总销售额
【发布时间】: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>';
}

【问题讨论】:

    标签: php mysql wordpress woocommerce product


    【解决方案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->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格式。

    代码已经过测试并且可以工作。

    希望这会有所帮助!

    【讨论】:

    • 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?
    猜你喜欢
    • 2018-01-22
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    相关资源
    最近更新 更多