Методы получения заказов в WordPress: WooCommerce, пользовательские запросы и REST API

Чтобы получать заказы в WordPress, вы можете использовать различные методы в зависимости от контекста и установленных вами плагинов. Вот несколько распространенных методов с примерами кода:

Метод 1: использование плагина WooCommerce
Если вы используете плагин WooCommerce для управления своими заказами, вы можете использовать следующий код для получения заказов:

$args = array(
    'post_type'      => 'shop_order',
    'post_status'    => 'wc-completed', // Filter by order status if needed
    'posts_per_page' => -1,
);
$orders = get_posts( $args );
foreach ( $orders as $order ) {
    // Access order information
    $order_id   = $order->ID;
    $order_data = $order->post_date;
    // Process order data as needed
    // ...
}

Метод 2: использование настраиваемого запроса
Если у вас есть настраиваемый тип публикации заказа или настраиваемая таблица базы данных для хранения заказов, вы можете использовать настраиваемый запрос для получения заказов. Вот пример:

global $wpdb;
$orders = $wpdb->get_results( "
    SELECT * FROM {$wpdb->prefix}custom_orders
    WHERE order_status = 'completed'
" );
foreach ( $orders as $order ) {
    // Access order information
    $order_id   = $order->order_id;
    $order_date = $order->order_date;
    // Process order data as needed
    // ...
}

Метод 3: использование REST API
Если вы хотите программно получать заказы с сайта WordPress с включенным REST API, вы можете использовать HTTP-запрос. Вот пример использования функции wp_remote_get:

$response = wp_remote_get( 'https://example.com/wp-json/wc/v3/orders', array(
    'headers' => array(
        'Authorization' => 'Bearer YOUR_API_KEY',
    ),
) );
if ( is_wp_error( $response ) ) {
    // Handle error
} else {
    $orders = json_decode( wp_remote_retrieve_body( $response ) );
    foreach ( $orders as $order ) {
        // Access order information
        $order_id   = $order->id;
        $order_date = $order->date_created;
        // Process order data as needed
        // ...
    }
}

Это всего лишь несколько примеров того, как можно получать заказы в WordPress. Выбор метода будет зависеть от ваших конкретных настроек и требований.