Я только что нашел эту ссылку здесь. https://www.skyverge.com/blog/prevent-repeat-purchase-with-woocommerce/
Предлагается использовать функцию wc_customer_bought_product для проверки адреса электронной почты пользователя, чтобы узнать, ранее ли он приобрел продукт.
// return false if the customer has bought the product
if ( wc_customer_bought_product( wp_get_current_user()->user_email, get_current_user_id(), $product_id ) ) {
$purchasable = false;
}
Требуется, чтобы пользователь вошел в систему, но нет причины, по которой вы не могли использовать ajax на кассе и проверить поле формы электронной почты (вместо wp_get_current_user () -> user_email ) с этим функции, а затем, если вы получите верный ответ, вы можете заменить кнопку отправки из формы проверки на сообщение об ошибке.