我需要在订单详细信息中显示这是新客户或回头客的信息。为此,我检查具有当前 id 的客户是否已完成订单,如果超过 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>
';
}
答案 0 :(得分:1)
要检查订单是否已付款,或获取付款日期时间,您可以使用 WC_Order
method get_date_paid()
。如果订单已付款,此方法可以返回 WC_DateTime
对象,否则返回 null
值。
因此在您的代码中,您可以包含以下内容:
if( $order->get_date_paid() ) {
// Order is paid - Do something
} else {
// Order is NOT paid - Do something else
}