質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

WooCommerceで今月のトップセールスをカテゴリ別かつ任意の件数を表示するには

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 228

score 2

初心者になります。
以下のコードで【1】今月【2】セールス順【3】カテゴリ別までは実現できたのですが、
【4】表示件数を制御する方法が分かりません。
3件表示するのが希望ですが、当然ですが以下のコードは全部を表示していまいます。
ご指導お願いできないでしょうか。
よろしくお願いします

function get_best_selling_products_yobi( $limit = '-1' ){
global $wpdb;
$limit_clause = intval($limit) <= 0 ? '' : 'LIMIT '. intval($limit);
$curent_month = date('Y-m-01 00:00:00');
return (array) $wpdb->get_results("
SELECT p.ID as id,COUNT(oim2.meta_value) as count
FROM {$wpdb->prefix}posts p
INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim
ON p.ID = oim.meta_value
INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim2
ON oim.order_item_id = oim2.order_item_id
INNER JOIN {$wpdb->prefix}woocommerce_order_items oi
ON oim.order_item_id = oi.order_item_id
INNER JOIN {$wpdb->prefix}posts as o
ON o.ID = oi.order_id
WHERE p.post_type = 'product'
AND p.post_status = 'publish'
AND o.post_status IN ('wc-processing','wc-completed')
AND o.post_date >= '$curent_month'
AND oim.meta_key = '_product_id'
AND oim2.meta_key = '_qty'
GROUP BY p.ID
ORDER BY COUNT(oim2.meta_value) + 0 DESC
$limit_clause
");
}

$best_selling_products = get_best_selling_products_yobi();
/*Loop through best selling products stdClass Objects*/

foreach( $best_selling_products as  $values ) {
$product_id    = $values->id; // Get the product ID
$product_count = $values->count; // Get the count for the current month
$_product = wc_get_product( $product_id );
$info_cat = $_product->get_category_ids();

if ($info_cat[0] == (51)) {
echo get_the_title( $product_id ).'<br>';

}
}

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る