我如何从WooCommerce中的所有订单中获得自定义费用的总和?

时间:2019-03-20 09:38:47

标签: php wordpress woocommerce

我正在寻找一种方法,以获取当月每个订单中的自定义费用总和。我将其添加到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" }

所以最后一个不在当前月份之内(很奇怪)。

0 个答案:

没有答案