Как проверить, новый покупатель или нет в WooCommerce?
Мне необходимо проверять новый покупатель или нет в магазине на WooCommerce. Я пишу следующий код:
function renderCustomerIsNewField($order){
$customer_has_existing_orders = wc_get_orders(
array(
'customer_id' => $order->get_user_id(),
'status' => 'completed',
'limit' => 2
)
);
$markData = ( count($customer_has_existing_orders) )
? array('status-processing', 'Returning customer')
: array('status-on-hold', 'New Customer');
?>
<p>
<mark class="order-status <?php echo $markData[0]; ?>">
<span> <?php echo$markData[1]; ?></span>
</mark>
</p>
<?php
}
В коде проверяю пользователя по id, если есть заказ со статусом completed и мне необходимо, что б метка Returning ставилась только если заказов со статусом completed не меньше 2х, для этого пишу 'limit' => 2, однако это не срабатывает. Подскажите, как можно сделать проверку, что именно не меньше 2х завершенных заказов у одного пользователя?
Ответы (1 шт):
Вам нужно получить все заказы в статусе completed, а потом посчитать количество и сравнить это количество с 2. Limit ограничивает в запросе количество получаемых результатов, вам же нужно проверить все заказы, поэтому нужно указать limit => -1. Соответственно, условие должно выглядеть так: ( count($customer_has_existing_orders) >= 2 ) В целом код должен быть такой (не проверял):
function renderCustomerIsNewField($order){
$customer_has_existing_orders = wc_get_orders(
array(
'customer_id' => $order->get_user_id(),
'status' => 'completed',
'limit' => -1
)
);
$markData = ( count($customer_has_existing_orders) >= 2 )
? array('status-processing', 'Returning customer')
: array('status-on-hold', 'New Customer');
?>
<p>
<mark class="order-status <?php echo $markData[0]; ?>">
<span> <?php echo $markData[1]; ?></span>
</mark>
</p>
<?php
}