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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

595閲覧

WooCommerceでバリエーションの販売数を取得したい

wpman

総合スコア4

WooCommerce

WooCommerceは、2011年にリリースされたWordPressのためのECプラグインです。ECサイトに必要な一連の機能を簡単に導入できる上、柔軟なカスタマイズをすることも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/02/04 08:29

##前提・実現したいこと
WordPressプラグイン「WooCommerce」において、バリエーションごとの販売数を取得したいです。

##試したこと
Count number of orders for a variation in Woocommerce | stack overflow

を参考に以下のコードを試しましたが、得られたのは販売数ではなく注文数でした。

PHP

1function count_orders_from_variation($variation_id){ 2 global $wpdb; 3 4 // DEFINE below your orders statuses 5 $statuses = array('wc-completed', 'wc-processing'); 6 7 $statuses = implode("','", $statuses); 8 9 return $wpdb->get_var(" 10 SELECT count(p.ID) FROM {$wpdb->prefix}woocommerce_order_items AS woi 11 JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS woim ON woi.order_item_id = woim.order_item_id 12 JOIN {$wpdb->prefix}posts AS p ON woi.order_id = p.ID 13 WHERE p.post_type = 'shop_order' AND p.post_status IN ('$statuses') 14 AND woim.meta_key LIKE '_variation_id' AND woim.meta_value = $variation_id 15 "); 16}

このコードだと、

注文#1:バリエーション#10を1個購入
注文#2:バリエーション#10を3個購入

されたとき、
注文された回数の「2」が出力されます。

##やりたいこと
上記の場合に、購入された個数「4」が出力されるようにしたいです。

ご助力願えないでしょうか、よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

データベース検索を以下に変更して対応できました。

SELECT sum(product_qty) FROM {$wpdb->prefix}wc_order_product_lookup AS wopl JOIN {$wpdb->prefix}wc_order_stats AS wos ON wopl.order_id = wos.order_id WHERE status IN ('$statuses') AND wopl.variation_id = $variation_id

ありがとうございました。

投稿2021/02/04 10:08

wpman

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問