Программирование с Word Press

Получить все строчки из таблицы wp_posts где тип поста это заказы компонента WooCommerce
SELECT * FROM `wp_posts` WHERE post_type = ‘shop_order’

Что означает в запросах wordpress: ‘posts_per_page’ => -1 ?
Значение -1 обозначает, вывести все имеющиеся записи

Заказы в WordPress это тоже посты, поэтому все они будут сохраняться в таблице wp_posts. Комментарии к заказам будут находиться в таблице wp_postmeta

Хотите скрыть или наоборот показать определённые пункты меню для зарегистрированных пользователей?
Устанавливаем плагин — User Menus

Как запросить заказы Woocommerce на странице

Существует несколько способов получения заказов Woocommerce:

1) Woocommerce имеет специальную функцию wc_get_orders(), которая даст вам массив объектов WC_Order:

$orders = wc_get_orders( array(‘numberposts’ => -1) );

// Loop through each WC_Order object
foreach( $orders as $order ){
echo $order->get_id() . ‘<br>’; // The order ID
echo $order->get_status() . ‘<br>’; // The order status
}

2) Вы также можете использовать WordPress WP_Query:

$loop = new WP_Query( array(
‘post_type’ => ‘shop_order’,
‘post_status’ => array_keys( wc_get_order_statuses() ),
‘posts_per_page’ => -1,
) );

// The WordPress post loop
if ( $loop->have_posts() ):
while ( $loop->have_posts() ) : $loop->the_post();

// The order ID
$order_id = $loop->post->ID;

// Get an instance of the WC_Order Object
$order = wc_get_order($loop->post->ID);

endwhile;

wp_reset_postdata();

endif;

3) Вы можете использовать SQL-запрос

global $wpdb;
$results = $wpdb->get_results(«SELECT * FROM {$wpdb->prefix}posts WHERE post_type LIKE ‘shop_order'»);

// Loop through each order post object
foreach( $results as $result ){
$order_id = $result->ID; // The Order ID

// Get an instance of the WC_Order Object
$order = wc_get_order( $result->ID );
}

wc_get_order() Получает данные указанного заказа в Woocommerce.