我正在寻找一种方法,以获取当月每个订单中的自定义费用总和。我将其添加到WooCommerce状态小部件下。这是我目前所拥有的:
<?php
/**
* Add custom widgets to the dashboard
*/
add_action( 'wp_dashboard_setup', 'custom_dashboard_widgets' );
function custom_dashboard_widgets() {
wp_add_dashboard_widget(
'monthly_profit_dashboard_widget',
'Gewinnübersicht',
'monthly_profit_dashboard_widget_function'
);
}
/**
* Monthly profit dashboard widget content
*/
function monthly_profit_dashboard_widget_function() {
//Variables
$net_profit = 0;
/*
* Get all orders for the current month here
*/
//Get provision
foreach ( $orders as $order ) {
foreach ( $order->get_items( 'fee' ) as $item_id => $item_fee ) {
if ( $item_fee->get_name() === 'Profit' ) {
$net_profit += $item_fee->get_total();
}
}
}
?>
<ul class="monthly-profit-list">
<li class="net-profit">
<div>
<strong>
<?php echo wc_price( $net_profit ); ?>
</strong> Nettogewinn in diesem Monat
</div>
</li>
</ul>
<?php }
那我如何才能获得当月的所有订单以完成其功能并使其运行?
更新
我现在已经尝试了这部分代码:
wc_get_orders( array( 'date_paid' => date( 'Y-m-01' ) . '...' . date( 'Y-m-t' ) ) );
但是奇怪的是,它返回了该日期的订单:
object(WC_DateTime)#37884 (4) { ["utc_offset":protected]=> int(0) ["date"]=> string(26) "2019-03-14 22:41:09.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } object(WC_DateTime)#37974 (4) { ["utc_offset":protected]=> int(0) ["date"]=> string(26) "2019-03-14 22:15:39.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } object(WC_DateTime)#38011 (4) { ["utc_offset":protected]=> int(0) ["date"]=> string(26) "2019-03-14 20:34:20.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } object(WC_DateTime)#38048 (4) { ["utc_offset":protected]=> int(0) ["date"]=> string(26) "2019-03-09 23:18:33.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } object(WC_DateTime)#38088 (4) { ["utc_offset":protected]=> int(0) ["date"]=> string(26) "2019-02-28 14:34:06.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" }
所以最后一个不在当前月份之内(很奇怪)。