AndrewBoeing
@AndrewBoeing
Начинающий и упорный программист )

Как вывести последние купленные товары списком Woocommerce?

Суть в следующем: Есть дизайн лендинга, на котором имеется блок со списком последних купленных товаров в магазине. Т.е. купил человек наушники, и в блоке появилась запись "12:37 - Наушники Apple AirPods, белые - 5600 руб".

add_shortcode( 'customer_products', 'truemisha_products_current_user' );
 
function truemisha_products_current_user() {
	// ничего не делаем, если не авторизован
	if ( ! is_user_logged_in() ) {
		return;
	}
 
	// получаем все оплаченные заказы пользователя
	$customer_orders = get_posts( array(
		'posts_per_page' => -1,
		'meta_key'    => '_customer_user',
		'meta_value'  => get_current_user_id(),
		'post_type'   => wc_get_order_types(),
		'post_status' => array_keys( wc_get_is_paid_statuses() ),
	) );
 
	// если заказов не найдено
	if ( ! $customer_orders ) {
		return;
	}
 
	// создаём отдельную переменную для ID товаров и записываем в неё
	$ids = array();
	foreach ( $customer_orders as $customer_order ) {
		$order = wc_get_order( $customer_order->ID );
		$items = $order->get_items();
		foreach ( $items as $item ) {
			$ids[] = $item->get_product_id();
		}
	}
 
	// возвращаем шорткод
	return do_shortcode( '[products ids="' . join( ",", array_unique( $ids ) ) . '"]' );
 
}


Через get_current_user_id выводятся, естественно, только купленные этим пользователем товары. Есть вариант вывести последние купленные товары всех пользователей?
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ответы на вопрос 1
AndrewBoeing
@AndrewBoeing Автор вопроса
Начинающий и упорный программист )
Уточню: выводить список товаров нужно для всех пользователей, в том числе для неавторизованных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы