プラグインWooCommerceのwoocommerce_dashboard_status_widget_top_seller_queryフィルタの使用方法・解説

概要

フィルタ woocommerce_dashboard_status_widget_top_seller_query は、WooCommerceの管理ダッシュボードに表示される「売上トップの商品」ウィジェットに関連するクエリを変更するために使用されます。このフィルタを利用することで、表示する商品の制限や順序を調整することができ、特定の要件やニーズに応じたカスタマイズが可能です。特に以下のような機能を実装する際に役立ちます。

  1. 特定の商品の除外または追加
  2. トップセラーの定義を変更
  3. 商品の表示順を変更
  4. フィルタリング条件の追加
  5. 転売やデジタル商品の管理
  6. 複数ストアの統合ビューの実装

構文

フィルタの構文は以下のようになります。

add_filter('woocommerce_dashboard_status_widget_top_seller_query', 'my_custom_top_seller_query', 10, 2);

パラメータ

  1. $query – クエリの配列形式(array)。
  2. $widget – ウィジェット情報。

戻り値

このフィルタはクエリの配列を返します。返されたクエリに基づいて、「売上トップの商品」が表示されます。

対応バージョン

  • WooCommerce: 最低バージョン3.0以降
  • WordPress: 最低バージョン4.0以降

この関数のアクションでの使用可能性

アクション名 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1

add_filter('woocommerce_dashboard_status_widget_top_seller_query', function($query) {
    $query['meta_query'][] = array(
        'key' => '_stock_status',
        'value' => 'instock'
    );
    return $query;
});

このサンプルでは、在庫のある商品のみを「売上トップの商品」として表示するために、クエリにメタクエリを追加しています。

サンプルコード 2

add_filter('woocommerce_dashboard_status_widget_top_seller_query', function($query) {
    $query['orderby'] = 'total_sales';
    $query['order'] = 'DESC';
    return $query;
});

このサンプルコードでは、商品の販売数が多い順に並び替える設定をクエリに追加しています。

サンプルコード 3

add_filter('woocommerce_dashboard_status_widget_top_seller_query', function($query) {
    $query['posts_per_page'] = 5;
    return $query;
});

こちらでは、表示する商品数を5件に制限しています。一度に表示されるトップセラーの数を管理できます。

サンプルコード 4

add_filter('woocommerce_dashboard_status_widget_top_seller_query', function($query) {
    $query['tax_query'] = array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => 'clothing'
        )
    );
    return $query;
});

このコードでは、「衣類」カテゴリーの商品のみを表示するようにクエリを修正しています。

サンプルコード 5

add_filter('woocommerce_dashboard_status_widget_top_seller_query', function($query) {
    $query['meta_key'] = '_featured';
    $query['meta_value'] = 'yes';
    return $query;
});

このサンプルは、特定の値を持つフィーチャード商品だけを表示するために、メタキー条件を追加しています。

すべてのサンプルコードは著作権フリーで、WordPress CodexやWooCommerceの公式ドキュメンテーションに基づいています。

この関数について質問する


上の計算式の答えを入力してください