概要
woocommerce_product_import_get_product_object
フィルタは、WooCommerceの商品インポートのプロセス中に、インポートされる商品のオブジェクトをカスタマイズするために使用されます。このフィルタは、商品データがデータベースにインポートされる前に、オブジェクトを変更できるため、特定のビジネスロジックや要件に合わせた処理を行う際に便利です。よく使われるケースには以下のようなものがあります:
- 商品のカスタムフィールドの設定
- 商品データの検証およびクリーンアップ
- 特定のアトリビュートの追加または変更
- カスタム価格設定の適用
- インポートされる商品の在庫管理
- カテゴリーやタグの自動割り当て
構文
add_filter('woocommerce_product_import_get_product_object', 'custom_function_name', 10, 2);
パラメータ
$product_object
:生成された商品オブジェクト。$data
:インポートされる商品のデータ(配列)。
戻り値
$product_object
:変更された商品オブジェクトを返す。
使用可能なバージョン
- WooCommerce バージョン:任意(フィルタが存在するバージョン)
- WordPress バージョン:任意(フィルタが存在するバージョン)
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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: カスタムフィールドの設定
このコードは、商品インポート中に「custom_field」というカスタムフィールドを設定します。
add_filter('woocommerce_product_import_get_product_object', 'set_custom_field', 10, 2);
function set_custom_field($product_object, $data) {
if (isset($data['custom_field'])) {
$product_object->update_meta_data('custom_field', sanitize_text_field($data['custom_field']));
}
return $product_object;
}
引用元: https://woocommerce.com/
サンプル2: 在庫ステータスの設定
このコードは、インポート中に商品の在庫ステータスを設定します。
add_filter('woocommerce_product_import_get_product_object', 'set_stock_status', 10, 2);
function set_stock_status($product_object, $data) {
if (isset($data['stock_status'])) {
$product_object->set_stock_status($data['stock_status']);
}
return $product_object;
}
引用元: https://woocommerce.com/
サンプル3: 商品の価格を変更
このコードは、インポート中に特定の条件に基づいて商品の価格を変更します。
add_filter('woocommerce_product_import_get_product_object', 'modify_product_price', 10, 2);
function modify_product_price($product_object, $data) {
if (isset($data['price']) && $data['price'] < 100) {
$product_object->set_regular_price($data['price'] * 1.1); // 10%上乗せ
}
return $product_object;
}
引用元: https://woocommerce.com/
サンプル4: カテゴリーの自動割り当て
このコードは、インポート中に商品に特定のカテゴリーを自動で割り当てます。
add_filter('woocommerce_product_import_get_product_object', 'assign_category', 10, 2);
function assign_category($product_object, $data) {
$category_ids = [10, 20]; // 自動で割り当てるカテゴリーID
$product_object->set_category_ids($category_ids);
return $product_object;
}
引用元: https://woocommerce.com/
サンプル5: 商品名の変換
このコードは、インポート中に商品名を特定の形式に変換します。
add_filter('woocommerce_product_import_get_product_object', 'transform_product_name', 10, 2);
function transform_product_name($product_object, $data) {
if (isset($data['name'])) {
$product_object->set_name(ucwords(strtolower($data['name']))); // 名前をタイトルケースに変換
}
return $product_object;
}
引用元: https://woocommerce.com/