微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 获取Woocommerce当天的订单总购买金额

对于Woocommerce,我在下面编写了代码,试图获取今天的订单总购买金额:

function order_total_woo_fahad(){

    // Get orders from people named John that were paid in the year 2016.
$orders = wc_get_orders( array(
    'date_paid' => '2018-07-03'
) );
$total_of_all=0;
for($i=0;$orders[i];$i++)
    $total_of_all= $orders[i]->get_total();
    return $total_of_all;
}

但它返回null.

我做错了什么?如何获得当天的订单总购买金额?

解决方法:

获得该方法的最佳和有效方法是使用以下非常轻松的SQL查询,该查询将获得“处理”和“已完成”订单状态在过去24小时内所有订单总数的总和:

function get_daily_purchases_total(){
    global $wpdb;

    return $wpdb->get_var( "
        SELECT disTINCT SUM(pm.Meta_value)
        FROM {$wpdb->prefix}posts as p
        INNER JOIN {$wpdb->prefix}postMeta as pm ON p.ID = pm.post_id
        WHERE p.post_type LIKE 'shop_order'
        AND p.post_status IN ('wc-processing','wc-completed')
        AND UNIX_TIMESTAMP(p.post_date) >= (UNIX_TIMESTAMP(Now()) - (86400))
        AND pm.Meta_key LIKE '_order_total'
    " );
}

代码位于活动子主题(或活动主题)的function.PHP文件中.经过测试和工作.

用法示例 – 显示每日购买的格式化总金额:

<?PHP echo '<p>Total purchased of the day: ' . strip_tags( wc_price(get_daily_purchases_total() ) ) . '</p>'; ?>

如果你想根据“今天”日期得到总数,你将在代码中替换这一行:

AND UNIX_TIMESTAMP(p.post_date) >= (UNIX_TIMESTAMP(Now()) - (86400))

通过这一行:

AND DATE(p.post_date) >= CURDATE()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐