我想在产品列表页面中显示订单总数。我可以简单地计算,但不能满足以下条件。
1)在产品列表页面上显示
2)由登录用户添加的产品并非所有用户
3)当月订单(非产品)
我试过下面的代码。我已经将这个钩子添加到我的主题函数文件中。
$table_posts = $wpdb->prefix . "posts";
$table_postmeta = $wpdb->prefix . "postmeta";
$table_items = $wpdb->prefix . "woocommerce_order_items";
$table_itemmeta = $wpdb->prefix . "woocommerce_order_itemmeta";
$user_id = get_current_user_id();
$current_month = date('m');
$current_year = date('Y');
$orders_ids = $wpdb->get_results("
SELECT $table_itemmeta.meta_value as product_id
FROM $table_itemmeta, $table_items, $table_posts
WHERE $table_items.order_item_id = $table_itemmeta.order_item_id
AND $table_items.order_id = $table_posts.ID
AND $table_posts.post_status IN ( $orders_statuses )
AND $table_posts.post_author = ".$user_id."
AND year($table_posts.post_date) = ".$current_year."
AND month($table_posts.post_date) = ".$current_month."
AND $table_itemmeta.meta_key LIKE '_product_id'
ORDER BY $table_items.order_item_id DESC"
);
下方是我想要显示的地方。
答案 0 :(得分:0)
尝试这样的方式来显示您的订单总数:
static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
this.clickListener = clickListener;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null) {
clickListener.onLongClick(child, recyclerView.getChildPosition(child));
}
}
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
clickListener.onClick(child, rv.getChildPosition(child));
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
}
我希望它对你有用!
祝你好运。