プラグインWooCommerceのwoocommerce_product_importer_before_set_parsed_dataアクションの使用方法・解説

概要

woocommerce_product_importer_before_set_parsed_data は、WooCommerce プラグイン内で製品のデータをインポートする際に、解析されたデータが実際に設定される前に呼び出されるアクションフックです。このフックを使用することで、製品データのインポートプロセスをカスタマイズし、追加の処理を実施することが可能です。これにより、さまざまなニーズに応じて製品データを変更したり、追加のバリデーションを行ったりできます。

このアクションは、以下のような機能を実装する際によく使用されます。

  1. インポートする製品情報のカスタマイズ
  2. 特定の条件に基づくフィールド値の修正
  3. インポートされた製品のメタデータの追加
  4. インポート時のエラーチェックやバリデーション
  5. インポート元に応じたカテゴリやタグの設定
  6. 外部ソースとのデータ統合

構文

do_action( 'woocommerce_product_importer_before_set_parsed_data', $parsed_data, $product );

パラメータ

  • $parsed_data (array): 解析された製品データ。
  • $product (WC_Product): 現在の製品オブジェクト。

戻り値

このアクションは何も値を返しません。

対応バージョン

  • WooCommerce バージョン: 2.6.0 以降
  • WordPress バージョン: 4.6 以降

この関数のアクションでの使用可能性

アクション 使用例
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_action( 'woocommerce_product_importer_before_set_parsed_data', 'customize_product_name', 10, 2 );

function customize_product_name( $parsed_data, $product ) {
    if ( isset( $parsed_data['name'] ) ) {
        $parsed_data['name'] = $parsed_data['name'] . ' (Imported)'; // 商品名に「(Imported)」を追加
    }
}

このコードは、インポートされる商品名の末尾に「(Imported)」を追加します。

サンプルコード 2: カテゴリの自動設定

add_action( 'woocommerce_product_importer_before_set_parsed_data', 'set_default_category', 10, 2 );

function set_default_category( $parsed_data, $product ) {
    if ( empty( $parsed_data['categories'] ) ) {
        $parsed_data['categories'] = array( 'Default Category' ); // カテゴリが空の場合、デフォルトのカテゴリを設定
    }
}

このコードでは、インポートされた製品にカテゴリが指定されていない場合にデフォルトのカテゴリ「Default Category」を設定します。

サンプルコード 3: カスタムメタデータの追加

add_action( 'woocommerce_product_importer_before_set_parsed_data', 'add_custom_meta_data', 10, 2 );

function add_custom_meta_data( $parsed_data, $product ) {
    $parsed_data['_custom_meta_key'] = 'Custom Value'; // カスタムメタデータを追加
}

このサンプルでは、インポートする製品にカスタムメタデータを追加しています。

サンプルコード 4: エラーチェックの実装

add_action( 'woocommerce_product_importer_before_set_parsed_data', 'validate_imported_data', 10, 2 );

function validate_imported_data( $parsed_data, $product ) {
    if ( empty( $parsed_data['sku'] ) ) {
        // SKUが空の場合、エラーを返す
        throw new Exception( 'SKUは必須です。' );
    }
}

このコードは、インポートされたデータにSKUが含まれていない場合に、エラーを投げます。

サンプルコード 5: 特定のフィールドの条件付き変更

add_action( 'woocommerce_product_importer_before_set_parsed_data', 'conditional_field_change', 10, 2 );

function conditional_field_change( $parsed_data, $product ) {
    if ( isset( $parsed_data['price'] ) && $parsed_data['price'] < 10 ) {
        $parsed_data['price'] = 10; // 価格が10未満の場合、最低価格を10に設定
    }
}

このコードは、インポートされる価格が10未満の場合に、価格を10に引き上げる条件付きの変更を行っています。

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


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