对于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] 举报,一经查实,本站将立刻删除。