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

概要

woocommerce_product_import_process_item_dataフィルタは、WooCommerceの製品インポートプロセス中にアイテムデータを処理する際に、開発者がカスタマイズを行うために使用されます。このフィルタを使用することで、製品のデータをインポートする際の動作を変更したり、追加のカスタムフィールドを操作したりすることが可能です。

使用頻度が高いシナリオ

  • 製品のカスタムメタデータを追加したい場合
  • インポートするデータのバリデーションを実施する場合
  • 特定の条件に基づいて製品データをフィルタリングしたい場合
  • インポート中に製品の属性を変換またはマッピングする必要がある場合
  • 特定の言語や地域に基づく製品情報の変換を行いたい場合
  • インポートデータをロギングまたはトラッキングする必要がある場合

構文

add_filter('woocommerce_product_import_process_item_data', 'function_name', 10, 2);

パラメータ

  • $item_data (array): インポート中の製品データ
  • $row (array): 現在処理中の行データ

戻り値

  • (array): 修正された製品データ配列

バージョン情報

  • 使用可能なWooCommerceのバージョン: 3.0.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_product_import_process_item_data', 'add_custom_meta_data', 10, 2);

function add_custom_meta_data($item_data, $row) {
    $item_data['custom_meta_key'] = !empty($row['custom_meta_value']) ? $row['custom_meta_value'] : '';
    return $item_data;
}

このサンプルコードは、インポートする製品の行から「custom_meta_value」を取得し、「custom_meta_key」というカスタムメタデータを製品データに追加します。

サンプルコード2: 特定の条件でデータをフィルタリング

add_filter('woocommerce_product_import_process_item_data', 'filter_product_data', 10, 2);

function filter_product_data($item_data, $row) {
    if ($row['price'] < 0) {
        $item_data['price'] = 0; // 価格が0未満の場合は0にする
    }
    return $item_data;
}

このサンプルコードは、製品の価格が0未満の場合に価格を0に設定するフィルタリングを提供します。

サンプルコード3: タクソノミーのマッピング

add_filter('woocommerce_product_import_process_item_data', 'map_taxonomy_terms', 10, 2);

function map_taxonomy_terms($item_data, $row) {
    if (!empty($row['category'])) {
        $item_data['tax_input']['product_cat'] = array_map('trim', explode(',', $row['category']));
    }
    return $item_data;
}

このコードは、インポートの行からカテゴリ情報を取得し、「product_cat」タクソノミーにマッピングします。

サンプルコード4: インポートデータのロギング

add_filter('woocommerce_product_import_process_item_data', 'log_import_data', 10, 2);

function log_import_data($item_data, $row) {
    error_log(print_r($row, true)); // インポートする行データをログに出力
    return $item_data;
}

このサンプルは、インポート中の行データをエラーログに出力します。

サンプルコード5: デフォルトのスラッグ設定

add_filter('woocommerce_product_import_process_item_data', 'set_default_slug', 10, 2);

function set_default_slug($item_data, $row) {
    if (empty($item_data['slug'])) {
        $item_data['slug'] = sanitize_title($item_data['name']); // スラッグが空の場合は製品名から生成
    }
    return $item_data;
}

このサンプルコードは、スラッグが未設定の場合、製品名を基にしたスラッグを設定します。

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


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