使用woocommerce在产品列表页面上记录的用户添加的当前月份订单总数和产品

时间:2017-09-09 04:53:36

标签: wordpress woocommerce

我想在产品列表页面中显示订单总数。我可以简单地计算,但不能满足以下条件。

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"
        );

下方是我想要显示的地方。

enter image description here

1 个答案:

答案 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) {

        }


    }

我希望它对你有用!

祝你好运。