Как определить, сколько раз пользователь купил определёный товар

В этом уроке хочу поделиться с вами функцией, в которую вы сможете передать ID товара и ID пользователя и она вернет вам количество, в котором пользователь купил этот товар за всё время.

Кстати, рекомендую вам свой курс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля, на основе готовой вёрстки, вот ссылка.

Сама функция, которую вы можете вставить например в functions.php и потом использовать в любом месте на сайте:

function truemisha_get_amount_purchased_by_user( $user_id, $product_id ) {
 
	// сначала мы получаем все заказы пользователя
	$customer_orders = wc_get_orders(
		array(
			'limit'    => -1,
			'status'   => array( 'completed', 'processing'),
			'customer' => $user_id,
		)
	);
 
	// в этой переменной и будет храниться количество товара
	$count = 0;
 
	// запускаем заказы в цикле
	foreach ( $customer_orders as $customer_order ) {
		$order = wc_get_order( $customer_order->get_id() );
		$items = $order->get_items();
		foreach ( $items as $item ) {
			if ( $product_id == $item->get_product_id() ) {
				$count = $count + absint( $item[ 'qty' ] ); 
			}
		}
	}
 
	// возвращаем количество
	return $count;
 
}

Давайте попробуем использовать эту функцию для определения количества покупок товара текущим пользователем, для этого воспользуемся функцией get_current_user_id().

echo 'Вот сколько раз вы уже купили товар с ID=32 : '; 
echo truemisha_get_amount_purchased_by_user( get_current_user_id(), 32 );

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.