概要
woocommerce_recorded_sales
フィルタは、WooCommerce の販売データを操作する際に使用されます。このフィルタを使用することで、特定の条件に基づいて販売数をカスタマイズしたり、特定のビジネスロジックを追加したりできます。主に以下のような機能を実装する際に使われます。
- 販売データのカスタマイズ
- 特定の条件に基づく売上分析
- マーケティング施策による売上調整
- 商品ごとの販売報告書作成
- 割引やプロモーションによる売上の変動管理
- リアルタイム売上データのモニタリング
構文:
add_filter('woocommerce_recorded_sales', 'your_function_name', 10, 2);
パラメータ:
– $sales
(array): もともとの売上データ。
– $order
(WC_Order): 操作対象の注文情報。
戻り値:
フィルタを通して返された新しい売上データ(array)。
このフィルタを使用可能なプラグインWooCommerceのバージョン:
最低でWooCommerce 2.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_recorded_sales', 'add_custom_sales_data', 10, 2);
function add_custom_sales_data($sales, $order) {
if ($order->get_total() > 100) {
$sales['custom_data'] = 'High Value Sale';
}
return $sales;
}
引用元: https://woocommerce.com/
2. 特定の商品に対する売上データを変更する
このサンプルコードは、特定の商品に対する売上データを変更するものです。
add_filter('woocommerce_recorded_sales', 'modify_product_sales_data', 10, 2);
function modify_product_sales_data($sales, $order) {
foreach ($order->get_items() as $item) {
if ($item->get_product_id() == 123) { // 商品IDが123の場合
$sales['sales'] += 10; // 売上を10増加
}
}
return $sales;
}
引用元: https://woocommerce.com/
3. 売上データをフィルタリングする
このサンプルコードでは、売上データを特定の条件でフィルタリングします。
add_filter('woocommerce_recorded_sales', 'filter_sales_by_date', 10, 2);
function filter_sales_by_date($sales, $order) {
if (strtotime($order->get_date_created()) < strtotime('-30 days')) {
return $sales; // 30日前の売上は無視する
}
return $sales;
}
引用元: https://woocommerce.com/
4. デバッグ用のログを記録する
このサンプルコードは、売上データをデバッグログに記録するものです。
add_filter('woocommerce_recorded_sales', 'log_sales_data', 10, 2);
function log_sales_data($sales, $order) {
error_log(print_r($sales, true));
return $sales;
}
引用元: https://woocommerce.com/
5. 特定の条件に基づいて売上を調整する
このサンプルコードでは、特定の条件を満たした場合に売上を調整します。
add_filter('woocommerce_recorded_sales', 'adjust_sales_if_promo', 10, 2);
function adjust_sales_if_promo($sales, $order) {
if ($order->get_meta('promo_code')) { // プロモーションコードがある場合
$sales['sales'] *= 0.9; // 売上を10%減少
}
return $sales;
}
引用元: https://woocommerce.com/