概要
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;
}
このサンプルコードは、スラッグが未設定の場合、製品名を基にしたスラッグを設定します。