我正在寻求一种方法来帮助您计算一种方法,该方法可以计算客户下达的订单数量,还可以计算客户通过产品ID留下的评论数量。
我有一个相当大的函数,其中包含大多数所需的参数,但是我似乎无法使这些计数起作用。最终目标是比较两个结果,然后触发一个事件。
我使用下面的代码段解决了订单数,但尚未解决“评论”数。另外,经过进一步考虑,我认为最好获得客户的总评论数而不是按产品ID。$args = [ 'customer_id' => $user_id, 'post_status' => 'completed', 'post_type' => 'shop_order' ]; $query = new WP_Query($args); $CustomerOrders = $query->found_posts; //count reviews $CustomerReviews = $wpdb->get_var( " SELECT COUNT(comment_ID) FROM {$wpdb->prefix}comments WHERE comment_post_ID = $product_id AND comment_author_email = '{$customer_email}' " ); return $CustomerReviews; if($CustomerReviews < $CustomerOrders) { //do stuff }
更新:
那行不通。它在我的测试期间不应触发时触发。不太确定如果什么也没得到,那该算什么。在运行测试并尝试使审核计数正常工作时,我收到此错误$CustomerOrders = (array) wc_get_orders( array( 'limit' => -1, 'status' => 'completed', 'customer_id' => $user, ) ); if ( sizeof($CustomerOrders) > ..... )
更正:
Object of class WP_User could not be converted to string
,因此我认为获取用户ID的方式可能有问题。$user_id = $order->get_customer_id(); $user = get_user_by( 'ID', $user_id );
$ user在其他情况下工作正常。.所以我不知道为什么$ user_id对于查询不起作用。
已解决:
我不知道为什么我崩溃并张贴x)无论如何我总是最终要解决它,哈哈。如果其他人有兴趣,这是解决方案。$CustomerOrders = (array) wc_get_orders( array(
'limit' => -1,
'status' => 'completed',
'customer_id' => $order->get_customer_id(),
) );
$args = array(
'user_id' => $confirmed_order->get_customer_id(),
'comment_type' => 'review'
);
$CustomerReviews = get_comments( $args );
if (count($CustomerReviews) < sizeof($CustomerOrders) )
{
//do stuff
}
我正在寻求一种方法的帮助,该方法可以统计客户下的订单数量,还可以统计客户通过产品ID留下的评论数量。我有一个相当大的函数,它具有大多数...
$CustomerOrders = (array) wc_get_orders( array(
'limit' => -1,
'status' => 'completed',
'customer_id' => $order->get_customer_id(),
) );
$args = array(
'user_id' => $confirmed_order->get_customer_id(),
'comment_type' => 'review'
);
$CustomerReviews = get_comments( $args );
if (count($CustomerReviews) < sizeof($CustomerOrders) )
{
//do stuff
}