WooCommerce получить все заказы сайта или пользователя

Иногда может потребоваться получить все заказы сайта или конкретного пользователя, для этого нам понадобится функция WC_Order_Query()

для получения id заказов сайта

<?php
    $query = new WC_Order_Query(
        array(
            'limit' => 10, // указываем количество выводимых заказов, -1 вывести все
            'orderby' => 'date',
            'order' => 'DESC', // Возможные значения 'DESC', 'ASC'  и rand'
            'date_created' => '<' . ( time() - HOUR_IN_SECONDS ),// получить заказы до нужной даты
            'return' => 'ids', // получаем только id заказов так же можно получить объект заказа возможные значения 'ids' и 'objects
            'status' => 'completed',// нужный нам статус заказов. Возможные статусы заказа, pending || processing || on-hold || completed || cancelled || refunded || failed
            'currency' => 'USD',//нужная валюта 
        )
    );
    print_r($query);

возвращаемое значение

Array
(
    [0] => 296
    [1] => 294
    [2] => 292
)

получаем id всех заказов пользователя

<?php
    $query = new WC_Order_Query(
        array(
            'limit' => -1, //указываем количество выводимых заказов, -1 вывести все
            'orderby' => 'date',
            'order' => 'DESC',
            'return' => 'ids', //получаем только id заказов
            'status' => 'completed',// нужный нам статус заказов. Возможные статусы заказа, pending || processing || on-hold || completed || cancelled || refunded || failed
            'customer_id' => $user_id, // id пользователя
            'customer' => 'woocommerce@woocommerce.com',// так же можно получать заказы по почте пользователя
        )
    );
    print_r($query);