Как использовать WPONE REST API для получения данных о заказах в WooCommerce

WooCommerce — один из самых популярных плагинов для электронной коммерции на WordPress. Для разработчиков часто возникает задача получать и обрабатывать данные заказов программно, чтобы реализовать кастомные отчеты, интеграции с CRM и другие бизнес-процессы.

В этой статье мы подробно разберем, как с помощью WPONE REST API можно безопасно и эффективно получать данные о заказах WooCommerce. Рассмотрим примеры запросов, обработку ответа и примеры кода на PHP и JavaScript.

Что такое WPONE REST API и его преимущества для работы с WooCommerce

WPONE REST API — это надстройка над стандартным REST API WordPress, которая добавляет удобные методы и расширения для упрощения разработки. В частности, для WooCommerce она позволяет:

  • Получать данные заказов с расширенными фильтрами.
  • Обрабатывать метаданные заказов.
  • Предоставлять безопасный доступ с помощью токенов и nonce.

Использование WPONE REST API сокращает время разработки и снижает количество ошибок при работе с заказами.

Настройка доступа и аутентификация

Для работы с REST API WooCommerce требуется аутентификация. С WPONE REST API вы можете использовать OAuth 1.0a, Basic Auth или токены доступа, настроенные в вашем WordPress.

Например, для Basic Auth на PHP можно использовать следующий код для инициализации запроса:

$consumer_key = 'ck_xxxxxxxx';
$consumer_secret = 'cs_xxxxxxxx';
$api_url = 'https://your-site.ru/wp-json/wpone/v1/orders';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$consumer_key:$consumer_secret");
$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);

Такой запрос вернет список заказов с базовой информацией.

Получение заказов с фильтрацией и пагинацией

WPONE REST API поддерживает параметры фильтрации, позволяющие получить заказы по статусу, дате, клиенту и другим критериям. Это особенно полезно при большом количестве данных.

Пример запроса с фильтрацией по статусу и пагинацией:

GET https://your-site.ru/wp-json/wpone/v1/orders?status=processing&per_page=10&page=2

В ответе вы получите вторую страницу заказов со статусом "processing".

Пример на PHP с использованием wp_remote_get:

function wpone_get_orders($status = 'processing', $per_page = 10, $page = 1) {
    $url = add_query_arg([
        'status' => $status,
        'per_page' => $per_page,
        'page' => $page
    ], 'https://your-site.ru/wp-json/wpone/v1/orders');

    $response = wp_remote_get($url, [
        'headers' => [
            'Authorization' => 'Basic ' . base64_encode('ck_xxxxxxxx:cs_xxxxxxxx')
        ]
    ]);

    if (is_wp_error($response)) {
        return [];
    }

    $body = wp_remote_retrieve_body($response);
    return json_decode($body, true);
}

Обработка метаданных заказов и пользовательских полей

Заказы WooCommerce часто содержат пользовательские мета поля, например, данные доставки, дополнительные опции и т.п. WPONE REST API позволяет легко получать и обновлять эти данные.

Для получения метаданных в ответе на запрос заказа обратите внимание на раздел meta_data. Пример части JSON ответа:

{
  "id": 1234,
  "status": "completed",
  "meta_data": [
    {
      "key": "_delivery_date",
      "value": "2024-07-10"
    },
    {
      "key": "_gift_wrap",
      "value": true
    }
  ]
}

Для получения значений мета можно использовать вспомогательную функцию:

function wpone_get_order_meta($order, $key) {
    foreach ($order['meta_data'] as $meta) {
        if ($meta['key'] === $key) {
            return $meta['value'];
        }
    }
    return null;
}

Пример кода для вывода списка заказов на фронтенде с помощью AJAX

Рассмотрим пример вывода заказов текущего пользователя на странице. Для этого создадим AJAX-запрос с обработкой через WPONE REST API.

JavaScript для запроса заказов:

fetch('https://your-site.ru/wp-json/wpone/v1/orders?customer=' + userId, {
  headers: {
    'Authorization': 'Bearer ' + userToken
  }
})
.then(response => response.json())
.then(data => {
  const container = document.getElementById('orders-list');
  data.forEach(order => {
    const div = document.createElement('div');
    div.textContent = `Заказ №${order.id}, статус: ${order.status}`;
    container.appendChild(div);
  });
});

На стороне PHP можно расширить WPONE REST API, добавив свои эндпоинты или обработчики, если нужно реализовать дополнительную логику.

Рекомендации по безопасности

Обязательно используйте SSL (HTTPS) для всех запросов к REST API, чтобы защитить данные авторизации. Также не передавайте ключи доступа в публичных скриптах — используйте серверные прокси или защищенные методы аутентификации.

Полезные плагины для работы с WooCommerce и REST API

Для расширения возможностей и удобства работы можно использовать:

  • Clearfy Pro — для оптимизации и управления API.
  • WPCommunity — для организации доступа и управления правами.

Эти инструменты помогут сделать взаимодействие с API более гибким и безопасным.

Заключение по работе с WPONE REST API и заказами WooCommerce

Использование WPONE REST API позволяет разработчикам легко получать и обрабатывать данные заказов WooCommerce, используя гибкие фильтры и надежную аутентификацию. В статье приведены примеры кода и советы, которые помогут быстро интегрировать данные в ваши проекты.

Создание автоматических отчётов в WordPress с помощью WPCommunity
27.03.2026
Как создать автоматический импорт постов в WordPress из внешнего источника
17.03.2026
Как создать собственный шорткод в WordPress
10.11.2025
Как удалить бесполезные мета данные из базы WordPress без потерь
12.01.2026
Как использовать метаданные в WordPress для уникального контента
01.02.2026