Как проверить, что заказ оплачен в WooCommerce

Мне нужно отобразить информацию о том, что это новый или постоянный покупатель, в деталях заказа. Для этого я проверяю, завершил ли заказчик с текущим идентификатором заказы, если их больше 2, то он является постоянным покупателем. Еще мне нужно отображать информацию о количестве выполненных заказов текущим покупателем. А у администратора все отображается правильно, но если я смотрю под ролью заведующего магазином, то вижу неверную информацию. Мне кажется, что нужно добавить еще один чек на время оплаты и если время NULL, то этот заказ еще не выполнен. Это мой код, помогите пожалуйста добавить чек на время оплаты

 add_filter( 'woocommerce_admin_order_data_after_order_details', 'renderCustomerIsNewField' );

 function renderCustomerIsNewField($order){
    $customer_has_existing_orders  = wc_get_orders(
        array(
            'customer_id' => $order->get_user_id(),
            'status' => 'completed'
        )
    );

    $orders_count = count($customer_has_existing_orders);

    $markData = ( (int)count($customer_has_existing_orders) >= 2)
        ? array('status-processing', 'Returning customer')
        : array('status-on-hold', 'New Customer');
    
    echo '
    <p>
        <mark class="order-status '. $markData[0] .'">
            <span>'. $markData[1] .' <strong style="color:#ff0000;font-weight: 900;"> '. $orders_count .'</strong></span>
        </mark>
    </p>
    ';
}

person Katharine Kulikova    schedule 23.02.2021    source источник
comment
Некоторые отзывы о приведенном ниже ответе будут очень признательны, пожалуйста.   -  person LoicTheAztec    schedule 27.02.2021


Ответы (1)


Чтобы проверить, оплачен ли заказ или узнать дату и время платежа, вы можете использовать _ 1_ метод get_date_paid(). Этот метод может вернуть объект WC_DateTime, если заказ оплачен, в противном случае он вернет значение null.

Итак, в свой код вы можете включить что-то вроде:

if( $order->get_date_paid() ) {
    // Order is paid - Do something
} else {
    // Order is NOT paid - Do something else
}
person LoicTheAztec    schedule 23.02.2021