概要
woocommerce_admin_reports
フィルタは、WooCommerceの管理画面で表示されるレポートをカスタマイズするために使用されます。このフィルタを利用することで、デフォルトのレポートに独自のデータを追加したり、表示内容を変更したりすることができます。一般的には、以下のような機能を実装する際に使用されます。
- 売上レポートのカスタマイズ
- カテゴリー別の販売状況の表示
- ユーザーや役割によるフィルタリング
- 特定の商品の販売データの追加
- 予測データの表示
- 月次・週次レポートの調整
構文
add_filter( 'woocommerce_admin_reports', 'custom_reports' );
function custom_reports( $reports ) {
// カスタム処理
return $reports;
}
パラメータ
$reports
: 既存のレポート情報の配列。
戻り値
- カスタマイズされたレポート情報の配列。
使用可能なプラグインWooCommerceのバージョン
- バージョン 2.0 以降
使用するワードプレスのバージョン
- バージョン 4.0 以降
サンプルコード
サンプルコード1: 売上レポートのカスタマイズ
このサンプルは、元の売上レポートに一つのデータを追加します。
add_filter( 'woocommerce_admin_reports', 'custom_sales_report' );
function custom_sales_report( $reports ) {
$reports['sales']['reports']['custom_sales'] = array(
'title' => __( 'Custom Sales Report', 'textdomain' ),
'description' => __( 'A custom sales report example.', 'textdomain' ),
'callback' => 'custom_sales_report_callback'
);
return $reports;
}
function custom_sales_report_callback() {
// レポートのデータを取得して表示
echo '<h2>' . __( 'Custom Sales Data', 'textdomain' ) . '</h2>';
}
サンプルコード2: カテゴリー別販売状況
このサンプルは、全ての商品のカテゴリー別の販売状況を表示します。
add_filter( 'woocommerce_admin_reports', 'custom_category_sales_report' );
function custom_category_sales_report( $reports ) {
$reports['sales']['reports']['category_sales'] = array(
'title' => __( 'Category Sales Report', 'textdomain' ),
'description' => __( 'Sales by category.', 'textdomain' ),
'callback' => 'category_sales_report_callback'
);
return $reports;
}
function category_sales_report_callback() {
// カテゴリーごとの売上を表示
echo '<h2>' . __( 'Sales by Category', 'textdomain' ) . '</h2>';
}
サンプルコード3: ユーザーによるフィルタリング
このサンプルは、特定のユーザーによるフィルタリングを行います。
add_filter( 'woocommerce_admin_reports', 'custom_user_filtered_report' );
function custom_user_filtered_report( $reports ) {
$reports['sales']['reports']['user_filtered_report'] = array(
'title' => __( 'User Filtered Sales Report', 'textdomain' ),
'description' => __( 'Sales filtered by user.', 'textdomain' ),
'callback' => 'user_filtered_report_callback'
);
return $reports;
}
function user_filtered_report_callback() {
// ユーザーによる売上データを表示
echo '<h2>' . __( 'Sales Filtered by User', 'textdomain' ) . '</h2>';
}
サンプルコード4: 特定商品のデータ追加
このサンプルは、特定商品の販売データを表示します。
add_filter( 'woocommerce_admin_reports', 'custom_product_report' );
function custom_product_report( $reports ) {
$reports['sales']['reports']['specific_product'] = array(
'title' => __( 'Specific Product Sales Report', 'textdomain' ),
'description' => __( 'Sales report for a specific product.', 'textdomain' ),
'callback' => 'specific_product_report_callback'
);
return $reports;
}
function specific_product_report_callback() {
// 特定商品に関連した売上データを表示
echo '<h2>' . __( 'Sales for Specific Product', 'textdomain' ) . '</h2>';
}
サンプルコード5: 月次レポートの調整
このサンプルは、月次の売上レポートを調整します。
add_filter( 'woocommerce_admin_reports', 'custom_monthly_sales_report' );
function custom_monthly_sales_report( $reports ) {
$reports['sales']['reports']['monthly_sales'] = array(
'title' => __( 'Monthly Sales Report', 'textdomain' ),
'description' => __( 'Monthly summary of sales.', 'textdomain' ),
'callback' => 'monthly_sales_report_callback'
);
return $reports;
}
function monthly_sales_report_callback() {
// 月間売上データを表示
echo '<h2>' . __( 'Monthly Sales Summary', 'textdomain' ) . '</h2>';
}
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |