Как проверить, что пользователь уже покупал определённый товар? И вывести сообщение об этом.

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

Также мы слегка коснёмся темы кастомизации карточки товара, если хотите узнать об этом больше – рекомендую этот видеоурок на моём сайте.

Вот, что у нас должно получиться в ходе этого урока:

Сообщение, если клиент уже покупал товар
Конечно это всего лишь пример – тут я добавил сообщение на страницу «Магазин» и в категории товаров, которое отображается под карточкой товара.

А ниже – готовый сниппет кода для functions.php вашей темы или кастомного плагина.

add_action( 'woocommerce_after_shop_loop_item', 'truemisha_if_user_purchased_product', 25 );
 
function truemisha_if_user_purchased_product() {
 
	// не авторизован – ничего не делаем
	if ( ! is_user_logged_in() ) {
		return;
	}
 
	global $product;
	$current_user = wp_get_current_user();
 
	if ( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product->get_id() ) ) {
		echo '<p>&hearts; ' . $current_user->first_name . ', вы уже покупали этот товар ранее. Хотите купить снова?</p>';
	}
 
}

Также на моём сайте можете отдельно почитать про то, как работают функции is_user_logged_in() и wp_get_current_user().

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 5

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

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал