Как использовать функцию WC_GET_ORDER() в WooCommerce 2.2

## Функция WC_GET_ORDER() │ WC 2.2

Функция WC_GET_ORDER() позволяет получить данные о конкретном заказе в WooCommerce. Эта функция служит "оберткой" для получения объекта заказа, с помощью которого вы можете получить любую информацию о заказе и его элементах.

Функция основана на классе WC_Order_Factory.

Важно! Не все данные о заказе можно получить напрямую из объекта. Для некоторых данных необходимо использовать специальные методы класса (подробнее в примерах).

Использует: WC_Order_Factory::get_order()

### Возвращаемые значения

Функция возвращает одно из следующих значений: 

- true — если операция успешна.
- false — если произошла ошибка.
- WC_Order — объект с данными заказа.
- WC_Order_Refund — объект с данными возврата.

Если заказ был успешно получен, вы получите экземпляр объекта WC_Order, например:

```plaintext
WC_Order Object (
    [order_type] => simple
    [id]    => 41863
    [post]  => WP_Post Object (
            ...
        )
    ...
)

Использование

Вызывайте функцию wc_get_order() с идентификатором заказа, например:

$order = wc_get_order( $the_order );

Где $the_order — это объект поста или идентификатор заказа. По умолчанию принимает значение false.

Примеры

Пример 1: Получение элементов заказа

Чтобы получить элементы заказа, необходимо использовать специальные методы, относящиеся к классам:

  • WC_Order_Item
  • WC_Order_Item_Product

Это означает, что вы не можете получить элементы заказа напрямую из объекта WC_Order, только через специальные методы.

$order = wc_get_order( 65 );
$order_items = $order->get_items();

foreach( $order_items as $item_id => $item ) {
    // Получаем ID элемента
    $item_id = $item->get_id();

    // Получаем имя продукта и его тип
    $item_name = $item->get_name(); // Название продукта
    $item_type = $item->get_type(); // Тип элемента заказа ("line_item")

    $product_id = $item->get_product_id(); // ID продукта
    $wc_product = $item->get_product();     // Объект WC_Product

    // Данные элемента заказа в виде массива
    $item_data = $item->get_data();

    echo $item_data['name'];
    echo $item_data['product_id'];
    echo $item_data['quantity'];
    ...
}

Пример 2: Получение данных о заказе

$order_id = 35;
$order = wc_get_order( $order_id );

// Получаем ID заказа
$order_id = $order->get_id();

// Получаем ID клиента
$user_id = $order->get_user_id();

// Получаем элементы заказа
$order->get_items();

// Получаем данные заказа в виде массива
$data = $order->get_data(); 
echo $data['id'];
echo $data['status'];
...

Важно!

Метод get_data() работает с версии WooCommerce 3.0 и выше. Вот пример как получить дату создания заказа:

echo $data['date_created']->date('Y-m-d H:i:s');

Изменения

Функция WC_GET_ORDER() была введена в версии 2.2.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *